2018-01-10 22:53:54 -08:00
! function ( t , e ) { "object" == typeof exports && "undefined" != typeof module ? module . exports = e ( ) : "function" == typeof define && define . amd ? define ( e ) : t . jspdf = e ( ) } ( this , function ( ) { "use strict" ; var t = "function" == typeof Symbol && "symbol" == typeof Symbol . iterator ? function ( t ) { return typeof t } : function ( t ) { return t && "function" == typeof Symbol && t . constructor === Symbol ? "symbol" : typeof t } , e = function ( e ) { function n ( t ) { var n = { } ; this . subscribe = function ( t , e , r ) { if ( "function" != typeof e ) return ! 1 ; n . hasOwnProperty ( t ) || ( n [ t ] = { } ) ; var i = Math . random ( ) . toString ( 35 ) ; return n [ t ] [ i ] = [ e , ! ! r ] , i } , this . unsubscribe = function ( t ) { for ( var e in n ) if ( n [ e ] [ t ] ) return delete n [ e ] [ t ] , ! 0 ; return ! 1 } , this . publish = function ( r ) { if ( n . hasOwnProperty ( r ) ) { var i = Array . prototype . slice . call ( arguments , 1 ) , o = [ ] ; for ( var a in n [ r ] ) { var s = n [ r ] [ a ] ; try { s [ 0 ] . apply ( t , i ) } catch ( t ) { e . console && console . error ( "jsPDF PubSub Error" , t . message , t ) } s [ 1 ] && o . push ( a ) } o . length && o . forEach ( this . unsubscribe ) } } } function r ( c , l , u , h ) { var f = { } ; "object" === ( "undefined" == typeof c ? "undefined" : t ( c ) ) && ( f = c , c = f . orientation , l = f . unit || l , u = f . format || u , h = f . compress || f . compressPdf || h ) , l = l || "mm" , u = u || "a4" , c = ( "" + ( c || "P" ) ) . toLowerCase ( ) ; var d , p , g , m , w , y , v , b , x , k = ( ( "" + u ) . toLowerCase ( ) , ! ! h && "function" == typeof Uint8Array ) , _ = f . textColor || "0 g" , C = f . drawColor || "0 G" , A = f . fontSize || 16 , S = f . lineHeight || 1.15 , q = f . lineWidth || . 200025 , T = 2 , I = ! 1 , P = [ ] , E = { } , O = { } , F = 0 , R = [ ] , B = [ ] , D = [ ] , j = [ ] , N = [ ] , z = 0 , L = 0 , M = 0 , U = { title : "" , subject : "" , author : "" , keywords : "" , creator : "" } , H = { } , W = new n ( H ) , X = function ( t ) { return t . toFixed ( 2 ) } , V = function ( t ) { return t . toFixed ( 3 ) } , Y = function ( t ) { return ( "0" + parseInt ( t ) ) . slice ( - 2 ) } , G = function ( t ) { I ? R [ m ] . push ( t ) : ( M += t . length + 1 , j . push ( t ) ) } , J = function ( ) { return T ++ , P [ T ] = M , G ( T + " 0 obj" ) , T } , Q = function ( ) { var t = 2 * R . length + 1 ; t += N . length ; var e = { objId : t , content : "" } ; return N . push ( e ) , e } , K = function ( ) { return T ++ , P [ T ] = function ( ) { return M } , T } , $ = function ( t ) { P [ t ] = M } , Z = function ( t ) { G ( "stream" ) , G ( t ) , G ( "endstream" ) } , tt = function ( ) { var t , n , i , o , s , c , l , u , h , f = [ ] ; for ( l = e . adler32cs || r . adler32cs , k && "undefined" == typeof l && ( k = ! 1 ) , t = 1 ; t <= F ; t ++ ) { if ( f . push ( J ( ) ) , u = ( w = D [ t ] . width ) * p , h = ( y = D [ t ] . height ) * p , G ( "<</Type /Page" ) , G ( "/Parent 1 0 R" ) , G ( "/Resources 2 0 R" ) , G ( "/MediaBox [0 0 " + X ( u ) + " " + X ( h ) + "]" ) , W . publish ( "putPage" , { pageNumber : t , page : R [ t ] } ) , G ( "/Contents " + ( T + 1 ) + " 0 R" ) , G ( ">>" ) , G ( "endobj" ) , n = R [ t ] . join ( "\n" ) , J ( ) , k ) { for ( i = [ ] , o = n . length ; o -- ; ) i [ o ] = n . charCodeAt ( o ) ; c = l . from ( n ) , s = new a ( 6 ) , s . append ( new Uint8Array ( i ) ) , n = s . flush ( ) , i = new Uint8Array ( n . length + 6 ) , i . set ( new Uint8Array ( [ 120 , 156 ] ) ) , i . set ( n , 2 ) , i . set ( new Uint8Array ( [ 255 & c , c >> 8 & 255 , c >> 16 & 255 , c >> 24 & 255 ] ) , n . length + 2 ) , n = String . fromCharCode . apply ( null , i ) , G ( "<</Length " + n . length + " /Filter [/FlateDecode]>>" ) } else G ( "<</Length " + n . length + ">>" ) ; Z ( n ) , G ( "endobj" ) } P [ 1 ] = M , G ( "1 0 obj" ) , G ( "<</Type /Pages" ) ; var d = "/Kids [" ; for ( o = 0 ; o < F ; o ++ ) d += f [ o ] + " 0 R " ; G ( d + "]" ) , G ( "/Count " + F ) , G ( ">>" ) , G ( "endobj" ) , W . publish ( "postPutPages" ) } , et = function ( t ) { t . objectNumber = J ( ) , G ( "<</BaseFont/" + t . PostScriptName + "/Type/Font" ) , "string" == typeof t . encoding && G ( "/Encoding/" + t . encoding ) , G ( "/Subtype/Type1>>" ) , G ( "endobj" ) } , nt = function ( ) { for ( var t in E ) E . hasOwnProperty ( t ) && et ( E [ t ] ) } , rt = function ( ) { W . publish ( "putXobjectDict" ) } , it = function ( ) { G ( "/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]" ) , G ( "/Font <<" ) ; for ( var t in E ) E . hasOwnProperty ( t ) && G ( "/" + t + " " + E [ t ] . objectNumber + " 0 R" ) ; G ( ">>" ) , G ( "/XObject <<" ) , rt ( ) , G ( ">>" ) } , ot = function ( ) { nt ( ) , W . publish ( "putResources" ) , P [ 2 ] = M , G ( "2 0 obj" ) , G ( "<<" ) , it ( ) , G ( ">>" ) , G ( "endobj" ) , W . publish ( "postPutResources" ) } , at = function ( ) { W . publish ( "putAdditionalObjects" ) ; for ( var t = 0 ; t < N . length ; t ++ ) { var e = N [ t ] ; P [ e . objId ] = M , G ( e . objId + " 0 obj" ) , G ( e . content ) , G ( "endobj" ) } T += N . length , W . publish ( "postPutAdditionalObjects" ) } , st = function ( t , e , n ) { O . hasOwnProperty ( e ) || ( O [ e ] = { } ) , O [ e ] [ n ] = t } , ct = function ( t , e , n , r ) { var i = "F" + ( Object . keys ( E ) . length + 1 ) . toString ( 10 ) , o = E [ i ] = { id : i , PostScriptName : t , fontName : e , fontStyle : n , encoding : r , metadata : { } } ; return st ( i , e , n ) , W . publish ( "addFont" , o ) , i } , lt = function ( ) { for ( var t = "helvetica" , e = "times" , n = "courier" , r = "normal" , i = "bold" , o = "italic" , a = "bolditalic" , s = "StandardEncoding" , c = "zapfdingbats" , l = [ [ "Helvetica" , t , r ] , [ "Helvetica-Bold" , t , i ] , [ "Helvetica-Oblique" , t , o ] , [ " H
* jsPDF AcroForm Plugin
* Copyright ( c ) 2016 Alexander Weidt , https : //github.com/BiggA94
*
* Licensed under the MIT License .
* http : //opensource.org/licenses/mit-license
* /
( window . AcroForm = function ( t ) { var n = window . AcroForm ; n . scale = function ( t ) { return t * ( r . internal . scaleFactor / 1 ) } , n . antiScale = function ( t ) { return 1 / r . internal . scaleFactor * t } ; var r = { fields : [ ] , xForms : [ ] , acroFormDictionaryRoot : null , printedOut : ! 1 , internal : null } ; e . API . acroformPlugin = r ; var i = function ( ) { for ( var t in this . acroformPlugin . acroFormDictionaryRoot . Fields ) { var e = this . acroformPlugin . acroFormDictionaryRoot . Fields [ t ] ; e . hasAnnotation && a . call ( this , e ) } } , o = function ( ) { if ( this . acroformPlugin . acroFormDictionaryRoot ) throw new Error ( "Exception while creating AcroformDictionary" ) ; this . acroformPlugin . acroFormDictionaryRoot = new n . AcroFormDictionary , this . acroformPlugin . internal = this . internal , this . acroformPlugin . acroFormDictionaryRoot . _eventID = this . internal . events . subscribe ( "postPutResources" , l ) , this . internal . events . subscribe ( "buildDocument" , i ) , this . internal . events . subscribe ( "putCatalog" , c ) , this . internal . events . subscribe ( "postPutPages" , u ) } , a = function ( t ) { var n = { type : "reference" , object : t } ; e . API . annotationPlugin . annotations [ this . internal . getPageInfo ( t . page ) . pageNumber ] . push ( n ) } , s = function ( t ) { this . acroformPlugin . printedOut && ( this . acroformPlugin . printedOut = ! 1 , this . acroformPlugin . acroFormDictionaryRoot = null ) , this . acroformPlugin . acroFormDictionaryRoot || o . call ( this ) , this . acroformPlugin . acroFormDictionaryRoot . Fields . push ( t ) } , c = function ( ) { "undefined" != typeof this . acroformPlugin . acroFormDictionaryRoot ? this . internal . write ( "/AcroForm " + this . acroformPlugin . acroFormDictionaryRoot . objId + " 0 R" ) : console . log ( "Root missing..." ) } , l = function ( ) { this . internal . events . unsubscribe ( this . acroformPlugin . acroFormDictionaryRoot . _eventID ) , delete this . acroformPlugin . acroFormDictionaryRoot . _eventID , this . acroformPlugin . printedOut = ! 0 } , u = function ( t ) { var e = ! t ; t || ( this . internal . newObjectDeferredBegin ( this . acroformPlugin . acroFormDictionaryRoot . objId ) , this . internal . out ( this . acroformPlugin . acroFormDictionaryRoot . getString ( ) ) ) ; var t = t || this . acroformPlugin . acroFormDictionaryRoot . Kids ; for ( var r in t ) { var i = t [ r ] , o = i . Rect ; i . Rect && ( i . Rect = n . internal . calculateCoordinates . call ( this , i . Rect ) ) , this . internal . newObjectDeferredBegin ( i . objId ) ; var a = "" ; if ( a += i . objId + " 0 obj\n" , a += "<<\n" + i . getContent ( ) , i . Rect = o , i . hasAppearanceStream && ! i . appearanceStreamContent ) { var s = n . internal . calculateAppearanceStream . call ( this , i ) ; a += "/AP << /N " + s + " >>\n" , this . acroformPlugin . xForms . push ( s ) } if ( i . appearanceStreamContent ) { a += "/AP << " ; for ( var c in i . appearanceStreamContent ) { var l = i . appearanceStreamContent [ c ] ; if ( a += "/" + c + " " , a += "<< " , Object . keys ( l ) . length >= 1 || Array . isArray ( l ) ) for ( var r in l ) { var u = l [ r ] ; "function" == typeof u && ( u = u . call ( this , i ) ) , a += "/" + r + " " + u + " " , this . acroformPlugin . xForms . indexOf ( u ) >= 0 || this . acroformPlugin . xForms . push ( u ) } else { var u = l ; "function" == typeof u && ( u = u . call ( this , i ) ) , a += "/" + r + " " + u + " \n" , this . acroformPlugin . xForms . indexOf ( u ) >= 0 || this . acroformPlugin . xForms . push ( u ) } a += " >>\n" } a += ">>\n" } a += ">>\nendobj\n" , this . internal . out ( a ) } e && h . call ( this , this . acroformPlugin . xForms ) } , h = function ( t ) { for ( var e in t ) { var n = e , r = t [ e ] ; this . internal . newObjectDeferredBegin ( r && r . objId ) ; var i = "" ; i += r ? r . getString ( ) : "" , this . internal . out ( i ) , delete t [ n ] } } ; t . addField = function ( t ) { return t instanceof n . TextField ? d . call ( this , t ) : t instanceof n . ChoiceField ? p . call ( this , t ) : t instanceof n . Button ? f . call ( this , t ) : t instanceof n . ChildClass ? s . call ( this , t ) : t && s . call ( this , t ) , t . page = this . acroformPlugin . internal . getCurrentPageInfo ( ) . pageNumber , this } ; var f = function ( t ) { var t = t || new n . Field ; t . FT = "/Btn" ; var e = t . Ff || 0 ; t . pushbutton && ( e = n . internal . setBitPosition ( e , 17 ) , delete t . pushbutton ) , t . radio && ( e = n . internal . setBitPosition ( e , 16 ) , delete t . radio ) , t . noToggleToOff && ( e = n . internal . setBitPosition ( e , 15 ) ) , t . Ff = e , s . call ( this , t ) } , d = function ( t ) { var t = t || new n . Field ; t . FT = "/Tx" ; var e = t . Ff || 0 ; t . multiline && ( e = 4096 | e ) , t . password && ( e = 8192 | e ) , t . fileSelect && ( e |= 1 << 20 ) , t . doNotSpellCheck && ( e |= 1 << 22 ) , t . doNotScroll && ( e |= 1 << 23 ) , t . Ff = t . Ff || e , s . call ( this , t ) } , p = function ( t ) { var e = t || new n . Field ; e . FT = "/Ch" ; var r = e . Ff || 0 ; e . combo && ( r = n . internal . setBitPosition ( r , 18 ) , delete e . combo ) , e . edit && ( r = n . internal . setBitPosition ( r , 19 ) , delete e . edit ) , e . sort && ( r = n . internal . setBitPosition ( r
* jsPDF addHTML PlugIn
* Copyright ( c ) 2014 Diego Casorran
*
* Licensed under the MIT License .
* http : //opensource.org/licenses/mit-license
* /
function ( t ) { t . addHTML = function ( t , e , n , r , i ) { if ( "undefined" == typeof html2canvas && "undefined" == typeof rasterizeHTML ) throw new Error ( "You need either https://github.com/niklasvh/html2canvas or https://github.com/cburgmer/rasterizeHTML.js" ) ; "number" != typeof e && ( r = e , i = n ) , "function" == typeof r && ( i = r , r = null ) ; var o = this . internal , a = o . scaleFactor , s = o . pageSize . width , c = o . pageSize . height ; if ( r = r || { } , r . onrendered = function ( t ) { e = parseInt ( e ) || 0 , n = parseInt ( n ) || 0 ; var o = r . dim || { } , l = o . h || 0 , u = o . w || Math . min ( s , t . width / a ) - e , h = "JPEG" ; if ( r . format && ( h = r . format ) , t . height > c && r . pagesplit ) { var f = function ( ) { for ( var r = 0 ; ; ) { var o = document . createElement ( "canvas" ) ; o . width = Math . min ( s * a , t . width ) , o . height = Math . min ( c * a , t . height - r ) ; var l = o . getContext ( "2d" ) ; l . drawImage ( t , 0 , r , t . width , o . height , 0 , 0 , o . width , o . height ) ; var f = [ o , e , r ? 0 : n , o . width / a , o . height / a , h , null , "SLOW" ] ; if ( this . addImage . apply ( this , f ) , r += o . height , r >= t . height ) break ; this . addPage ( ) } i ( u , r , null , f ) } . bind ( this ) ; if ( "CANVAS" === t . nodeName ) { var d = new Image ; d . onload = f , d . src = t . toDataURL ( "image/png" ) , t = d } else f ( ) } else { var p = Math . random ( ) . toString ( 35 ) , g = [ t , e , n , u , l , h , p , "SLOW" ] ; this . addImage . apply ( this , g ) , i ( u , l , p , g ) } } . bind ( this ) , "undefined" != typeof html2canvas && ! r . rstz ) return html2canvas ( t , r ) ; if ( "undefined" != typeof rasterizeHTML ) { var l = "drawDocument" ; return "string" == typeof t && ( l = /^http/ . test ( t ) ? "drawURL" : "drawHTML" ) , r . width = r . width || s * a , rasterizeHTML [ l ] ( t , void 0 , r ) . then ( function ( t ) { r . onrendered ( t . image ) } , function ( t ) { i ( null , t ) } ) } return null } } ( e . API ) , function ( e ) { var n = "addImage_" , r = [ "jpeg" , "jpg" , "png" ] , i = function t ( e ) { var n = this . internal . newObject ( ) , r = this . internal . write , i = this . internal . putStream ; if ( e . n = n , r ( "<</Type /XObject" ) , r ( "/Subtype /Image" ) , r ( "/Width " + e . w ) , r ( "/Height " + e . h ) , e . cs === this . color _spaces . INDEXED ? r ( "/ColorSpace [/Indexed /DeviceRGB " + ( e . pal . length / 3 - 1 ) + " " + ( "smask" in e ? n + 2 : n + 1 ) + " 0 R]" ) : ( r ( "/ColorSpace /" + e . cs ) , e . cs === this . color _spaces . DEVICE _CMYK && r ( "/Decode [1 0 1 0 1 0 1 0]" ) ) , r ( "/BitsPerComponent " + e . bpc ) , "f" in e && r ( "/Filter /" + e . f ) , "dp" in e && r ( "/DecodeParms <<" + e . dp + ">>" ) , "trns" in e && e . trns . constructor == Array ) { for ( var o = "" , a = 0 , s = e . trns . length ; a < s ; a ++ ) o += e . trns [ a ] + " " + e . trns [ a ] + " " ; r ( "/Mask [" + o + "]" ) } if ( "smask" in e && r ( "/SMask " + ( n + 1 ) + " 0 R" ) , r ( "/Length " + e . data . length + ">>" ) , i ( e . data ) , r ( "endobj" ) , "smask" in e ) { var c = "/Predictor " + e . p + " /Colors 1 /BitsPerComponent " + e . bpc + " /Columns " + e . w , l = { w : e . w , h : e . h , cs : "DeviceGray" , bpc : e . bpc , dp : c , data : e . smask } ; "f" in e && ( l . f = e . f ) , t . call ( this , l ) } e . cs === this . color _spaces . INDEXED && ( this . internal . newObject ( ) , r ( "<< /Length " + e . pal . length + ">>" ) , i ( this . arrayBufferToBinaryString ( new Uint8Array ( e . pal ) ) ) , r ( "endobj" ) ) } , o = function ( ) { var t = this . internal . collections [ n + "images" ] ; for ( var e in t ) i . call ( this , t [ e ] ) } , a = function ( ) { var t , e = this . internal . collections [ n + "images" ] , r = this . internal . write ; for ( var i in e ) t = e [ i ] , r ( "/I" + t . i , t . n , "0" , "R" ) } , s = function ( t ) { return t && "string" == typeof t && ( t = t . toUpperCase ( ) ) , t in e . image _compression ? t : e . image _compression . NONE } , c = function ( ) { var t = this . internal . collections [ n + "images" ] ; return t || ( this . internal . collections [ n + "images" ] = t = { } , this . internal . events . subscribe ( "putResources" , o ) , this . internal . events . subscribe ( "putXobjectDict" , a ) ) , t } , l = function ( t ) { var e = 0 ; return t && ( e = Object . keys ? Object . keys ( t ) . length : function ( t ) { var e = 0 ; for ( var n in t ) t . hasOwnProperty ( n ) && e ++ ; return e } ( t ) ) , e } , u = function ( t ) { return "undefined" == typeof t || null === t } , h = function ( t ) { return "string" == typeof t && e . sHashCode ( t ) } , f = function ( t ) { return r . indexOf ( t ) === - 1 } , d = function ( t ) { return "function" != typeof e [ "process" + t . toUpperCase ( ) ] } , p = function ( e ) { return "object" === ( "undefined" == typeof e ? "undefined" : t ( e ) ) && 1 === e . nodeType } , g = function ( e , n , r ) { if ( "IMG" === e . nodeName && e . hasAttribute ( "src" ) ) { var i = "" + e . getAttribute ( "src" ) ; if ( ! r && 0 === i . indexOf ( "data:image/" ) ) return i ; ! n && /\.png(?:[?#].*)?$/i . test ( i ) && ( n = "png" ) } if ( "CANVAS" === e . nodeName ) var o = e ; else { var o = document . createElement ( "canvas" ) ; o . width = e . clientWidth || e . width , o . height = e . clientHeight || e . height ; var a = o . getContext ( "2d" ) ; if ( ! a ) throw "addImage requires canvas to be supported by browser." ; if ( r ) { var s , c , l , u , h , f , d , p , g = Math . PI / 180 ; "object" === ( "undefined" =
* jsPDF Annotations PlugIn
* Copyright ( c ) 2014 Steven Spungin ( TwelveTone LLC ) steven @ twelvetone . tv
*
* Licensed under the MIT License .
* http : //opensource.org/licenses/mit-license
* /
function ( t ) { var n = { annotations : [ ] , f2 : function ( t ) { return t . toFixed ( 2 ) } , notEmpty : function ( t ) { if ( "undefined" != typeof t && "" != t ) return ! 0 } } ; return e . API . annotationPlugin = n , e . API . events . push ( [ "addPage" , function ( t ) { this . annotationPlugin . annotations [ t . pageNumber ] = [ ] } ] ) , t . events . push ( [ "putPage" , function ( t ) { for ( var e = this . annotationPlugin . annotations [ t . pageNumber ] , r = ! 1 , i = 0 ; i < e . length && ! r ; i ++ ) { var o = e [ i ] ; switch ( o . type ) { case "link" : if ( n . notEmpty ( o . options . url ) || n . notEmpty ( o . options . pageNumber ) ) { r = ! 0 ; break } case "reference" : case "text" : case "freetext" : r = ! 0 } } if ( 0 != r ) { this . internal . write ( "/Annots [" ) ; for ( var a = this . annotationPlugin . f2 , s = this . internal . scaleFactor , c = this . internal . pageSize . height , l = this . internal . getPageInfo ( t . pageNumber ) , i = 0 ; i < e . length ; i ++ ) { var o = e [ i ] ; switch ( o . type ) { case "reference" : this . internal . write ( " " + o . object . objId + " 0 R " ) ; break ; case "text" : var u = this . internal . newAdditionalObject ( ) , h = this . internal . newAdditionalObject ( ) , f = o . title || "Note" , d = "/Rect [" + a ( o . bounds . x * s ) + " " + a ( c - ( o . bounds . y + o . bounds . h ) * s ) + " " + a ( ( o . bounds . x + o . bounds . w ) * s ) + " " + a ( ( c - o . bounds . y ) * s ) + "] " ; y = "<</Type /Annot /Subtype /Text " + d + "/Contents (" + o . contents + ")" , y += " /Popup " + h . objId + " 0 R" , y += " /P " + l . objId + " 0 R" , y += " /T (" + f + ") >>" , u . content = y ; var p = u . objId + " 0 R" , g = 30 , d = "/Rect [" + a ( ( o . bounds . x + g ) * s ) + " " + a ( c - ( o . bounds . y + o . bounds . h ) * s ) + " " + a ( ( o . bounds . x + o . bounds . w + g ) * s ) + " " + a ( ( c - o . bounds . y ) * s ) + "] " ; y = "<</Type /Annot /Subtype /Popup " + d + " /Parent " + p , o . open && ( y += " /Open true" ) , y += " >>" , h . content = y , this . internal . write ( u . objId , "0 R" , h . objId , "0 R" ) ; break ; case "freetext" : var d = "/Rect [" + a ( o . bounds . x * s ) + " " + a ( ( c - o . bounds . y ) * s ) + " " + a ( o . bounds . x + o . bounds . w * s ) + " " + a ( c - ( o . bounds . y + o . bounds . h ) * s ) + "] " , m = o . color || "#000000" ; y = "<</Type /Annot /Subtype /FreeText " + d + "/Contents (" + o . contents + ")" , y += " /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#" + m + ")" , y += " /Border [0 0 0]" , y += " >>" , this . internal . write ( y ) ; break ; case "link" : if ( o . options . name ) { var w = this . annotations . _nameMap [ o . options . name ] ; o . options . pageNumber = w . page , o . options . top = w . y } else o . options . top || ( o . options . top = 0 ) ; var d = "/Rect [" + a ( o . x * s ) + " " + a ( ( c - o . y ) * s ) + " " + a ( o . x + o . w * s ) + " " + a ( c - ( o . y + o . h ) * s ) + "] " , y = "" ; if ( o . options . url ) y = "<</Type /Annot /Subtype /Link " + d + "/Border [0 0 0] /A <</S /URI /URI (" + o . options . url + ") >>" ; else if ( o . options . pageNumber ) { var t = this . internal . getPageInfo ( o . options . pageNumber ) ; switch ( y = "<</Type /Annot /Subtype /Link " + d + "/Border [0 0 0] /Dest [" + t . objId + " 0 R" , o . options . magFactor = o . options . magFactor || "XYZ" , o . options . magFactor ) { case "Fit" : y += " /Fit]" ; break ; case "FitH" : y += " /FitH " + o . options . top + "]" ; break ; case "FitV" : o . options . left = o . options . left || 0 , y += " /FitV " + o . options . left + "]" ; break ; case "XYZ" : default : var v = a ( ( c - o . options . top ) * s ) ; o . options . left = o . options . left || 0 , "undefined" == typeof o . options . zoom && ( o . options . zoom = 0 ) , y += " /XYZ " + o . options . left + " " + v + " " + o . options . zoom + "]" } } "" != y && ( y += " >>" , this . internal . write ( y ) ) } } this . internal . write ( "]" ) } } ] ) , t . createAnnotation = function ( t ) { switch ( t . type ) { case "link" : this . link ( t . bounds . x , t . bounds . y , t . bounds . w , t . bounds . h , t ) ; break ; case "text" : case "freetext" : this . annotationPlugin . annotations [ this . internal . getCurrentPageInfo ( ) . pageNumber ] . push ( t ) } } , t . link = function ( t , e , n , r , i ) { this . annotationPlugin . annotations [ this . internal . getCurrentPageInfo ( ) . pageNumber ] . push ( { x : t , y : e , w : n , h : r , options : i , type : "link" } ) } , t . link = function ( t , e , n , r , i ) { this . annotationPlugin . annotations [ this . internal . getCurrentPageInfo ( ) . pageNumber ] . push ( { x : t , y : e , w : n , h : r , options : i , type : "link" } ) } , t . textWithLink = function ( t , e , n , r ) { var i = this . getTextWidth ( t ) , o = this . internal . getLineHeight ( ) ; return this . text ( t , e , n ) , n += . 2 * o , this . link ( e , n - o , i , o , r ) , i } , t . getTextWidth = function ( t ) { var e = this . internal . getFontSize ( ) , n = this . getStringUnitWidth ( t ) * e / this . internal . scaleFactor ; return n } , t . getLineHeight = function ( ) { return this . internal . getLineHeight ( ) } , this } ( e . API ) , function ( t ) { t . autoPrint = function ( ) { var t ; return this . internal . events . subscribe ( "postPutResources" , function ( ) { t = this . internal . newObject ( ) , this . internal . write ( "<< /S/Named /Type/Action /N/Print >>" , "endobj" ) } ) , this . internal . events . subscribe ( "putCatalog" , functi
* jsPDF Canvas PlugIn
* Copyright ( c ) 2014 Steven Spungin ( TwelveTone LLC ) steven @ twelvetone . tv
*
* Licensed under the MIT License .
* http : //opensource.org/licenses/mit-license
* /
function ( t ) { return t . events . push ( [ "initialized" , function ( ) { this . canvas . pdf = this } ] ) , t . canvas = { getContext : function ( t ) { return this . pdf . context2d . _canvas = this , this . pdf . context2d } , style : { } } , Object . defineProperty ( t . canvas , "width" , { get : function ( ) { return this . _width } , set : function ( t ) { this . _width = t , this . getContext ( "2d" ) . pageWrapX = t + 1 } } ) , Object . defineProperty ( t . canvas , "height" , { get : function ( ) { return this . _height } , set : function ( t ) { this . _height = t , this . getContext ( "2d" ) . pageWrapY = t + 1 } } ) , this } ( e . API ) , / * * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
* jsPDF Cell plugin
* Copyright ( c ) 2013 Youssef Beddad , youssef . beddad @ gmail . com
* 2013 Eduardo Menezes de Morais , eduardo . morais @ usp . br
* 2013 Lee Driscoll , https : //github.com/lsdriscoll
* 2014 Juan Pablo Gaviria , https : //github.com/juanpgaviria
* 2014 James Hall , james @ parall . ax
* 2014 Diego Casorran , https : //github.com/diegocr
*
*
* === === === === === === === === === === === === === === === === === === === === === === ==
* /
function ( t ) { var e , n , r , i , o = 3 , a = 13 , s = { x : void 0 , y : void 0 , w : void 0 , h : void 0 , ln : void 0 } , c = 1 , l = function ( t , e , n , r , i ) { s = { x : t , y : e , w : n , h : r , ln : i } } , u = function ( ) { return s } , h = { left : 0 , top : 0 , bottom : 0 } ; t . setHeaderFunction = function ( t ) { i = t } , t . getTextDimensions = function ( t ) { e = this . internal . getFont ( ) . fontName , n = this . table _font _size || this . internal . getFontSize ( ) , r = this . internal . getFont ( ) . fontStyle ; var i , o , a = 19.049976 / 25.4 ; o = document . createElement ( "font" ) , o . id = "jsPDFCell" ; try { o . style . fontStyle = r } catch ( t ) { o . style . fontWeight = r } o . style . fontName = e , o . style . fontSize = n + "pt" ; try { o . textContent = t } catch ( e ) { o . innerText = t } return document . body . appendChild ( o ) , i = { w : ( o . offsetWidth + 1 ) * a , h : ( o . offsetHeight + 1 ) * a } , document . body . removeChild ( o ) , i } , t . cellAddPage = function ( ) { var t = this . margins || h ; this . addPage ( ) , l ( t . left , t . top , void 0 , void 0 ) , c += 1 } , t . cellInitialize = function ( ) { s = { x : void 0 , y : void 0 , w : void 0 , h : void 0 , ln : void 0 } , c = 1 } , t . cell = function ( t , e , n , r , i , s , c ) { var f = u ( ) , d = ! 1 ; if ( void 0 !== f . ln ) if ( f . ln === s ) t = f . x + f . w , e = f . y ; else { var p = this . margins || h ; f . y + f . h + r + a >= this . internal . pageSize . height - p . bottom && ( this . cellAddPage ( ) , d = ! 0 , this . printHeaders && this . tableHeaderRow && this . printHeaderRow ( s , ! 0 ) ) , e = u ( ) . y + u ( ) . h , d && ( e = a + 10 ) } if ( void 0 !== i [ 0 ] ) if ( this . printingHeaderRow ? this . rect ( t , e , n , r , "FD" ) : this . rect ( t , e , n , r ) , "right" === c ) { i instanceof Array || ( i = [ i ] ) ; for ( var g = 0 ; g < i . length ; g ++ ) { var m = i [ g ] , w = this . getStringUnitWidth ( m ) * this . internal . getFontSize ( ) ; this . text ( m , t + n - w - o , e + this . internal . getLineHeight ( ) * ( g + 1 ) ) } } else this . text ( i , t + o , e + this . internal . getLineHeight ( ) ) ; return l ( t , e , n , r , s ) , this } , t . arrayMax = function ( t , e ) { var n , r , i , o = t [ 0 ] ; for ( n = 0 , r = t . length ; n < r ; n += 1 ) i = t [ n ] , e ? e ( o , i ) === - 1 && ( o = i ) : i > o && ( o = i ) ; return o } , t . table = function ( e , n , r , i , o ) { if ( ! r ) throw "No data for PDF table" ; var a , l , u , f , d , p , g , m , w , y , v = [ ] , b = [ ] , x = { } , k = { } , _ = [ ] , C = [ ] , A = ! 1 , S = ! 0 , q = 12 , T = h ; if ( T . width = this . internal . pageSize . width , o && ( o . autoSize === ! 0 && ( A = ! 0 ) , o . printHeaders === ! 1 && ( S = ! 1 ) , o . fontSize && ( q = o . fontSize ) , o . css && "undefined" != typeof o . css [ "font-size" ] && ( q = 16 * o . css [ "font-size" ] ) , o . margins && ( T = o . margins ) ) , this . lnMod = 0 , s = { x : void 0 , y : void 0 , w : void 0 , h : void 0 , ln : void 0 } , c = 1 , this . printHeaders = S , this . margins = T , this . setFontSize ( q ) , this . table _font _size = q , void 0 === i || null === i ) v = Object . keys ( r [ 0 ] ) ; else if ( i [ 0 ] && "string" != typeof i [ 0 ] ) { var I = 19.049976 / 25.4 ; for ( l = 0 , u = i . length ; l < u ; l += 1 ) a = i [ l ] , v . push ( a . name ) , b . push ( a . prompt ) , k [ a . name ] = a . width * I } else v = i ; if ( A ) for ( y = function ( t ) { return t [ a ] } , l = 0 , u = v . length ; l < u ; l += 1 ) { for ( a = v [ l ] , x [ a ] = r . map ( y ) , _ . push ( this . getTextDimensions ( b [ l ] || a ) . w ) , p = x [ a ] , g = 0 , f = p . length ; g < f ; g += 1 ) d = p [ g ] , _ . push ( this . getTextDimensions ( d ) . w ) ; k [ a ] = t . arrayMax ( _ ) , _ = [ ] } if ( S ) { var P = this . calculateLineHeight ( v , k , b . length ? b : v ) ; for ( l = 0 , u = v . length ; l < u ; l += 1 ) a = v [ l ] , C . push ( [ e , n , k [ a ] , P , String ( b . length ? b [ l ] : a ) ] ) ; this . setTableHeaderRow ( C ) , this . printHeaderRow ( 1 , ! 1 ) } for ( l = 0 , u = r . length ; l < u ; l += 1 ) { var P ; for ( m = r [ l ] , P = this . calculateLineHeight ( v , k , m ) , g = 0 , w = v . length ; g < w ; g += 1 ) a = v [ g ] , this . cell ( e , n , k [ a ] , P , m [ a ] , l + 2 , a . align ) } return this . lastCellPos = s , this . table _x = e , this . table _y = n , this } , t . calculateLineHeight = function ( t , e , n ) { for ( var r , i = 0 , a = 0 ; a < t . length ; a ++ ) { r = t [ a ] , n [ r ] = this . splitTextToSize ( String ( n [ r ] ) , e [ r ] - o ) ; var s = this . internal . getLineHeight ( ) * n [ r ] . length + o ; s > i && ( i = s ) } return i } , t . setTableHeaderRow = function ( t ) { this . tableHeaderRow = t } , t . printHeaderRow = function ( t , e ) { if ( ! this . tableHeaderRow ) throw "Property tableHeaderRow does not exist." ; var n , r , o , s ; if ( this . printingHeaderRow = ! 0 , void 0 !== i ) { var u = i ( this , c ) ; l ( u [ 0 ] , u [ 1 ] , u [ 2 ] , u [ 3 ] , - 1 ) } this . setFontStyle ( "bold" ) ; var h = [ ] ; for ( o = 0 , s = this . tableHeaderRow . length ; o < s ; o += 1 ) this . setFillColor ( 200 , 200 , 200 ) , n = this . tableHeaderRow [ o ] , e && ( this . margins . top = a , n [ 1 ] = this . margins && this . margins . top || 0 , h . push ( n ) ) , r = [ ] . concat ( n ) , this . cell . apply ( this , r . concat ( t ) ) ; h . length > 0 && this . setTableHeaderRow ( h ) , this . setFontStyle ( "normal" ) , this . printingHeaderRow = ! 1 } } ( e . API ) , / * *
* jsPDF Context2D PlugIn Copyright ( c ) 2014 Steven Spungin ( TwelveTone LLC ) steven @ twelvetone . tv
*
* Licensed under the MIT License . http : //opensource.org/licenses/mit-license
* /
function ( t ) { function e ( ) { this . _isStrokeTransparent = ! 1 , this . _strokeOpacity = 1 , this . strokeStyle = "#000000" , this . fillStyle = "#000000" , this . _isFillTransparent = ! 1 , this . _fillOpacity = 1 , this . font = "12pt times" , this . textBaseline = "alphabetic" , this . textAlign = "start" , this . lineWidth = 1 , this . lineJoin = "miter" , this . lineCap = "butt" , this . _transform = [ 1 , 0 , 0 , 1 , 0 , 0 ] , this . globalCompositeOperation = "normal" , this . globalAlpha = 1 , this . _clip _path = [ ] , this . ignoreClearRect = ! 1 , this . copy = function ( t ) { this . _isStrokeTransparent = t . _isStrokeTransparent , this . _strokeOpacity = t . _strokeOpacity , this . strokeStyle = t . strokeStyle , this . _isFillTransparent = t . _isFillTransparent , this . _fillOpacity = t . _fillOpacity , this . fillStyle = t . fillStyle , this . font = t . font , this . lineWidth = t . lineWidth , this . lineJoin = t . lineJoin , this . lineCap = t . lineCap , this . textBaseline = t . textBaseline , this . textAlign = t . textAlign , this . _fontSize = t . _fontSize , this . _transform = t . _transform . slice ( 0 ) , this . globalCompositeOperation = t . globalCompositeOperation , this . globalAlpha = t . globalAlpha , this . _clip _path = t . _clip _path . slice ( 0 ) , this . ignoreClearRect = t . ignoreClearRect } } t . events . push ( [ "initialized" , function ( ) { this . context2d . pdf = this , this . context2d . internal . pdf = this , this . context2d . ctx = new e , this . context2d . ctxStack = [ ] , this . context2d . path = [ ] } ] ) , t . context2d = { pageWrapXEnabled : ! 1 , pageWrapYEnabled : ! 1 , pageWrapX : 9999999 , pageWrapY : 9999999 , ctx : new e , f2 : function ( t ) { return t . toFixed ( 2 ) } , fillRect : function ( t , e , n , r ) { if ( ! this . _isFillTransparent ( ) ) { t = this . _wrapX ( t ) , e = this . _wrapY ( e ) ; var i = this . _matrix _map _rect ( this . ctx . _transform , { x : t , y : e , w : n , h : r } ) ; this . pdf . rect ( i . x , i . y , i . w , i . h , "f" ) } } , strokeRect : function ( t , e , n , r ) { if ( ! this . _isStrokeTransparent ( ) ) { t = this . _wrapX ( t ) , e = this . _wrapY ( e ) ; var i = this . _matrix _map _rect ( this . ctx . _transform , { x : t , y : e , w : n , h : r } ) ; this . pdf . rect ( i . x , i . y , i . w , i . h , "s" ) } } , clearRect : function ( t , e , n , r ) { if ( ! this . ctx . ignoreClearRect ) { t = this . _wrapX ( t ) , e = this . _wrapY ( e ) ; var i = this . _matrix _map _rect ( this . ctx . _transform , { x : t , y : e , w : n , h : r } ) ; this . save ( ) , this . setFillStyle ( "#ffffff" ) , this . pdf . rect ( i . x , i . y , i . w , i . h , "f" ) , this . restore ( ) } } , save : function ( ) { this . ctx . _fontSize = this . pdf . internal . getFontSize ( ) ; var t = new e ; t . copy ( this . ctx ) , this . ctxStack . push ( this . ctx ) , this . ctx = t } , restore : function ( ) { this . ctx = this . ctxStack . pop ( ) , this . setFillStyle ( this . ctx . fillStyle ) , this . setStrokeStyle ( this . ctx . strokeStyle ) , this . setFont ( this . ctx . font ) , this . pdf . setFontSize ( this . ctx . _fontSize ) , this . setLineCap ( this . ctx . lineCap ) , this . setLineWidth ( this . ctx . lineWidth ) , this . setLineJoin ( this . ctx . lineJoin ) } , rect : function ( t , e , n , r ) { this . moveTo ( t , e ) , this . lineTo ( t + n , e ) , this . lineTo ( t + n , e + r ) , this . lineTo ( t , e + r ) , this . lineTo ( t , e ) , this . closePath ( ) } , beginPath : function ( ) { this . path = [ ] } , closePath : function ( ) { this . path . push ( { type : "close" } ) } , _getRgba : function ( t ) { var e = { } ; if ( this . internal . rxTransparent . test ( t ) ) e . r = 0 , e . g = 0 , e . b = 0 , e . a = 0 ; else { var n = this . internal . rxRgb . exec ( t ) ; null != n ? ( e . r = parseInt ( n [ 1 ] ) , e . g = parseInt ( n [ 2 ] ) , e . b = parseInt ( n [ 3 ] ) , e . a = 1 ) : ( n = this . internal . rxRgba . exec ( t ) , null != n ? ( e . r = parseInt ( n [ 1 ] ) , e . g = parseInt ( n [ 2 ] ) , e . b = parseInt ( n [ 3 ] ) , e . a = parseFloat ( n [ 4 ] ) ) : ( e . a = 1 , "#" != t . charAt ( 0 ) && ( t = o . colorNameToHex ( t ) , t || ( t = "#000000" ) ) , 4 === t . length ? ( e . r = t . substring ( 1 , 2 ) , e . r += r , e . g = t . substring ( 2 , 3 ) , e . g += g , e . b = t . substring ( 3 , 4 ) , e . b += b ) : ( e . r = t . substring ( 1 , 3 ) , e . g = t . substring ( 3 , 5 ) , e . b = t . substring ( 5 , 7 ) ) , e . r = parseInt ( e . r , 16 ) , e . g = parseInt ( e . g , 16 ) , e . b = parseInt ( e . b , 16 ) ) ) } return e . style = t , e } , setFillStyle : function ( t ) { var e , n , r , i ; if ( this . internal . rxTransparent . test ( t ) ) e = 0 , n = 0 , r = 0 , i = 0 ; else { var a = this . internal . rxRgb . exec ( t ) ; null != a ? ( e = parseInt ( a [ 1 ] ) , n = parseInt ( a [ 2 ] ) , r = parseInt ( a [ 3 ] ) , i = 1 ) : ( a = this . internal . rxRgba . exec ( t ) , null != a ? ( e = parseInt ( a [ 1 ] ) , n = parseInt ( a [ 2 ] ) , r = parseInt ( a [ 3 ] ) , i = parseFloat ( a [ 4 ] ) ) : ( i = 1 , "#" != t . charAt ( 0 ) && ( t = o . colorNameToHex ( t ) , t || ( t = "#000000" ) ) , 4 === t . length ? ( e = t . substring ( 1 , 2 ) , e += e , n = t . substring ( 2 , 3 ) , n += n , r = t . substring ( 3 , 4 ) , r += r ) : ( e = t . substring ( 1 , 3 ) , n = t . substring ( 3 , 5 ) , r = t . substring ( 5 , 7 ) ) , e = parseInt ( e , 16 ) , n = parseInt ( n , 16 ) , r = parseInt ( r , 16 ) ) ) } this . ctx . fillStyle = t , this . ctx . _isFillTransparent = 0 == i , this . ctx . _fillOpacity = i , this . pdf . setFillColor ( e , n , r , { a : i } ) , this . pdf . setTextColor ( e , n , r , { a : i } ) } , setStrokeStyle : function ( t ) { var e = this . _
* jsPDF fromHTML plugin . BETA stage . API subject to change . Needs browser
* Copyright ( c ) 2012 Willow Systems Corporation , willow - systems . com
* 2014 Juan Pablo Gaviria , https : //github.com/juanpgaviria
* 2014 Diego Casorran , https : //github.com/diegocr
* 2014 Daniel Husar , https : //github.com/danielhusar
* 2014 Wolfgang Gassler , https : //github.com/woolfg
* 2014 Steven Spungin , https : //github.com/flamenco
*
*
* === === === === === === === === === === === === === === === === === === === === === === ==
* /
function ( e ) { var n , r , i , a , s , c , l , u , h , f , d , p , g , m , w , y , v , b , x , k ; n = function ( ) { function t ( ) { } return function ( e ) { return t . prototype = e , new t } } ( ) , f = function ( t ) { var e , n , r , i , o , a , s ; for ( n = 0 , r = t . length , e = void 0 , i = ! 1 , a = ! 1 ; ! i && n !== r ; ) e = t [ n ] = t [ n ] . trimLeft ( ) , e && ( i = ! 0 ) , n ++ ; for ( n = r - 1 ; r && ! a && n !== - 1 ; ) e = t [ n ] = t [ n ] . trimRight ( ) , e && ( a = ! 0 ) , n -- ; for ( o = /\s+$/g , s = ! 0 , n = 0 ; n !== r ; ) "\u2028" != t [ n ] && ( e = t [ n ] . replace ( /\s+/g , " " ) , s && ( e = e . trimLeft ( ) ) , e && ( s = o . test ( e ) ) , t [ n ] = e ) , n ++ ; return t } , d = function ( t , e , n , r ) { return this . pdf = t , this . x = e , this . y = n , this . settings = r , this . watchFunctions = [ ] , this . init ( ) , this } , p = function ( t ) { var e , n , r ; for ( e = void 0 , r = t . split ( "," ) , n = r . shift ( ) ; ! e && n ; ) e = i [ n . trim ( ) . toLowerCase ( ) ] , n = r . shift ( ) ; return e } , g = function ( t ) { t = "auto" === t ? "0px" : t , t . indexOf ( "em" ) > - 1 && ! isNaN ( Number ( t . replace ( "em" , "" ) ) ) && ( t = 18.719 * Number ( t . replace ( "em" , "" ) ) + "px" ) , t . indexOf ( "pt" ) > - 1 && ! isNaN ( Number ( t . replace ( "pt" , "" ) ) ) && ( t = 1.333 * Number ( t . replace ( "pt" , "" ) ) + "px" ) ; var e , n , r ; return n = void 0 , e = 16 , ( r = m [ t ] ) ? r : ( r = { "xx-small" : 9 , "x-small" : 11 , small : 13 , medium : 16 , large : 19 , "x-large" : 23 , "xx-large" : 28 , auto : 0 } [ { css _line _height _string : t } ] , r !== n ? m [ t ] = r / e : ( r = parseFloat ( t ) ) ? m [ t ] = r / e : ( r = t . match ( /([\d\.]+)(px)/ ) , 3 === r . length ? m [ t ] = parseFloat ( r [ 1 ] ) / e : m [ t ] = 1 ) ) } , h = function ( t ) { var e , n , r ; return r = function ( t ) { var e ; return e = function ( t ) { return document . defaultView && document . defaultView . getComputedStyle ? document . defaultView . getComputedStyle ( t , null ) : t . currentStyle ? t . currentStyle : t . style } ( t ) , function ( t ) { return t = t . replace ( /-\D/g , function ( t ) { return t . charAt ( 1 ) . toUpperCase ( ) } ) , e [ t ] } } ( t ) , e = { } , n = void 0 , e [ "font-family" ] = p ( r ( "font-family" ) ) || "times" , e [ "font-style" ] = a [ r ( "font-style" ) ] || "normal" , e [ "text-align" ] = s [ r ( "text-align" ) ] || "left" , n = c [ r ( "font-weight" ) ] || "normal" , "bold" === n && ( "normal" === e [ "font-style" ] ? e [ "font-style" ] = n : e [ "font-style" ] = n + e [ "font-style" ] ) , e [ "font-size" ] = g ( r ( "font-size" ) ) || 1 , e [ "line-height" ] = g ( r ( "line-height" ) ) || 1 , e . display = "inline" === r ( "display" ) ? "inline" : "block" , n = "block" === e . display , e [ "margin-top" ] = n && g ( r ( "margin-top" ) ) || 0 , e [ "margin-bottom" ] = n && g ( r ( "margin-bottom" ) ) || 0 , e [ "padding-top" ] = n && g ( r ( "padding-top" ) ) || 0 , e [ "padding-bottom" ] = n && g ( r ( "padding-bottom" ) ) || 0 , e [ "margin-left" ] = n && g ( r ( "margin-left" ) ) || 0 , e [ "margin-right" ] = n && g ( r ( "margin-right" ) ) || 0 , e [ "padding-left" ] = n && g ( r ( "padding-left" ) ) || 0 , e [ "padding-right" ] = n && g ( r ( "padding-right" ) ) || 0 , e [ "page-break-before" ] = r ( "page-break-before" ) || "auto" , e . float = l [ r ( "cssFloat" ) ] || "none" , e . clear = u [ r ( "clear" ) ] || "none" , e . color = r ( "color" ) , e } , w = function ( t , e , n ) { var r , i , o , a , s ; if ( o = ! 1 , i = void 0 , a = void 0 , s = void 0 , r = n [ "#" + t . id ] ) if ( "function" == typeof r ) o = r ( t , e ) ; else for ( i = 0 , a = r . length ; ! o && i !== a ; ) o = r [ i ] ( t , e ) , i ++ ; if ( r = n [ t . nodeName ] , ! o && r ) if ( "function" == typeof r ) o = r ( t , e ) ; else for ( i = 0 , a = r . length ; ! o && i !== a ; ) o = r [ i ] ( t , e ) , i ++ ; return o } , k = function ( t , e ) { var n , r , i , o , a , s , c , l , u , h ; for ( n = [ ] , r = [ ] , i = 0 , h = t . rows [ 0 ] . cells . length , l = t . clientWidth ; i < h ; ) u = t . rows [ 0 ] . cells [ i ] , r [ i ] = { name : u . textContent . toLowerCase ( ) . replace ( /\s+/g , "" ) , prompt : u . textContent . replace ( /\r?\n/g , "" ) , width : u . clientWidth / l * e . pdf . internal . pageSize . width } , i ++ ; for ( i = 1 ; i < t . rows . length ; ) { for ( s = t . rows [ i ] , a = { } , o = 0 ; o < s . cells . length ; ) a [ r [ o ] . name ] = s . cells [ o ] . textContent . replace ( /\r?\n/g , "" ) , o ++ ; n . push ( a ) , i ++ } return c = { rows : n , headers : r } } ; var _ = { SCRIPT : 1 , STYLE : 1 , NOSCRIPT : 1 , OBJECT : 1 , EMBED : 1 , SELECT : 1 } , C = 1 ; r = function ( e , i , o ) { var a , s , c , l , u , f , d , p , g ; for ( s = e . childNodes , a = void 0 , c = h ( e ) , u = "block" === c . display , u && ( i . setBlockBoundary ( ) , i . setBlockStyle ( c ) ) , d = 19.049976 / 25.4 , l = 0 , f = s . length ; l < f ; ) { if ( a = s [ l ] , "object" === ( "undefined" == typeof a ? "undefined" : t ( a ) ) ) { if ( i . executeWatchFunctions ( a ) , 1 === a . nodeType && "HEADER" === a . nodeName ) { var m = a , v = i . pdf . margins _doc . top ; i . pdf . internal . events . subscribe ( "addPage" , function ( t ) { i . y = v , r ( m , i , o ) , i . pdf . margins _doc . top = i . y + 10 , i . y += 10 } , ! 1 ) } if ( 8 === a . nodeType && "#comment" === a . nodeName ) ~ a . textContent . indexOf ( "ADD_PAGE" ) && ( i . pdf . addPage ( ) , i . y = i . pdf . margins _doc . top ) ; else if ( 1 !== a . nodeType || _ [ a . nodeName ] ) if ( 3 === a . nodeType ) { var b = a . nodeValue ; if ( a . nodeValue && "LI" === a . parentNode . nodeName ) if ( "OL" === a . parentNode . parentNode . nodeName ) b = C ++ + ". " + b ; else { var x = c [ "font-size" ] , A = ( 3 - . 75 * x ) * i . pdf . internal . scaleFactor , S = . 75 * x * i . pdf . internal . scaleFa
* jsPDF JavaScript plugin
* Copyright ( c ) 2013 Youssef Beddad , youssef . beddad @ gmail . com
*
*
* === === === === === === === === === === === === === === === === === === === === === === ==
* /
function ( t ) { var e , n , r ; t . addJS = function ( t ) { return r = t , this . internal . events . subscribe ( "postPutResources" , function ( t ) { e = this . internal . newObject ( ) , this . internal . write ( "<< /Names [(EmbeddedJS) " + ( e + 1 ) + " 0 R] >>" , "endobj" ) , n = this . internal . newObject ( ) , this . internal . write ( "<< /S /JavaScript /JS (" , r , ") >>" , "endobj" ) } ) , this . internal . events . subscribe ( "putCatalog" , function ( ) { void 0 !== e && void 0 !== n && this . internal . write ( "/Names <</JavaScript " + e + " 0 R>>" ) } ) , this } } ( e . API ) , function ( t ) { return t . events . push ( [ "postPutResources" , function ( ) { var t = this , e = /^(\d+) 0 obj$/ ; if ( this . outline . root . children . length > 0 ) for ( var n = t . outline . render ( ) . split ( /\r\n/ ) , r = 0 ; r < n . length ; r ++ ) { var i = n [ r ] , o = e . exec ( i ) ; if ( null != o ) { var a = o [ 1 ] ; t . internal . newObjectDeferredBegin ( a ) } t . internal . write ( i ) } if ( this . outline . createNamedDestinations ) { for ( var s = this . internal . pages . length , c = [ ] , r = 0 ; r < s ; r ++ ) { var l = t . internal . newObject ( ) ; c . push ( l ) ; var u = t . internal . getPageInfo ( r + 1 ) ; t . internal . write ( "<< /D[" + u . objId + " 0 R /XYZ null null null]>> endobj" ) } var h = t . internal . newObject ( ) ; t . internal . write ( "<< /Names [ " ) ; for ( var r = 0 ; r < c . length ; r ++ ) t . internal . write ( "(page_" + ( r + 1 ) + ")" + c [ r ] + " 0 R" ) ; t . internal . write ( " ] >>" , "endobj" ) ; t . internal . newObject ( ) ; t . internal . write ( "<< /Dests " + h + " 0 R" ) , t . internal . write ( ">>" , "endobj" ) } } ] ) , t . events . push ( [ "putCatalog" , function ( ) { var t = this ; t . outline . root . children . length > 0 && ( t . internal . write ( "/Outlines" , this . outline . makeRef ( this . outline . root ) ) , this . outline . createNamedDestinations && t . internal . write ( "/Names " + namesOid + " 0 R" ) ) } ] ) , t . events . push ( [ "initialized" , function ( ) { var t = this ; t . outline = { createNamedDestinations : ! 1 , root : { children : [ ] } } ; t . outline . add = function ( t , e , n ) { var r = { title : e , options : n , children : [ ] } ; return null == t && ( t = this . root ) , t . children . push ( r ) , r } , t . outline . render = function ( ) { return this . ctx = { } , this . ctx . val = "" , this . ctx . pdf = t , this . genIds _r ( this . root ) , this . renderRoot ( this . root ) , this . renderItems ( this . root ) , this . ctx . val } , t . outline . genIds _r = function ( e ) { e . id = t . internal . newObjectDeferred ( ) ; for ( var n = 0 ; n < e . children . length ; n ++ ) this . genIds _r ( e . children [ n ] ) } , t . outline . renderRoot = function ( t ) { this . objStart ( t ) , this . line ( "/Type /Outlines" ) , t . children . length > 0 && ( this . line ( "/First " + this . makeRef ( t . children [ 0 ] ) ) , this . line ( "/Last " + this . makeRef ( t . children [ t . children . length - 1 ] ) ) ) , this . line ( "/Count " + this . count _r ( { count : 0 } , t ) ) , this . objEnd ( ) } , t . outline . renderItems = function ( e ) { for ( var n = 0 ; n < e . children . length ; n ++ ) { var r = e . children [ n ] ; this . objStart ( r ) , this . line ( "/Title " + this . makeString ( r . title ) ) , this . line ( "/Parent " + this . makeRef ( e ) ) , n > 0 && this . line ( "/Prev " + this . makeRef ( e . children [ n - 1 ] ) ) , n < e . children . length - 1 && this . line ( "/Next " + this . makeRef ( e . children [ n + 1 ] ) ) , r . children . length > 0 && ( this . line ( "/First " + this . makeRef ( r . children [ 0 ] ) ) , this . line ( "/Last " + this . makeRef ( r . children [ r . children . length - 1 ] ) ) ) ; var i = this . count = this . count _r ( { count : 0 } , r ) ; if ( i > 0 && this . line ( "/Count " + i ) , r . options && r . options . pageNumber ) { var o = t . internal . getPageInfo ( r . options . pageNumber ) ; this . line ( "/Dest [" + o . objId + " 0 R /XYZ 0 " + this . ctx . pdf . internal . pageSize . height + " 0]" ) } this . objEnd ( ) } for ( var n = 0 ; n < e . children . length ; n ++ ) { var r = e . children [ n ] ; this . renderItems ( r ) } } , t . outline . line = function ( t ) { this . ctx . val += t + "\r\n" } , t . outline . makeRef = function ( t ) { return t . id + " 0 R" } , t . outline . makeString = function ( e ) { return "(" + t . internal . pdfEscape ( e ) + ")" } , t . outline . objStart = function ( t ) { this . ctx . val += "\r\n" + t . id + " 0 obj\r\n<<\r\n" } , t . outline . objEnd = function ( t ) { this . ctx . val += ">> \r\nendobj\r\n" } , t . outline . count _r = function ( t , e ) { for ( var n = 0 ; n < e . children . length ; n ++ ) t . count ++ , this . count _r ( t , e . children [ n ] ) ; return t . count } } ] ) , this } ( e . API ) , / * * @ p r e s e r v e
* === === === === === === === === === === === === === === === === === === === === === === ==
* jsPDF PNG PlugIn
* Copyright ( c ) 2014 James Robb , https : //github.com/jamesbrobb
*
*
* === === === === === === === === === === === === === === === === === === === === === === ==
* /
function ( t ) { var e = function ( ) { return "function" != typeof PNG || "function" != typeof c } , n = function ( e ) { return e !== t . image _compression . NONE && r ( ) } , r = function ( ) { var t = "function" == typeof a ; if ( ! t ) throw new Error ( "requires deflate.js for compression" ) ; return t } , i = function ( e , n , r , i ) { var c = 5 , u = f ; switch ( i ) { case t . image _compression . FAST : c = 3 , u = h ; break ; case t . image _compression . MEDIUM : c = 6 , u = d ; break ; case t . image _compression . SLOW : c = 9 , u = p } e = l ( e , n , r , u ) ; var g = new Uint8Array ( o ( c ) ) , m = s ( e ) , w = new a ( c ) , y = w . append ( e ) , v = w . flush ( ) , b = g . length + y . length + v . length , x = new Uint8Array ( b + 4 ) ; return x . set ( g ) , x . set ( y , g . length ) , x . set ( v , g . length + y . length ) , x [ b ++ ] = m >>> 24 & 255 , x [ b ++ ] = m >>> 16 & 255 , x [ b ++ ] = m >>> 8 & 255 , x [ b ++ ] = 255 & m , t . arrayBufferToBinaryString ( x ) } , o = function ( t , e ) { var n = 8 , r = Math . LOG2E * Math . log ( 32768 ) - 8 , i = r << 4 | n , o = i << 8 , a = Math . min ( 3 , ( e - 1 & 255 ) >> 1 ) ; return o |= a << 6 , o |= 0 , o += 31 - o % 31 , [ i , 255 & o & 255 ] } , s = function ( t , e ) { for ( var n , r = 1 , i = 65535 & r , o = r >>> 16 & 65535 , a = t . length , s = 0 ; a > 0 ; ) { n = a > e ? e : a , a -= n ; do i += t [ s ++ ] , o += i ; while ( -- n ) ; i %= 65521 , o %= 65521 } return ( o << 16 | i ) >>> 0 } , l = function ( t , e , n , r ) { for ( var i , o , a , s = t . length / e , c = new Uint8Array ( t . length + s ) , l = m ( ) , u = 0 ; u < s ; u ++ ) { if ( a = u * e , i = t . subarray ( a , a + e ) , r ) c . set ( r ( i , n , o ) , a + u ) ; else { for ( var h = 0 , f = l . length , d = [ ] ; h < f ; h ++ ) d [ h ] = l [ h ] ( i , n , o ) ; var p = w ( d . concat ( ) ) ; c . set ( d [ p ] , a + u ) } o = i } return c } , u = function ( t , e , n ) { var r = Array . apply ( [ ] , t ) ; return r . unshift ( 0 ) , r } , h = function ( t , e , n ) { var r , i = [ ] , o = 0 , a = t . length ; for ( i [ 0 ] = 1 ; o < a ; o ++ ) r = t [ o - e ] || 0 , i [ o + 1 ] = t [ o ] - r + 256 & 255 ; return i } , f = function ( t , e , n ) { var r , i = [ ] , o = 0 , a = t . length ; for ( i [ 0 ] = 2 ; o < a ; o ++ ) r = n && n [ o ] || 0 , i [ o + 1 ] = t [ o ] - r + 256 & 255 ; return i } , d = function ( t , e , n ) { var r , i , o = [ ] , a = 0 , s = t . length ; for ( o [ 0 ] = 3 ; a < s ; a ++ ) r = t [ a - e ] || 0 , i = n && n [ a ] || 0 , o [ a + 1 ] = t [ a ] + 256 - ( r + i >>> 1 ) & 255 ; return o } , p = function ( t , e , n ) { var r , i , o , a , s = [ ] , c = 0 , l = t . length ; for ( s [ 0 ] = 4 ; c < l ; c ++ ) r = t [ c - e ] || 0 , i = n && n [ c ] || 0 , o = n && n [ c - e ] || 0 , a = g ( r , i , o ) , s [ c + 1 ] = t [ c ] - a + 256 & 255 ; return s } , g = function ( t , e , n ) { var r = t + e - n , i = Math . abs ( r - t ) , o = Math . abs ( r - e ) , a = Math . abs ( r - n ) ; return i <= o && i <= a ? t : o <= a ? e : n } , m = function ( ) { return [ u , h , f , d , p ] } , w = function ( t ) { for ( var e , n , r , i = 0 , o = t . length ; i < o ; ) e = y ( t [ i ] . slice ( 1 ) ) , ( e < n || ! n ) && ( n = e , r = i ) , i ++ ; return r } , y = function ( t ) { for ( var e = 0 , n = t . length , r = 0 ; e < n ; ) r += Math . abs ( t [ e ++ ] ) ; return r } , v = function ( e ) { var n ; switch ( e ) { case t . image _compression . FAST : n = 11 ; break ; case t . image _compression . MEDIUM : n = 13 ; break ; case t . image _compression . SLOW : n = 14 } return n } ; t . processPNG = function ( t , r , o , a , s ) { var c , l , u , h , f , d , p = this . color _spaces . DEVICE _RGB , g = this . decode . FLATE _DECODE , m = 8 ; if ( this . isArrayBuffer ( t ) && ( t = new Uint8Array ( t ) ) , this . isArrayBufferView ( t ) ) { if ( e ( ) ) throw new Error ( "PNG support requires png.js and zlib.js" ) ; if ( c = new PNG ( t ) , t = c . imgData , m = c . bits , p = c . colorSpace , h = c . colors , [ 4 , 6 ] . indexOf ( c . colorType ) !== - 1 ) { if ( 8 === c . bits ) for ( var w , y , b = 32 == c . pixelBitlength ? new Uint32Array ( c . decodePixels ( ) . buffer ) : 16 == c . pixelBitlength ? new Uint16Array ( c . decodePixels ( ) . buffer ) : new Uint8Array ( c . decodePixels ( ) . buffer ) , x = b . length , k = new Uint8Array ( x * c . colors ) , _ = new Uint8Array ( x ) , C = c . pixelBitlength - c . bits , A = 0 , S = 0 ; A < x ; A ++ ) { for ( w = b [ A ] , y = 0 ; y < C ; ) k [ S ++ ] = w >>> y & 255 , y += c . bits ; _ [ A ] = w >>> y & 255 } if ( 16 === c . bits ) { for ( var w , b = new Uint32Array ( c . decodePixels ( ) . buffer ) , x = b . length , k = new Uint8Array ( x * ( 32 / c . pixelBitlength ) * c . colors ) , _ = new Uint8Array ( x * ( 32 / c . pixelBitlength ) ) , q = c . colors > 1 , A = 0 , S = 0 , T = 0 ; A < x ; ) w = b [ A ++ ] , k [ S ++ ] = w >>> 0 & 255 , q && ( k [ S ++ ] = w >>> 16 & 255 , w = b [ A ++ ] , k [ S ++ ] = w >>> 0 & 255 ) , _ [ T ++ ] = w >>> 16 & 255 ; m = 8 } n ( a ) ? ( t = i ( k , c . width * c . colors , c . colors , a ) , d = i ( _ , c . width , 1 , a ) ) : ( t = k , d = _ , g = null ) } if ( 3 === c . colorType && ( p = this . color _spaces . INDEXED , f = c . palette , c . transparency . indexed ) ) { for ( var I = c . transparency . indexed , P = 0 , A = 0 , x = I . length ; A < x ; ++ A ) P += I [ A ] ; if ( P /= 255 , P === x - 1 && I . indexOf ( 0 ) !== - 1 ) u = [ I . indexOf ( 0 ) ] ; else if ( P !== x ) { for ( var b = c . decodePixels ( ) , _ = new Uint8Array ( b . length ) , A = 0 , x = b . length ; A < x ; A ++ ) _ [ A ] = I [ b [ A ] ] ; d = i ( _ , c . width , 1 ) } } var E = v ( a ) ; return l = g === this . decode . FLATE _DECODE ? "/Predictor " + E + " /Colors " + h + " /BitsPerComponent " + m + " /Columns " + c . width : "/Colors " + h + " /BitsPerComponent " + m + " /Columns " + c . width , ( this . isArrayBuffer ( t ) || this . isArrayBufferView ( t ) ) && ( t = this . arrayBufferToBinaryString ( t ) ) , ( d && this . isArrayBuffer ( d ) || this . isArrayBufferView ( d ) ) && ( d = this . arrayBufferToBinaryString ( d ) ) , this
* jsPDF total _pages plugin
* Copyright ( c ) 2013 Eduardo Menezes de Morais , eduardo . morais @ usp . br
*
*
* === === === === === === === === === === === === === === === === === === === === === === ==
* /
function ( t ) { t . putTotalPages = function ( t ) { for ( var e = new RegExp ( t , "g" ) , n = 1 ; n <= this . internal . getNumberOfPages ( ) ; n ++ ) for ( var r = 0 ; r < this . internal . pages [ n ] . length ; r ++ ) this . internal . pages [ n ] [ r ] = this . internal . pages [ n ] [ r ] . replace ( e , this . internal . getNumberOfPages ( ) ) ; return this } } ( e . API ) , / * * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
* jsPDF XMP metadata plugin
* Copyright ( c ) 2016 Jussi Utunen , u - jussi @ suomi24 . fi
*
*
* === === === === === === === === === === === === === === === === === === === === === === ==
* /
function ( t ) { var e = "" , n = "" , r = "" ; t . addMetadata = function ( t , i ) { return n = i || "http://jspdf.default.namespaceuri/" , e = t , this . internal . events . subscribe ( "postPutResources" , function ( ) { if ( e ) { var t = '<x:xmpmeta xmlns:x="adobe:ns:meta/">' , i = '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns:jspdf="' + n + '"><jspdf:metadata>' , o = "</jspdf:metadata></rdf:Description></rdf:RDF>" , a = "</x:xmpmeta>" , s = unescape ( encodeURIComponent ( t ) ) , c = unescape ( encodeURIComponent ( i ) ) , l = unescape ( encodeURIComponent ( e ) ) , u = unescape ( encodeURIComponent ( o ) ) , h = unescape ( encodeURIComponent ( a ) ) , f = c . length + l . length + u . length + s . length + h . length ; r = this . internal . newObject ( ) , this . internal . write ( "<< /Type /Metadata /Subtype /XML /Length " + f + " >>" ) , this . internal . write ( "stream" ) , this . internal . write ( s + c + l + u + h ) , this . internal . write ( "endstream" ) , this . internal . write ( "endobj" ) } else r = "" } ) , this . internal . events . subscribe ( "putCatalog" , function ( ) { r && this . internal . write ( "/Metadata " + r + " 0 R" ) } ) , this } } ( e . API ) , function ( t ) { if ( t . URL = t . URL || t . webkitURL , t . Blob && t . URL ) try { return void new Blob } catch ( t ) { } var e = t . BlobBuilder || t . WebKitBlobBuilder || t . MozBlobBuilder || function ( t ) { var e = function ( t ) { return Object . prototype . toString . call ( t ) . match ( /^\[object\s(.*)\]$/ ) [ 1 ] } , n = function ( ) { this . data = [ ] } , r = function ( t , e , n ) { this . data = t , this . size = t . length , this . type = e , this . encoding = n } , i = n . prototype , o = r . prototype , a = t . FileReaderSync , s = function ( t ) { this . code = this [ this . name = t ] } , c = "NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR" . split ( " " ) , l = c . length , u = t . URL || t . webkitURL || t , h = u . createObjectURL , f = u . revokeObjectURL , d = u , p = t . btoa , g = t . atob , m = t . ArrayBuffer , w = t . Uint8Array , y = /^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/ ; for ( r . fake = o . fake = ! 0 ; l -- ; ) s . prototype [ c [ l ] ] = l + 1 ; return u . createObjectURL || ( d = t . URL = function ( t ) { var e , n = document . createElementNS ( "http://www.w3.org/1999/xhtml" , "a" ) ; return n . href = t , "origin" in n || ( "data:" === n . protocol . toLowerCase ( ) ? n . origin = null : ( e = t . match ( y ) , n . origin = e && e [ 1 ] ) ) , n } ) , d . createObjectURL = function ( t ) { var e , n = t . type ; return null === n && ( n = "application/octet-stream" ) , t instanceof r ? ( e = "data:" + n , "base64" === t . encoding ? e + ";base64," + t . data : "URI" === t . encoding ? e + "," + decodeURIComponent ( t . data ) : p ? e + ";base64," + p ( t . data ) : e + "," + encodeURIComponent ( t . data ) ) : h ? h . call ( u , t ) : void 0 } , d . revokeObjectURL = function ( t ) { "data:" !== t . substring ( 0 , 5 ) && f && f . call ( u , t ) } , i . append = function ( t ) { var n = this . data ; if ( w && ( t instanceof m || t instanceof w ) ) { for ( var i = "" , o = new w ( t ) , c = 0 , l = o . length ; c < l ; c ++ ) i += String . fromCharCode ( o [ c ] ) ; n . push ( i ) } else if ( "Blob" === e ( t ) || "File" === e ( t ) ) { if ( ! a ) throw new s ( "NOT_READABLE_ERR" ) ; var u = new a ; n . push ( u . readAsBinaryString ( t ) ) } else t instanceof r ? "base64" === t . encoding && g ? n . push ( g ( t . data ) ) : "URI" === t . encoding ? n . push ( decodeURIComponent ( t . data ) ) : "raw" === t . encoding && n . push ( t . data ) : ( "string" != typeof t && ( t += "" ) , n . push ( unescape ( encodeURIComponent ( t ) ) ) ) } , i . getBlob = function ( t ) { return arguments . length || ( t = null ) , new r ( this . data . join ( "" ) , t , "raw" ) } , i . toString = function ( ) { return "[object BlobBuilder]" } , o . slice = function ( t , e , n ) { var i = arguments . length ; return i < 3 && ( n = null ) , new r ( this . data . slice ( t , i > 1 ? e : this . data . length ) , n , this . encoding ) } , o . toString = function ( ) { return "[object Blob]" } , o . close = function ( ) { this . size = 0 , delete this . data } , n } ( t ) ; t . Blob = function ( t , n ) { var r = n ? n . type || "" : "" , i = new e ; if ( t ) for ( var o = 0 , a = t . length ; o < a ; o ++ ) Uint8Array && t [ o ] instanceof Uint8Array ? i . append ( t [ o ] . buffer ) : i . append ( t [ o ] ) ; var s = i . getBlob ( r ) ; return ! s . slice && s . webkitSlice && ( s . slice = s . webkitSlice ) , s } ; var n = Object . getPrototypeOf || function ( t ) { return t . _ _proto _ _ } ; t . Blob . prototype = n ( new t . Blob ) } ( "undefined" != typeof self && self || "undefined" != typeof window && window || ( void 0 ) . content || void 0 ) ; var i = i || function ( t ) { if ( "undefined" == typeof navigator || ! /MSIE [1-9]\./ . test ( navigator . userAgent ) ) { var e = t . document , n = function ( ) { return t . URL || t . webkitURL || t } , r = e . createElementNS ( "http://www.w3.org/1999/xhtml" , "a" ) , i = "download" in r , o = function ( t ) { var e = new MouseEvent ( "click" ) ; t . dispatchEvent ( e ) } , a = /Version\/[\d\.]+.*Safari/ . test ( navigator . userAgent ) , s = t . webkitRequestFileSyste
* Copyright ( c ) 2012 chick307 < chick307 @ gmail . com >
*
* Licensed under the MIT License .
* http : //opensource.org/licenses/mit-license
* /
void function ( t , e ) { "object" == typeof module ? module . exports = e ( ) : "function" == typeof define ? define ( e ) : t . adler32cs = e ( ) } ( e , function ( ) { var t = "function" == typeof ArrayBuffer && "function" == typeof Uint8Array , e = null , n = function ( ) { if ( ! t ) return function ( ) { return ! 1 } ; try { var n = { } ; "function" == typeof n . Buffer && ( e = n . Buffer ) } catch ( t ) { } return function ( t ) { return t instanceof ArrayBuffer || null !== e && t instanceof e } } ( ) , r = function ( ) { return null !== e ? function ( t ) { return new e ( t , "utf8" ) . toString ( "binary" ) } : function ( t ) { return unescape ( encodeURIComponent ( t ) ) } } ( ) , i = 65521 , o = function ( t , e ) { for ( var n = 65535 & t , r = t >>> 16 , o = 0 , a = e . length ; o < a ; o ++ ) n = ( n + ( 255 & e . charCodeAt ( o ) ) ) % i , r = ( r + n ) % i ; return ( r << 16 | n ) >>> 0 } , a = function ( t , e ) { for ( var n = 65535 & t , r = t >>> 16 , o = 0 , a = e . length ; o < a ; o ++ ) n = ( n + e [ o ] ) % i , r = ( r + n ) % i ; return ( r << 16 | n ) >>> 0 } , s = { } , c = s . Adler32 = function ( ) { var e = function ( t ) { if ( ! ( this instanceof e ) ) throw new TypeError ( "Constructor cannot called be as a function." ) ; if ( ! isFinite ( t = null == t ? 1 : + t ) ) throw new Error ( "First arguments needs to be a finite number." ) ; this . checksum = t >>> 0 } , i = e . prototype = { } ; return i . constructor = e , e . from = function ( t ) { return t . prototype = i , t } ( function ( t ) { if ( ! ( this instanceof e ) ) throw new TypeError ( "Constructor cannot called be as a function." ) ; if ( null == t ) throw new Error ( "First argument needs to be a string." ) ; this . checksum = o ( 1 , t . toString ( ) ) } ) , e . fromUtf8 = function ( t ) { return t . prototype = i , t } ( function ( t ) { if ( ! ( this instanceof e ) ) throw new TypeError ( "Constructor cannot called be as a function." ) ; if ( null == t ) throw new Error ( "First argument needs to be a string." ) ; var n = r ( t . toString ( ) ) ; this . checksum = o ( 1 , n ) } ) , t && ( e . fromBuffer = function ( t ) { return t . prototype = i , t } ( function ( t ) { if ( ! ( this instanceof e ) ) throw new TypeError ( "Constructor cannot called be as a function." ) ; if ( ! n ( t ) ) throw new Error ( "First argument needs to be ArrayBuffer." ) ; var r = new Uint8Array ( t ) ; return this . checksum = a ( 1 , r ) } ) ) , i . update = function ( t ) { if ( null == t ) throw new Error ( "First argument needs to be a string." ) ; return t = t . toString ( ) , this . checksum = o ( this . checksum , t ) } , i . updateUtf8 = function ( t ) { if ( null == t ) throw new Error ( "First argument needs to be a string." ) ; var e = r ( t . toString ( ) ) ; return this . checksum = o ( this . checksum , e ) } , t && ( i . updateBuffer = function ( t ) { if ( ! n ( t ) ) throw new Error ( "First argument needs to be ArrayBuffer." ) ; var e = new Uint8Array ( t ) ; return this . checksum = a ( this . checksum , e ) } ) , i . clone = function ( ) { return new c ( this . checksum ) } , e } ( ) ; return s . from = function ( t ) { if ( null == t ) throw new Error ( "First argument needs to be a string." ) ; return o ( 1 , t . toString ( ) ) } , s . fromUtf8 = function ( t ) { if ( null == t ) throw new Error ( "First argument needs to be a string." ) ; var e = r ( t . toString ( ) ) ; return o ( 1 , e ) } , t && ( s . fromBuffer = function ( t ) { if ( ! n ( t ) ) throw new Error ( "First argument need to be ArrayBuffer." ) ; var e = new Uint8Array ( t ) ; return a ( 1 , e ) } ) , s } ) ; / * *
* CssColors
* Copyright ( c ) 2014 Steven Spungin ( TwelveTone LLC ) steven @ twelvetone . tv
*
* Licensed under the MIT License .
* http : //opensource.org/licenses/mit-license
* /
var o = { } ; o . _colorsTable = { aliceblue : "#f0f8ff" , antiquewhite : "#faebd7" , aqua : "#00ffff" , aquamarine : "#7fffd4" , azure : "#f0ffff" , beige : "#f5f5dc" , bisque : "#ffe4c4" , black : "#000000" , blanchedalmond : "#ffebcd" , blue : "#0000ff" , blueviolet : "#8a2be2" , brown : "#a52a2a" , burlywood : "#deb887" , cadetblue : "#5f9ea0" , chartreuse : "#7fff00" , chocolate : "#d2691e" , coral : "#ff7f50" , cornflowerblue : "#6495ed" , cornsilk : "#fff8dc" , crimson : "#dc143c" , cyan : "#00ffff" , darkblue : "#00008b" , darkcyan : "#008b8b" , darkgoldenrod : "#b8860b" , darkgray : "#a9a9a9" , darkgreen : "#006400" , darkkhaki : "#bdb76b" , darkmagenta : "#8b008b" , darkolivegreen : "#556b2f" , darkorange : "#ff8c00" , darkorchid : "#9932cc" , darkred : "#8b0000" , darksalmon : "#e9967a" , darkseagreen : "#8fbc8f" , darkslateblue : "#483d8b" , darkslategray : "#2f4f4f" , darkturquoise : "#00ced1" , darkviolet : "#9400d3" , deeppink : "#ff1493" , deepskyblue : "#00bfff" , dimgray : "#696969" , dodgerblue : "#1e90ff" , firebrick : "#b22222" , floralwhite : "#fffaf0" , forestgreen : "#228b22" , fuchsia : "#ff00ff" , gainsboro : "#dcdcdc" , ghostwhite : "#f8f8ff" , gold : "#ffd700" , goldenrod : "#daa520" , gray : "#808080" , green : "#008000" , greenyellow : "#adff2f" , honeydew : "#f0fff0" , hotpink : "#ff69b4" , "indianred " : "#cd5c5c" , indigo : "#4b0082" , ivory : "#fffff0" , khaki : "#f0e68c" , lavender : "#e6e6fa" , lavenderblush : "#fff0f5" , lawngreen : "#7cfc00" , lemonchiffon : "#fffacd" , lightblue : "#add8e6" , lightcoral : "#f08080" , lightcyan : "#e0ffff" , lightgoldenrodyellow : "#fafad2" , lightgrey : "#d3d3d3" , lightgreen : "#90ee90" , lightpink : "#ffb6c1" , lightsalmon : "#ffa07a" , lightseagreen : "#20b2aa" , lightskyblue : "#87cefa" , lightslategray : "#778899" , lightsteelblue : "#b0c4de" , lightyellow : "#ffffe0" , lime : "#00ff00" , limegreen : "#32cd32" , linen : "#faf0e6" , magenta : "#ff00ff" , maroon : "#800000" , mediumaquamarine : "#66cdaa" , mediumblue : "#0000cd" , mediumorchid : "#ba55d3" , mediumpurple : "#9370d8" , mediumseagreen : "#3cb371" , mediumslateblue : "#7b68ee" , mediumspringgreen : "#00fa9a" , mediumturquoise : "#48d1cc" , mediumvioletred : "#c71585" , midnightblue : "#191970" , mintcream : "#f5fffa" , mistyrose : "#ffe4e1" , moccasin : "#ffe4b5" , navajowhite : "#ffdead" , navy : "#000080" , oldlace : "#fdf5e6" , olive : "#808000" , olivedrab : "#6b8e23" , orange : "#ffa500" , orangered : "#ff4500" , orchid : "#da70d6" , palegoldenrod : "#eee8aa" , palegreen : "#98fb98" , paleturquoise : "#afeeee" , palevioletred : "#d87093" , papayawhip : "#ffefd5" , peachpuff : "#ffdab9" , peru : "#cd853f" , pink : "#ffc0cb" , plum : "#dda0dd" , powderblue : "#b0e0e6" , purple : "#800080" , red : "#ff0000" , rosybrown : "#bc8f8f" , royalblue : "#4169e1" , saddlebrown : "#8b4513" , salmon : "#fa8072" , sandybrown : "#f4a460" , seagreen : "#2e8b57" , seashell : "#fff5ee" , sienna : "#a0522d" , silver : "#c0c0c0" , skyblue : "#87ceeb" , slateblue : "#6a5acd" , slategray : "#708090" , snow : "#fffafa" , springgreen : "#00ff7f" , steelblue : "#4682b4" , tan : "#d2b48c" , teal : "#008080" , thistle : "#d8bfd8" , tomato : "#ff6347" , turquoise : "#40e0d0" , violet : "#ee82ee" , wheat : "#f5deb3" , white : "#ffffff" , whitesmoke : "#f5f5f5" , yellow : "#ffff00" , yellowgreen : "#9acd32" } , o . colorNameToHex = function ( t ) { return t = t . toLowerCase ( ) , "undefined" != typeof this . _colorsTable [ t ] && this . _colorsTable [ t ] } ; / *
Deflate . js - https : //github.com/gildas-lormeau/zip.js
Copyright ( c ) 2013 Gildas Lormeau . All rights reserved .
Redistribution and use in source and binary forms , with or without
modification , are permitted provided that the following conditions are met :
1. Redistributions of source code must retain the above copyright notice ,
this list of conditions and the following disclaimer .
2. Redistributions in binary form must reproduce the above copyright
notice , this list of conditions and the following disclaimer in
the documentation and / or other materials provided with the distribution .
3. The names of the authors may not be used to endorse or promote products
derived from this software without specific prior written permission .
THIS SOFTWARE IS PROVIDED ` ` AS IS '' AND ANY EXPRESSED OR IMPLIED WARRANTIES ,
INCLUDING , BUT NOT LIMITED TO , THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL JCRAFT ,
INC . OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT , INDIRECT ,
INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT
LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE , DATA ,
OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT ( INCLUDING
NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE ,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
* /
var a = function ( t ) { function e ( ) { function t ( t ) { var e , n , i , o , a , c , l = r . dyn _tree , u = r . stat _desc . static _tree , h = r . stat _desc . extra _bits , f = r . stat _desc . extra _base , p = r . stat _desc . max _length , g = 0 ; for ( o = 0 ; o <= s ; o ++ ) t . bl _count [ o ] = 0 ; for ( l [ 2 * t . heap [ t . heap _max ] + 1 ] = 0 , e = t . heap _max + 1 ; e < d ; e ++ ) n = t . heap [ e ] , o = l [ 2 * l [ 2 * n + 1 ] + 1 ] + 1 , o > p && ( o = p , g ++ ) , l [ 2 * n + 1 ] = o , n > r . max _code || ( t . bl _count [ o ] ++ , a = 0 , n >= f && ( a = h [ n - f ] ) , c = l [ 2 * n ] , t . opt _len += c * ( o + a ) , u && ( t . static _len += c * ( u [ 2 * n + 1 ] + a ) ) ) ; if ( 0 !== g ) { do { for ( o = p - 1 ; 0 === t . bl _count [ o ] ; ) o -- ; t . bl _count [ o ] -- , t . bl _count [ o + 1 ] += 2 , t . bl _count [ p ] -- , g -= 2 } while ( g > 0 ) ; for ( o = p ; 0 !== o ; o -- ) for ( n = t . bl _count [ o ] ; 0 !== n ; ) i = t . heap [ -- e ] , i > r . max _code || ( l [ 2 * i + 1 ] != o && ( t . opt _len += ( o - l [ 2 * i + 1 ] ) * l [ 2 * i ] , l [ 2 * i + 1 ] = o ) , n -- ) } } function e ( t , e ) { var n = 0 ; do n |= 1 & t , t >>>= 1 , n <<= 1 ; while ( -- e > 0 ) ; return n >>> 1 } function n ( t , n , r ) { var i , o , a , c = [ ] , l = 0 ; for ( i = 1 ; i <= s ; i ++ ) c [ i ] = l = l + r [ i - 1 ] << 1 ; for ( o = 0 ; o <= n ; o ++ ) a = t [ 2 * o + 1 ] , 0 !== a && ( t [ 2 * o ] = e ( c [ a ] ++ , a ) ) } var r = this ; r . build _tree = function ( e ) { var i , o , a , s = r . dyn _tree , c = r . stat _desc . static _tree , l = r . stat _desc . elems , u = - 1 ; for ( e . heap _len = 0 , e . heap _max = d , i = 0 ; i < l ; i ++ ) 0 !== s [ 2 * i ] ? ( e . heap [ ++ e . heap _len ] = u = i , e . depth [ i ] = 0 ) : s [ 2 * i + 1 ] = 0 ; for ( ; e . heap _len < 2 ; ) a = e . heap [ ++ e . heap _len ] = u < 2 ? ++ u : 0 , s [ 2 * a ] = 1 , e . depth [ a ] = 0 , e . opt _len -- , c && ( e . static _len -= c [ 2 * a + 1 ] ) ; for ( r . max _code = u , i = Math . floor ( e . heap _len / 2 ) ; i >= 1 ; i -- ) e . pqdownheap ( s , i ) ; a = l ; do i = e . heap [ 1 ] , e . heap [ 1 ] = e . heap [ e . heap _len -- ] , e . pqdownheap ( s , 1 ) , o = e . heap [ 1 ] , e . heap [ -- e . heap _max ] = i , e . heap [ -- e . heap _max ] = o , s [ 2 * a ] = s [ 2 * i ] + s [ 2 * o ] , e . depth [ a ] = Math . max ( e . depth [ i ] , e . depth [ o ] ) + 1 , s [ 2 * i + 1 ] = s [ 2 * o + 1 ] = a , e . heap [ 1 ] = a ++ , e . pqdownheap ( s , 1 ) ; while ( e . heap _len >= 2 ) ; e . heap [ -- e . heap _max ] = e . heap [ 1 ] , t ( e ) , n ( s , r . max _code , e . bl _count ) } } function n ( t , e , n , r , i ) { var o = this ; o . static _tree = t , o . extra _bits = e , o . extra _base = n , o . elems = r , o . max _length = i } function r ( t , e , n , r , i ) { var o = this ; o . good _length = t , o . max _lazy = e , o . nice _length = n , o . max _chain = r , o . func = i } function i ( t , e , n , r ) { var i = t [ 2 * e ] , o = t [ 2 * n ] ; return i < o || i == o && r [ e ] <= r [ n ] } function o ( ) { function t ( ) { var t ; for ( Pt = 2 * St , Ot [ Rt - 1 ] = 0 , t = 0 ; t < Rt - 1 ; t ++ ) Ot [ t ] = 0 ; Yt = L [ Gt ] . max _lazy , Qt = L [ Gt ] . good _length , Kt = L [ Gt ] . nice _length , Vt = L [ Gt ] . max _chain , Ut = 0 , Nt = 0 , Wt = 0 , zt = Xt = tt - 1 , Mt = 0 , Ft = 0 } function r ( ) { var t ; for ( t = 0 ; t < f ; t ++ ) $t [ 2 * t ] = 0 ; for ( t = 0 ; t < c ; t ++ ) Zt [ 2 * t ] = 0 ; for ( t = 0 ; t < l ; t ++ ) te [ 2 * t ] = 0 ; $t [ 2 * p ] = 1 , ee . opt _len = ee . static _len = 0 , se = le = 0 } function o ( ) { ne . dyn _tree = $t , ne . stat _desc = n . static _l _desc , re . dyn _tree = Zt , re . stat _desc = n . static _d _desc , ie . dyn _tree = te , ie . stat _desc = n . static _bl _desc , he = 0 , fe = 0 , ue = 8 , r ( ) } function a ( t , e ) { var n , r , i = - 1 , o = t [ 1 ] , a = 0 , s = 7 , c = 4 ; for ( 0 === o && ( s = 138 , c = 3 ) , t [ 2 * ( e + 1 ) + 1 ] = 65535 , n = 0 ; n <= e ; n ++ ) r = o , o = t [ 2 * ( n + 1 ) + 1 ] , ++ a < s && r == o || ( a < c ? te [ 2 * r ] += a : 0 !== r ? ( r != i && te [ 2 * r ] ++ , te [ 2 * m ] ++ ) : a <= 10 ? te [ 2 * w ] ++ : te [ 2 * y ] ++ , a = 0 , i = r , 0 === o ? ( s = 138 , c = 3 ) : r == o ? ( s = 6 , c = 3 ) : ( s = 7 , c = 4 ) ) } function s ( ) { var t ; for ( a ( $t , ne . max _code ) , a ( Zt , re . max _code ) , ie . build _tree ( ee ) , t = l - 1 ; t >= 3 && 0 === te [ 2 * e . bl _order [ t ] + 1 ] ; t -- ) ; return ee . opt _len += 3 * ( t + 1 ) + 5 + 5 + 4 , t } function u ( t ) { ee . pending _buf [ ee . pending ++ ] = t } function d ( t ) { u ( 255 & t ) , u ( t >>> 8 & 255 ) } function g ( t ) { u ( t >> 8 & 255 ) , u ( 255 & t & 255 ) } function R ( t , e ) { var n , r = e ; fe > v - r ? ( n = t , he |= n << fe & 65535 , d ( he ) , he = n >>> v - fe , fe += r - v ) : ( he |= t << fe & 65535 , fe += r ) } function rt ( t , e ) { var n = 2 * t ; R ( 65535 & e [ n ] , 65535 & e [ n + 1 ] ) } function it ( t , e ) { var n , r , i = - 1 , o = t [ 1 ] , a = 0 , s = 7 , c = 4 ; for ( 0 === o && ( s = 138 , c = 3 ) , n = 0 ; n <= e ; n ++ ) if ( r = o , o = t [ 2 * ( n + 1 ) + 1 ] , ! ( ++ a < s && r == o ) ) { if ( a < c ) { do rt ( r , te ) ; while ( 0 !== -- a ) } else 0 !== r ? ( r != i && ( rt ( r , te ) , a -- ) , rt ( m , te ) , R ( a - 3 , 2 ) ) : a <= 10 ? ( rt ( w , te ) , R ( a - 3 , 3 ) ) : ( rt ( y , te ) , R ( a - 11 , 7 ) ) ; a = 0 , i = r , 0 === o ? ( s = 138 , c = 3 ) : r == o ? ( s = 6 , c = 3 ) : ( s = 7 , c = 4 ) } } function ot ( t , n , r ) { var i ; for ( R ( t - 257 , 5 ) , R ( n - 1 , 5 ) , R ( r - 4 , 4 ) , i = 0 ; i < r ; i ++ ) R ( te [ 2 * e . bl _order [ i ] + 1 ] , 3 ) ; it ( $t , t - 1 ) , it ( Zt , n - 1 ) } function at ( ) { 16 == fe ? ( d ( he ) , he = 0 , fe = 0 ) : fe >= 8 && ( u ( 255 & he ) , he >>>= 8 , fe -= 8 ) } function st ( ) { R ( $ << 1 , 3 ) , rt ( p , n . static _ltree ) , at ( ) , 1 + ue + 10 - fe < 9 && ( R ( $ << 1 , 3 ) , rt ( p , n . static _ltree ) , at ( ) ) , ue = 7 } function ct ( t , n ) { var r , i , o ; if ( ee . pending _buf [ ce + 2 * se ] = t >>> 8 & 255 , ee . pending _buf [ ce + 2 * se + 1 ] = 255 & t , ee . pending _buf [ oe + se ] = 255 & n , se ++ , 0 === t ? $t [ 2 * n ] ++ : ( le ++ , t -- , $t [ 2 * ( e . _length _code [ n ] + h + 1 ) ] ++ , Zt [ 2 * e . d _code ( t ) ] ++ ) , 0 === ( 8191 & se ) && Gt > 2 ) { for ( r = 8 * se , i = Ut - Nt , o = 0 ; o < c ; o ++ ) r += Zt [ 2 * o ] * ( 5 + e . extra _dbits [ o ] ) ; if ( r >>>= 3 , le < Math . floor ( se / 2 ) && r < Math . floor ( i / 2 ) ) return ! 0 } return se == ae - 1 } function lt ( t , n ) { var r , i ,
html2canvas 0.5 . 0 - beta3 < http : //html2canvas.hertzen.com>
Copyright ( c ) 2016 Niklas von Hertzen
Released under License
* /
! function ( t ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = t ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , t ) ; else { var e ; "undefined" != typeof window ? e = window : "undefined" != typeof global ? e = global : "undefined" != typeof self && ( e = self ) , e . html2canvas = t ( ) } } ( function ( ) { var t ; return function t ( e , n , r ) { function i ( a , s ) { if ( ! n [ a ] ) { if ( ! e [ a ] ) { var c = "function" == typeof require && require ; if ( ! s && c ) return c ( a , ! 0 ) ; if ( o ) return o ( a , ! 0 ) ; var l = new Error ( "Cannot find module '" + a + "'" ) ; throw l . code = "MODULE_NOT_FOUND" , l } var u = n [ a ] = { exports : { } } ; e [ a ] [ 0 ] . call ( u . exports , function ( t ) { var n = e [ a ] [ 1 ] [ t ] ; return i ( n ? n : t ) } , u , u . exports , t , e , n , r ) } return n [ a ] . exports } for ( var o = "function" == typeof require && require , a = 0 ; a < r . length ; a ++ ) i ( r [ a ] ) ; return i } ( { 1 : [ function ( e , n , r ) { ( function ( e ) { ! function ( i ) { function o ( t ) { throw RangeError ( R [ t ] ) } function a ( t , e ) { for ( var n = t . length ; n -- ; ) t [ n ] = e ( t [ n ] ) ; return t } function s ( t , e ) { return a ( t . split ( F ) , e ) . join ( "." ) } function c ( t ) { for ( var e , n , r = [ ] , i = 0 , o = t . length ; i < o ; ) e = t . charCodeAt ( i ++ ) , e >= 55296 && e <= 56319 && i < o ? ( n = t . charCodeAt ( i ++ ) , 56320 == ( 64512 & n ) ? r . push ( ( ( 1023 & e ) << 10 ) + ( 1023 & n ) + 65536 ) : ( r . push ( e ) , i -- ) ) : r . push ( e ) ; return r } function l ( t ) { return a ( t , function ( t ) { var e = "" ; return t > 65535 && ( t -= 65536 , e += j ( t >>> 10 & 1023 | 55296 ) , t = 56320 | 1023 & t ) , e += j ( t ) } ) . join ( "" ) } function u ( t ) { return t - 48 < 10 ? t - 22 : t - 65 < 26 ? t - 65 : t - 97 < 26 ? t - 97 : _ } function h ( t , e ) { return t + 22 + 75 * ( t < 26 ) - ( ( 0 != e ) << 5 ) } function f ( t , e , n ) { var r = 0 ; for ( t = n ? D ( t / q ) : t >> 1 , t += D ( t / e ) ; t > B * A >> 1 ; r += _ ) t = D ( t / B ) ; return D ( r + ( B + 1 ) * t / ( t + S ) ) } function d ( t ) { var e , n , r , i , a , s , c , h , d , p , g = [ ] , m = t . length , w = 0 , y = I , v = T ; for ( n = t . lastIndexOf ( P ) , n < 0 && ( n = 0 ) , r = 0 ; r < n ; ++ r ) t . charCodeAt ( r ) >= 128 && o ( "not-basic" ) , g . push ( t . charCodeAt ( r ) ) ; for ( i = n > 0 ? n + 1 : 0 ; i < m ; ) { for ( a = w , s = 1 , c = _ ; i >= m && o ( "invalid-input" ) , h = u ( t . charCodeAt ( i ++ ) ) , ( h >= _ || h > D ( ( k - w ) / s ) ) && o ( "overflow" ) , w += h * s , d = c <= v ? C : c >= v + A ? A : c - v , ! ( h < d ) ; c += _ ) p = _ - d , s > D ( k / p ) && o ( "overflow" ) , s *= p ; e = g . length + 1 , v = f ( w - a , e , 0 == a ) , D ( w / e ) > k - y && o ( "overflow" ) , y += D ( w / e ) , w %= e , g . splice ( w ++ , 0 , y ) } return l ( g ) } function p ( t ) { var e , n , r , i , a , s , l , u , d , p , g , m , w , y , v , b = [ ] ; for ( t = c ( t ) , m = t . length , e = I , n = 0 , a = T , s = 0 ; s < m ; ++ s ) g = t [ s ] , g < 128 && b . push ( j ( g ) ) ; for ( r = i = b . length , i && b . push ( P ) ; r < m ; ) { for ( l = k , s = 0 ; s < m ; ++ s ) g = t [ s ] , g >= e && g < l && ( l = g ) ; for ( w = r + 1 , l - e > D ( ( k - n ) / w ) && o ( "overflow" ) , n += ( l - e ) * w , e = l , s = 0 ; s < m ; ++ s ) if ( g = t [ s ] , g < e && ++ n > k && o ( "overflow" ) , g == e ) { for ( u = n , d = _ ; p = d <= a ? C : d >= a + A ? A : d - a , ! ( u < p ) ; d += _ ) v = u - p , y = _ - p , b . push ( j ( h ( p + v % y , 0 ) ) ) , u = D ( v / y ) ; b . push ( j ( h ( u , 0 ) ) ) , a = f ( n , w , r == i ) , n = 0 , ++ r } ++ n , ++ e } return b . join ( "" ) } function g ( t ) { return s ( t , function ( t ) { return E . test ( t ) ? d ( t . slice ( 4 ) . toLowerCase ( ) ) : t } ) } function m ( t ) { return s ( t , function ( t ) { return O . test ( t ) ? "xn--" + p ( t ) : t } ) } var w = "object" == typeof r && r , y = "object" == typeof n && n && n . exports == w && n , v = "object" == typeof e && e ; v . global !== v && v . window !== v || ( i = v ) ; var b , x , k = 2147483647 , _ = 36 , C = 1 , A = 26 , S = 38 , q = 700 , T = 72 , I = 128 , P = "-" , E = /^xn--/ , O = /[^ -~]/ , F = /\x2E|\u3002|\uFF0E|\uFF61/g , R = { overflow : "Overflow: input needs wider integers to process" , "not-basic" : "Illegal input >= 0x80 (not a basic code point)" , "invalid-input" : "Invalid input" } , B = _ - C , D = Math . floor , j = String . fromCharCode ; if ( b = { version : "1.2.4" , ucs2 : { decode : c , encode : l } , decode : d , encode : p , toASCII : m , toUnicode : g } , "function" == typeof t && "object" == typeof t . amd && t . amd ) t ( "punycode" , function ( ) { return b } ) ; else if ( w && ! w . nodeType ) if ( y ) y . exports = b ; else for ( x in b ) b . hasOwnProperty ( x ) && ( w [ x ] = b [ x ] ) ; else i . punycode = b } ( this ) } ) . call ( this , "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : { } ) } , { } ] , 2 : [ function ( t , e , n ) { function r ( t , e , n ) { ! t . defaultView || e === t . defaultView . pageXOffset && n === t . defaultView . pageYOffset || t . defaultView . scrollTo ( e , n ) } function i ( t , e ) { try { e && ( e . width = t . width , e . height = t . height , e . getContext ( "2d" ) . putImageData ( t . getContext ( "2d" ) . getImageData ( 0 , 0 , t . width , t . height ) , 0 , 0 ) ) } catch ( e ) { s ( "Unable to copy canvas content from" , t , e ) } } function o ( t , e ) { for ( var n = 3 === t . nodeType ? document . createTextNode ( t . nodeValue ) : t . cloneNode ( ! 1 ) , r = t . firstChild ; r ; ) e !== ! 0 && 1 === r . nodeType && "SCRIPT" === r . nodeName || n . appendChild ( o ( r , e ) ) , r = r . nextSibling ; return 1 === t . nodeType && ( n . _scrollTop = t . scrollTop , n . _scrollLeft = t . scrollLeft , "CANVAS" === t . nodeName ? i ( t , n ) : " TE
bottomLeftInner : c ( r + n [ 3 ] . width , i + v , Math . max ( 0 , p - n [ 3 ] . width ) , g - n [ 2 ] . width ) . bottomLeft . subdivide ( . 5 ) } } function u ( t , e , n , r ) { var i = function ( t , e , n ) { return { x : t . x + ( e . x - t . x ) * n , y : t . y + ( e . y - t . y ) * n } } ; return { start : t , startControl : e , endControl : n , end : r , subdivide : function ( o ) { var a = i ( t , e , o ) , s = i ( e , n , o ) , c = i ( n , r , o ) , l = i ( a , s , o ) , h = i ( s , c , o ) , f = i ( l , h , o ) ; return [ u ( t , a , l , f ) , u ( f , h , c , r ) ] } , curveTo : function ( t ) { t . push ( [ "bezierCurve" , e . x , e . y , n . x , n . y , r . x , r . y ] ) } , curveToReversed : function ( r ) { r . push ( [ "bezierCurve" , n . x , n . y , e . x , e . y , t . x , t . y ] ) } } } function h ( t , e , n , r , i , o , a ) { var s = [ ] ; return e [ 0 ] > 0 || e [ 1 ] > 0 ? ( s . push ( [ "line" , r [ 1 ] . start . x , r [ 1 ] . start . y ] ) , r [ 1 ] . curveTo ( s ) ) : s . push ( [ "line" , t . c1 [ 0 ] , t . c1 [ 1 ] ] ) , n [ 0 ] > 0 || n [ 1 ] > 0 ? ( s . push ( [ "line" , o [ 0 ] . start . x , o [ 0 ] . start . y ] ) , o [ 0 ] . curveTo ( s ) , s . push ( [ "line" , a [ 0 ] . end . x , a [ 0 ] . end . y ] ) , a [ 0 ] . curveToReversed ( s ) ) : ( s . push ( [ "line" , t . c2 [ 0 ] , t . c2 [ 1 ] ] ) , s . push ( [ "line" , t . c3 [ 0 ] , t . c3 [ 1 ] ] ) ) , e [ 0 ] > 0 || e [ 1 ] > 0 ? ( s . push ( [ "line" , i [ 1 ] . end . x , i [ 1 ] . end . y ] ) , i [ 1 ] . curveToReversed ( s ) ) : s . push ( [ "line" , t . c4 [ 0 ] , t . c4 [ 1 ] ] ) , s } function f ( t , e , n , r , i , o , a ) { e [ 0 ] > 0 || e [ 1 ] > 0 ? ( t . push ( [ "line" , r [ 0 ] . start . x , r [ 0 ] . start . y ] ) , r [ 0 ] . curveTo ( t ) , r [ 1 ] . curveTo ( t ) ) : t . push ( [ "line" , o , a ] ) , ( n [ 0 ] > 0 || n [ 1 ] > 0 ) && t . push ( [ "line" , i [ 0 ] . start . x , i [ 0 ] . start . y ] ) } function d ( t ) { return t . cssInt ( "zIndex" ) < 0 } function p ( t ) { return t . cssInt ( "zIndex" ) > 0 } function g ( t ) { return 0 === t . cssInt ( "zIndex" ) } function m ( t ) { return [ "inline" , "inline-block" , "inline-table" ] . indexOf ( t . css ( "display" ) ) !== - 1 } function w ( t ) { return t instanceof Y } function y ( t ) { return t . node . data . trim ( ) . length > 0 } function v ( t ) { return /^(normal|none|0px)$/ . test ( t . parent . css ( "letterSpacing" ) ) } function b ( t ) { return [ "TopLeft" , "TopRight" , "BottomRight" , "BottomLeft" ] . map ( function ( e ) { var n = t . css ( "border" + e + "Radius" ) , r = n . split ( " " ) ; return r . length <= 1 && ( r [ 1 ] = r [ 0 ] ) , r . map ( O ) } ) } function x ( t ) { return t . nodeType === Node . TEXT _NODE || t . nodeType === Node . ELEMENT _NODE } function k ( t ) { var e = t . css ( "position" ) , n = [ "absolute" , "relative" , "fixed" ] . indexOf ( e ) !== - 1 ? t . css ( "zIndex" ) : "auto" ; return "auto" !== n } function _ ( t ) { return "static" !== t . css ( "position" ) } function C ( t ) { return "none" !== t . css ( "float" ) } function A ( t ) { return [ "inline-block" , "inline-table" ] . indexOf ( t . css ( "display" ) ) !== - 1 } function S ( t ) { var e = this ; return function ( ) { return ! t . apply ( e , arguments ) } } function q ( t ) { return t . node . nodeType === Node . ELEMENT _NODE } function T ( t ) { return t . isPseudoElement === ! 0 } function I ( t ) { return t . node . nodeType === Node . TEXT _NODE } function P ( t ) { return function ( e , n ) { return e . cssInt ( "zIndex" ) + t . indexOf ( e ) / t . length - ( n . cssInt ( "zIndex" ) + t . indexOf ( n ) / t . length ) } } function E ( t ) { return t . getOpacity ( ) < 1 } function O ( t ) { return parseInt ( t , 10 ) } function F ( t ) { return t . width } function R ( t ) { return t . node . nodeType !== Node . ELEMENT _NODE || [ "SCRIPT" , "HEAD" , "TITLE" , "OBJECT" , "BR" , "OPTION" ] . indexOf ( t . node . nodeName ) === - 1 } function B ( t ) { return [ ] . concat . apply ( [ ] , t ) } function D ( t ) { var e = t . substr ( 0 , 1 ) ; return e === t . substr ( t . length - 1 ) && e . match ( /'|"/ ) ? t . substr ( 1 , t . length - 2 ) : t } function j ( t ) { for ( var e , n = [ ] , r = 0 , i = ! 1 ; t . length ; ) N ( t [ r ] ) === i ? ( e = t . splice ( 0 , r ) , e . length && n . push ( M . ucs2 . encode ( e ) ) , i = ! i , r = 0 ) : r ++ , r >= t . length && ( e = t . splice ( 0 , r ) , e . length && n . push ( M . ucs2 . encode ( e ) ) ) ; return n } function N ( t ) { return [ 32 , 13 , 10 , 9 , 45 ] . indexOf ( t ) !== - 1 } function z ( t ) { return /[^\u0000-\u00ff]/ . test ( t ) } var L = t ( "./log" ) , M = t ( "punycode" ) , U = t ( "./nodecontainer" ) , H = t ( "./textcontainer" ) , W = t ( "./pseudoelementcontainer" ) , X = t ( "./fontmetrics" ) , V = t ( "./color" ) , Y = t ( "./stackingcontext" ) , G = t ( "./utils" ) , J = G . bind , Q = G . getBounds , K = G . parseBackgrounds , $ = G . offsetBounds ; r . prototype . calculateOverflowClips = function ( ) { this . nodes . forEach ( function ( t ) { if ( q ( t ) ) { T ( t ) && t . appendToDOM ( ) , t . borders = this . parseBorders ( t ) ; var e = "hidden" === t . css ( "overflow" ) ? [ t . borders . clip ] : [ ] , n = t . parseClip ( ) ; n && [ "absolute" , "fixed" ] . indexOf ( t . css ( "position" ) ) !== - 1 && e . push ( [ [ "rect" , t . bounds . left + n . left , t . bounds . top + n . top , n . right - n . left , n . bottom - n . top ] ] ) , t . clip = i ( t ) ? t . parent . clip . concat ( e ) : e , t . backgroundClip = "hidden" !== t . css ( "overflow" ) ? t . clip . concat ( [ t . borders . clip ] ) : t . clip , T ( t ) && t . cleanDOM ( ) } else I ( t ) && ( t . clip = i ( t ) ? t . parent . clip : [ ] ) ; T ( t ) || ( t . bounds = null ) } , this ) } , r . prototype . asyncRenderer = function ( t , e , n ) { n = n || Date . now ( ) , this . paint ( t [ this . renderIndex ++ ] ) , t . leng
* base64 - arraybuffer
* https : //github.com/niklasvh/base64-arraybuffer
*
* Copyright ( c ) 2012 Niklas von Hertzen
* Licensed under the MIT license .
* /
n . decode64 = function ( t ) { var e , n , r , i , o , a , s , c , l = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" , u = t . length , h = "" ; for ( e = 0 ; e < u ; e += 4 ) n = l . indexOf ( t [ e ] ) , r = l . indexOf ( t [ e + 1 ] ) , i = l . indexOf ( t [ e + 2 ] ) , o = l . indexOf ( t [ e + 3 ] ) , a = n << 2 | r >> 4 , s = ( 15 & r ) << 4 | i >> 2 , c = ( 3 & i ) << 6 | o , h += 64 === i ? String . fromCharCode ( a ) : 64 === o || o === - 1 ? String . fromCharCode ( a , s ) : String . fromCharCode ( a , s , c ) ; return h } , n . getBounds = function ( t ) { if ( t . getBoundingClientRect ) { var e = t . getBoundingClientRect ( ) , n = null == t . offsetWidth ? e . width : t . offsetWidth ; return { top : e . top , bottom : e . bottom || e . top + e . height , right : e . left + n , left : e . left , width : n , height : null == t . offsetHeight ? e . height : t . offsetHeight } } return { } } , n . offsetBounds = function ( t ) { var e = t . offsetParent ? n . offsetBounds ( t . offsetParent ) : { top : 0 , left : 0 } ; return { top : t . offsetTop + e . top , bottom : t . offsetTop + t . offsetHeight + e . top , right : t . offsetLeft + e . left + t . offsetWidth , left : t . offsetLeft + e . left , width : t . offsetWidth , height : t . offsetHeight } } , n . parseBackgrounds = function ( t ) { var e , n , r , i , o , a , s , c = " \r\n\t" , l = [ ] , u = 0 , h = 0 , f = function ( ) { e && ( '"' === n . substr ( 0 , 1 ) && ( n = n . substr ( 1 , n . length - 2 ) ) , n && s . push ( n ) , "-" === e . substr ( 0 , 1 ) && ( i = e . indexOf ( "-" , 1 ) + 1 ) > 0 && ( r = e . substr ( 0 , i ) , e = e . substr ( i ) ) , l . push ( { prefix : r , method : e . toLowerCase ( ) , value : o , args : s , image : null } ) ) , s = [ ] , e = r = n = o = "" } ; return s = [ ] , e = r = n = o = "" , t . split ( "" ) . forEach ( function ( t ) { if ( ! ( 0 === u && c . indexOf ( t ) > - 1 ) ) { switch ( t ) { case '"' : a ? a === t && ( a = null ) : a = t ; break ; case "(" : if ( a ) break ; if ( 0 === u ) return u = 1 , void ( o += t ) ; h ++ ; break ; case ")" : if ( a ) break ; if ( 1 === u ) { if ( 0 === h ) return u = 0 , o += t , void f ( ) ; h -- } break ; case "," : if ( a ) break ; if ( 0 === u ) return void f ( ) ; if ( 1 === u && 0 === h && ! e . match ( /^url$/i ) ) return s . push ( n ) , n = "" , void ( o += t ) } o += t , 0 === u ? e += t : n += t } } ) , f ( ) , l } } , { } ] , 27 : [ function ( t , e , n ) { function r ( t ) { i . apply ( this , arguments ) , this . type = "linear" === t . args [ 0 ] ? i . TYPES . LINEAR : i . TYPES . RADIAL } var i = t ( "./gradientcontainer" ) ; r . prototype = Object . create ( i . prototype ) , e . exports = r } , { "./gradientcontainer" : 9 } ] , 28 : [ function ( t , e , n ) { function r ( t ) { return new Promise ( function ( e , n ) { var r = new XMLHttpRequest ; r . open ( "GET" , t ) , r . onload = function ( ) { 200 === r . status ? e ( r . responseText ) : n ( new Error ( r . statusText ) ) } , r . onerror = function ( ) { n ( new Error ( "Network Error" ) ) } , r . send ( ) } ) } e . exports = r } , { } ] } , { } , [ 4 ] ) ( 4 ) } ) , / *
# PNG . js
# Copyright ( c ) 2011 Devon Govett
# MIT LICENSE
#
#
* /
function ( t ) { var e ; e = function ( ) { function e ( t ) { var e , n , r , i , o , a , s , c , l , u , h , f , d , p , g ; for ( this . data = t , this . pos = 8 , this . palette = [ ] , this . imgData = [ ] , this . transparency = { } , this . animation = null , this . text = { } , a = null ; ; ) { switch ( e = this . readUInt32 ( ) , u = function ( ) { var t , e ; for ( e = [ ] , s = t = 0 ; t < 4 ; s = ++ t ) e . push ( String . fromCharCode ( this . data [ this . pos ++ ] ) ) ; return e } . call ( this ) . join ( "" ) ) { case "IHDR" : this . width = this . readUInt32 ( ) , this . height = this . readUInt32 ( ) , this . bits = this . data [ this . pos ++ ] , this . colorType = this . data [ this . pos ++ ] , this . compressionMethod = this . data [ this . pos ++ ] , this . filterMethod = this . data [ this . pos ++ ] , this . interlaceMethod = this . data [ this . pos ++ ] ; break ; case "acTL" : this . animation = { numFrames : this . readUInt32 ( ) , numPlays : this . readUInt32 ( ) || 1 / 0 , frames : [ ] } ; break ; case "PLTE" : this . palette = this . read ( e ) ; break ; case "fcTL" : a && this . animation . frames . push ( a ) , this . pos += 4 , a = { width : this . readUInt32 ( ) , height : this . readUInt32 ( ) , xOffset : this . readUInt32 ( ) , yOffset : this . readUInt32 ( ) } , o = this . readUInt16 ( ) , i = this . readUInt16 ( ) || 100 , a . delay = 1e3 * o / i , a . disposeOp = this . data [ this . pos ++ ] , a . blendOp = this . data [ this . pos ++ ] , a . data = [ ] ; break ; case "IDAT" : case "fdAT" : for ( "fdAT" === u && ( this . pos += 4 , e -= 4 ) , t = ( null != a ? a . data : void 0 ) || this . imgData , s = d = 0 ; 0 <= e ? d < e : d > e ; s = 0 <= e ? ++ d : -- d ) t . push ( this . data [ this . pos ++ ] ) ; break ; case "tRNS" : switch ( this . transparency = { } , this . colorType ) { case 3 : if ( r = this . palette . length / 3 , this . transparency . indexed = this . read ( e ) , this . transparency . indexed . length > r ) throw new Error ( "More transparent colors than palette size" ) ; if ( h = r - this . transparency . indexed . length , h > 0 ) for ( s = p = 0 ; 0 <= h ? p < h : p > h ; s = 0 <= h ? ++ p : -- p ) this . transparency . indexed . push ( 255 ) ; break ; case 0 : this . transparency . grayscale = this . read ( e ) [ 0 ] ; break ; case 2 : this . transparency . rgb = this . read ( e ) } break ; case "tEXt" : f = this . read ( e ) , c = f . indexOf ( 0 ) , l = String . fromCharCode . apply ( String , f . slice ( 0 , c ) ) , this . text [ l ] = String . fromCharCode . apply ( String , f . slice ( c + 1 ) ) ; break ; case "IEND" : return a && this . animation . frames . push ( a ) , this . colors = function ( ) { switch ( this . colorType ) { case 0 : case 3 : case 4 : return 1 ; case 2 : case 6 : return 3 } } . call ( this ) , this . hasAlphaChannel = 4 === ( g = this . colorType ) || 6 === g , n = this . colors + ( this . hasAlphaChannel ? 1 : 0 ) , this . pixelBitlength = this . bits * n , this . colorSpace = function ( ) { switch ( this . colors ) { case 1 : return "DeviceGray" ; case 3 : return "DeviceRGB" } } . call ( this ) , void ( this . imgData = new Uint8Array ( this . imgData ) ) ; default : this . pos += e } if ( this . pos += 4 , this . pos > this . data . length ) throw new Error ( "Incomplete or corrupt PNG file" ) } } var n , r , i , o , a , s , l , u ; e . load = function ( t , n , r ) { var i ; return "function" == typeof n && ( r = n ) , i = new XMLHttpRequest , i . open ( "GET" , t , ! 0 ) , i . responseType = "arraybuffer" , i . onload = function ( ) { var t , o ; return t = new Uint8Array ( i . response || i . mozResponseArrayBuffer ) , o = new e ( t ) , "function" == typeof ( null != n ? n . getContext : void 0 ) && o . render ( n ) , "function" == typeof r ? r ( o ) : void 0 } , i . send ( null ) } , o = 0 , i = 1 , a = 2 , r = 0 , n = 1 , e . prototype . read = function ( t ) { var e , n , r ; for ( r = [ ] , e = n = 0 ; 0 <= t ? n < t : n > t ; e = 0 <= t ? ++ n : -- n ) r . push ( this . data [ this . pos ++ ] ) ; return r } , e . prototype . readUInt32 = function ( ) { var t , e , n , r ; return t = this . data [ this . pos ++ ] << 24 , e = this . data [ this . pos ++ ] << 16 , n = this . data [ this . pos ++ ] << 8 , r = this . data [ this . pos ++ ] , t | e | n | r } , e . prototype . readUInt16 = function ( ) { var t , e ; return t = this . data [ this . pos ++ ] << 8 , e = this . data [ this . pos ++ ] , t | e } , e . prototype . decodePixels = function ( t ) { var e , n , r , i , o , a , s , l , u , h , f , d , p , g , m , w , y , v , b , x , k , _ , C ; if ( null == t && ( t = this . imgData ) , 0 === t . length ) return new Uint8Array ( 0 ) ; for ( t = new c ( t ) , t = t . getBytes ( ) , d = this . pixelBitlength / 8 , w = d * this . width , p = new Uint8Array ( w * this . height ) , a = t . length , m = 0 , g = 0 , n = 0 ; g < a ; ) { switch ( t [ g ++ ] ) { case 0 : for ( i = b = 0 ; b < w ; i = b += 1 ) p [ n ++ ] = t [ g ++ ] ; break ; case 1 : for ( i = x = 0 ; x < w ; i = x += 1 ) e = t [ g ++ ] , o = i < d ? 0 : p [ n - d ] , p [ n ++ ] = ( e + o ) % 256 ; break ; case 2 : for ( i = k = 0 ; k < w ; i = k += 1 ) e = t [ g ++ ] , r = ( i - i % d ) / d , y = m && p [ ( m - 1 ) * w + r * d + i % d ] , p [ n ++ ] = ( y + e ) % 256 ; break ; case 3 : for ( i = _ = 0 ; _ < w ; i = _ += 1 ) e = t [ g ++ ] , r = ( i - i % d ) / d , o = i < d ? 0 : p [ n - d ] , y = m && p [ ( m - 1 ) * w + r * d + i % d ] , p [ n ++ ] = ( e + Math . floor ( ( o + y ) / 2 ) ) % 256 ; break ; case 4 : for ( i = C = 0 ; C < w ; i = C += 1 ) e = t [ g ++ ] , r = ( i - i % d ) / d , o = i < d ? 0 : p [ n - d ] , 0 === m ? y = v = 0 : ( y = p [ ( m - 1 ) * w + r * d + i % d ] , v = r && p [ ( m - 1 ) * w + ( r - 1 ) * d + i % d ] ) , s = o + y - v , l = Math . abs ( s - o ) , h = Math . abs ( s - y ) , f = Math . abs ( s - v ) , u = l <= h && l <= f ? o : h <= f ? y : v , p [ n ++ ] = ( e + u ) % 256 ; break ; default : throw new
* Extracted from pdf . js
* https : //github.com/andreasgal/pdf.js
*
* Copyright ( c ) 2011 Mozilla Foundation
*
* Contributors : Andreas Gal < gal @ mozilla . com >
* Chris G Jones < cjones @ mozilla . com >
* Shaon Barman < shaon . barman @ gmail . com >
* Vivien Nicolas < 21 @ vingtetun . org >
* Justin D ' Arcangelo < justindarc @ gmail . com >
* Yury Delendik
*
*
* /
var s = function ( ) { function t ( ) { this . pos = 0 , this . bufferLength = 0 , this . eof = ! 1 , this . buffer = null } return t . prototype = { ensureBuffer : function ( t ) { var e = this . buffer , n = e ? e . byteLength : 0 ; if ( t < n ) return e ; for ( var r = 512 ; r < t ; ) r <<= 1 ; for ( var i = new Uint8Array ( r ) , o = 0 ; o < n ; ++ o ) i [ o ] = e [ o ] ; return this . buffer = i } , getByte : function ( ) { for ( var t = this . pos ; this . bufferLength <= t ; ) { if ( this . eof ) return null ; this . readBlock ( ) } return this . buffer [ this . pos ++ ] } , getBytes : function ( t ) { var e = this . pos ; if ( t ) { this . ensureBuffer ( e + t ) ; for ( var n = e + t ; ! this . eof && this . bufferLength < n ; ) this . readBlock ( ) ; var r = this . bufferLength ; n > r && ( n = r ) } else { for ( ; ! this . eof ; ) this . readBlock ( ) ; var n = this . bufferLength } return this . pos = n , this . buffer . subarray ( e , n ) } , lookChar : function ( ) { for ( var t = this . pos ; this . bufferLength <= t ; ) { if ( this . eof ) return null ; this . readBlock ( ) } return String . fromCharCode ( this . buffer [ this . pos ] ) } , getChar : function ( ) { for ( var t = this . pos ; this . bufferLength <= t ; ) { if ( this . eof ) return null ; this . readBlock ( ) } return String . fromCharCode ( this . buffer [ this . pos ++ ] ) } , makeSubStream : function ( t , e , n ) { for ( var r = t + e ; this . bufferLength <= r && ! this . eof ; ) this . readBlock ( ) ; return new Stream ( this . buffer , t , e , n ) } , skip : function ( t ) { t || ( t = 1 ) , this . pos += t } , reset : function ( ) { this . pos = 0 } } , t } ( ) , c = function ( ) { function t ( t ) { throw new Error ( t ) } function e ( e ) { var n = 0 , r = e [ n ++ ] , i = e [ n ++ ] ; r != - 1 && i != - 1 || t ( "Invalid header in flate stream" ) , 8 != ( 15 & r ) && t ( "Unknown compression method in flate stream" ) , ( ( r << 8 ) + i ) % 31 != 0 && t ( "Bad FCHECK in flate stream" ) , 32 & i && t ( "FDICT bit set in flate stream" ) , this . bytes = e , this . bytesPos = n , this . codeSize = 0 , this . codeBuf = 0 , s . call ( this ) } if ( "undefined" != typeof Uint32Array ) { var n = new Uint32Array ( [ 16 , 17 , 18 , 0 , 8 , 7 , 9 , 6 , 10 , 5 , 11 , 4 , 12 , 3 , 13 , 2 , 14 , 1 , 15 ] ) , r = new Uint32Array ( [ 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 65547 , 65549 , 65551 , 65553 , 131091 , 131095 , 131099 , 131103 , 196643 , 196651 , 196659 , 196667 , 262211 , 262227 , 262243 , 262259 , 327811 , 327843 , 327875 , 327907 , 258 , 258 , 258 ] ) , i = new Uint32Array ( [ 1 , 2 , 3 , 4 , 65541 , 65543 , 131081 , 131085 , 196625 , 196633 , 262177 , 262193 , 327745 , 327777 , 393345 , 393409 , 459009 , 459137 , 524801 , 525057 , 590849 , 591361 , 657409 , 658433 , 724993 , 727041 , 794625 , 798721 , 868353 , 876545 ] ) , o = [ new Uint32Array ( [ 459008 , 524368 , 524304 , 524568 , 459024 , 524400 , 524336 , 590016 , 459016 , 524384 , 524320 , 589984 , 524288 , 524416 , 524352 , 590048 , 459012 , 524376 , 524312 , 589968 , 459028 , 524408 , 524344 , 590032 , 459020 , 524392 , 524328 , 59e4 , 524296 , 524424 , 524360 , 590064 , 459010 , 524372 , 524308 , 524572 , 459026 , 524404 , 524340 , 590024 , 459018 , 524388 , 524324 , 589992 , 524292 , 524420 , 524356 , 590056 , 459014 , 524380 , 524316 , 589976 , 459030 , 524412 , 524348 , 590040 , 459022 , 524396 , 524332 , 590008 , 524300 , 524428 , 524364 , 590072 , 459009 , 524370 , 524306 , 524570 , 459025 , 524402 , 524338 , 590020 , 459017 , 524386 , 524322 , 589988 , 524290 , 524418 , 524354 , 590052 , 459013 , 524378 , 524314 , 589972 , 459029 , 524410 , 524346 , 590036 , 459021 , 524394 , 524330 , 590004 , 524298 , 524426 , 524362 , 590068 , 459011 , 524374 , 524310 , 524574 , 459027 , 524406 , 524342 , 590028 , 459019 , 524390 , 524326 , 589996 , 524294 , 524422 , 524358 , 590060 , 459015 , 524382 , 524318 , 589980 , 459031 , 524414 , 524350 , 590044 , 459023 , 524398 , 524334 , 590012 , 524302 , 524430 , 524366 , 590076 , 459008 , 524369 , 524305 , 524569 , 459024 , 524401 , 524337 , 590018 , 459016 , 524385 , 524321 , 589986 , 524289 , 524417 , 524353 , 590050 , 459012 , 524377 , 524313 , 589970 , 459028 , 524409 , 524345 , 590034 , 459020 , 524393 , 524329 , 590002 , 524297 , 524425 , 524361 , 590066 , 459010 , 524373 , 524309 , 524573 , 459026 , 524405 , 524341 , 590026 , 459018 , 524389 , 524325 , 589994 , 524293 , 524421 , 524357 , 590058 , 459014 , 524381 , 524317 , 589978 , 459030 , 524413 , 524349 , 590042 , 459022 , 524397 , 524333 , 590010 , 524301 , 524429 , 524365 , 590074 , 459009 , 524371 , 524307 , 524571 , 459025 , 524403 , 524339 , 590022 , 459017 , 524387 , 524323 , 589990 , 524291 , 524419 , 524355 , 590054 , 459013 , 524379 , 524315 , 589974 , 459029 , 524411 , 524347 , 590038 , 459021 , 524395 , 524331 , 590006 , 524299 , 524427 , 524363 , 590070 , 459011 , 524375 , 524311 , 524575 , 459027 , 524407 , 524343 , 590030 , 459019 , 524391 , 524327 , 589998 , 524295 , 524423 , 524359 , 590062 , 459015 , 524383 , 524319 , 589982 , 459031 , 524415 , 524351 , 590046 , 459023 , 524399 , 524335 , 590014 , 524303 , 524431 , 524367 , 590078 , 459008 , 524368 , 524304 , 524568 , 459024 , 524400 , 524336 , 590017 , 459016 , 524384 , 524320 , 589985 , 524288 , 524416 , 524352 , 590049 , 459012 , 524376 , 524312 , 589969 , 459028 , 524408 , 524344 , 590033 , 459020 , 524392 , 524328 , 590001 , 524296 , 524424 , 52436