UNPKG

universalviewer

Version:

The Universal Viewer is an open source project to enable cultural heritage institutions to present their digital artifacts in an IIIF-compliant and highly customisable user interface.

94 lines 492 kB
"undefined"===typeof PDFJS&&(("undefined"!==typeof window?window:this).PDFJS={});PDFJS.version="1.0.83";PDFJS.build="0045325"; (function(){function R(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos&&console.log("Info: "+a)}function L(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings&&console.log("Warning: "+a)}function u(a){if(1<arguments.length){var b=["Error:"];b.push.apply(b,arguments);console.log.apply(console,b);a=[].join.call(arguments," ")}else console.log("Error: "+a);console.log(Oh());rc.notify(xd.unknown);throw Error(a);}function Oh(){try{throw Error();}catch(a){return a.stack?a.stack.split("\n").slice(2).join("\n"): ""}}function $(a,b){a||u(b)}function yd(a,b){if(!a)return!1;var c=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(a);if(!c)return b;c=c[0].toLowerCase();switch(c){case "http":case "https":case "ftp":case "mailto":return!0;default:return!1}}function K(a,b,c){Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!1});return c}function La(a){var b=a.length;if(8192>b)return String.fromCharCode.apply(null,a);for(var c=[],d=0;d<b;d+=8192){var e=Math.min(d+8192,b),e=a.subarray(d,e);c.push(String.fromCharCode.apply(null, e))}return c.join("")}function Aa(a){for(var b=a.length,c=[],d=0;d<b;++d)c[d]=a.charCodeAt(d);return c}function Cb(a){for(var b=a.length,c=new Uint8Array(b),d=0;d<b;++d)c[d]=a.charCodeAt(d)&255;return c}function ma(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}function sc(a){for(var b=1,c=0;a>b;)b<<=1,c++;return c}function Fa(a,b){return a[b]<<8|a[b+1]}function ga(a,b){return(a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3])>>>0}function Ga(a){var b,c=a.length,d=[];if("\u00fe"===a[0]&&"\u00ff"=== a[1])for(b=2;b<c;b+=2)d.push(String.fromCharCode(a.charCodeAt(b)<<8|a.charCodeAt(b+1)));else for(b=0;b<c;++b){var e=Ph[a.charCodeAt(b)];d.push(e?String.fromCharCode(e):a.charAt(b))}return d.join("")}function zd(a){for(var b in a)return!1;return!0}function kb(a){return"boolean"==typeof a}function S(a){return"number"==typeof a&&(a|0)==a}function lb(a){return"number"==typeof a}function oa(a){return"string"==typeof a}function D(a){return a instanceof pa}function Y(a,b){return a instanceof xa&&(!b||a.cmd== b)}function G(a,b){if(!(a instanceof ya))return!1;if(!b)return!0;var c=a.get("Type");return D(c)&&c.name==b}function I(a){return a instanceof Array}function V(a){return"object"==typeof a&&null!==a&&void 0!==a&&"getBytes"in a}function sa(a){return a instanceof tc}function uc(a){if("object"!=typeof a)return!1;if(!G(a))if(V(a))a=a.dict;else return!1;return a.has("FunctionType")}function Be(a,b){this.name=a;this.comObj=b;this.callbackIndex=1;this.postMessageTransfers=!0;var c=this.callbacks={},d=this.actionHandler= {};d.console_log=[function(a){console.log.apply(console,a)}];d.console_error=[function(a){console.error.apply(console,a)}];d._unsupported_feature=[function(a){rc.notify(a)}];b.onmessage=function(a){var f=a.data;if(f.isReply)if(a=f.callbackId,f.callbackId in c){var g=c[a];delete c[a];g(f.data)}else u("Cannot resolve callback "+a);else if(f.action in d)if(a=d[f.action],f.callbackId){var h={},g=new Promise(function(a,b){h.resolve=a;h.reject=b});h.promise=g;g.then(function(a){b.postMessage({isReply:!0, callbackId:f.callbackId,data:a})});a[0].call(a[1],f.data,h)}else a[0].call(a[1],f.data);else u("Unkown action from worker: "+f.action)}}function Qh(a,b,c){var d=b.get("Matrix"),e=b.get("BBox"),f=b.get("XStep"),g=b.get("YStep"),h=b.get("PaintType");b=b.get("TilingType");return["TilingPattern",c,a,d,e,f,g,h,b]}function Rh(a){if(65520<=a&&65535>=a)return 0;switch(a){case 63721:case 63193:return 169;case 63720:case 63194:return 174;case 63722:case 63195:return 8482;default:return a}}function Ce(a,b,c){var d= Object.create(null),e,f;if(a.baseEncodingName){f=ta[a.baseEncodingName];for(e=0;e<f.length;e++)b=c.indexOf(f[e]),0<=b&&(d[e]=b)}else if(a.flags&Qa.Symbolic)for(e in b)d[e]=b[e];else{f=ta.StandardEncoding;for(e=0;e<f.length;e++)b=c.indexOf(f[e]),0<=b&&(d[e]=b)}if(a=a.differences)for(e in a)b=c.indexOf(a[e]),0<=b&&(d[e]=b);return d}var qa="undefined"===typeof window?this:window,Ad="undefined"==typeof window,Db=[0.001,0,0,0.001,0,0];qa.PDFJS||(qa.PDFJS={});qa.PDFJS.pdfBug=!1;PDFJS.VERBOSITY_LEVELS={errors:0, warnings:1,infos:5};var r=PDFJS.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36, setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64, endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89, paintSolidColorImageMask:90},xd=PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"},Bd=[],rc=PDFJS.UnsupportedManager={listen:function(a){Bd.push(a)},notify:function(a){L('Unsupported feature "'+a+'"');for(var b=0,c=Bd.length;b<c;b++)Bd[b](a)}};PDFJS.isValidUrl=yd;var Gc=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},Nb=function(a,b){this.name="PasswordException";this.message=a;this.code=b}; Nb.prototype=Error();Nb.constructor=Nb;var Hc=function(a,b){this.name="UnknownErrorException";this.message=a;this.details=b};Hc.prototype=Error();Hc.constructor=Hc;var vc=function(a){this.name="InvalidPDFException";this.message=a};vc.prototype=Error();vc.constructor=vc;var Yb=function(a){this.name="MissingPDFException";this.message=a};Yb.prototype=Error();Yb.constructor=Yb;var Ma=function(a){this.message=a};Ma.prototype=Error();Ma.prototype.name="NotImplementedException";Ma.constructor=Ma;var db= function(a,b){this.begin=a;this.end=b;this.message="Missing data ["+a+", "+b+")"};db.prototype=Error();db.prototype.name="MissingDataException";db.constructor=db;var Ob=function(a){this.message=a};Ob.prototype=Error();Ob.prototype.name="XRefParseException";Ob.constructor=Ob;Object.defineProperty(PDFJS,"isLittleEndian",{configurable:!0,get:function(){var a=PDFJS,b=new Uint8Array(2);b[0]=1;b=new Uint16Array(b.buffer);return K(a,"isLittleEndian",1===b[0])}});Object.defineProperty(PDFJS,"hasCanvasTypedArrays", {configurable:!0,get:function(){var a=PDFJS,b=document.createElement("canvas");b.width=b.height=1;b=b.getContext("2d").createImageData(1,1);return K(a,"hasCanvasTypedArrays","undefined"!==typeof b.data.buffer)}});var Cd=function(a,b){this.buffer=a;this.byteLength=a.length;for(var c=this.length=void 0===b?this.byteLength>>2:b;Ic<c;)Object.defineProperty(Cd.prototype,Ic,Sh(Ic)),Ic++},Sh=function(a){return{get:function(){var b=this.buffer,c=a<<2;return(b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24)>>>0},set:function(b){var c= this.buffer,d=a<<2;c[d]=b&255;c[d+1]=b>>8&255;c[d+2]=b>>16&255;c[d+3]=b>>>24&255}}};Cd.prototype=Object.create(null);var Ic=0,tb=[1,0,0,1,0,0],Th=PDFJS,T=function(){};T.makeCssRgb=function(a){return"rgb("+a[0]+","+a[1]+","+a[2]+")"};T.makeCssCmyk=function(a){a=U.singletons.cmyk.getRgb(a,0);return T.makeCssRgb(a)};T.transform=function(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]};T.applyTransform=function(a, b){return[a[0]*b[0]+a[1]*b[2]+b[4],a[0]*b[1]+a[1]*b[3]+b[5]]};T.applyInverseTransform=function(a,b){var c=b[0]*b[3]-b[1]*b[2];return[(a[0]*b[3]-a[1]*b[2]+b[2]*b[5]-b[4]*b[3])/c,(-a[0]*b[1]+a[1]*b[0]+b[4]*b[1]-b[5]*b[0])/c]};T.getAxialAlignedBoundingBox=function(a,b){var c=T.applyTransform(a,b),d=T.applyTransform(a.slice(2,4),b),e=T.applyTransform([a[0],a[3]],b),f=T.applyTransform([a[2],a[1]],b);return[Math.min(c[0],d[0],e[0],f[0]),Math.min(c[1],d[1],e[1],f[1]),Math.max(c[0],d[0],e[0],f[0]),Math.max(c[1], d[1],e[1],f[1])]};T.inverseTransform=function(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[4]*a[3])/b,(a[4]*a[1]-a[5]*a[0])/b]};T.apply3dTransform=function(a,b){return[a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2]]};T.singularValueDecompose2dScale=function(a){var b=[a[0],a[2],a[1],a[3]],c=a[0]*b[0]+a[1]*b[2],d=a[2]*b[1]+a[3]*b[3],e=(c+d)/2;a=Math.sqrt((c+d)*(c+d)-4*(c*d-(a[2]*b[0]+a[3]*b[2])*(a[0]*b[1]+a[1]*b[3])))/2;b= e-a||1;return[Math.sqrt(e+a||1),Math.sqrt(b)]};T.normalizeRect=function(a){var b=a.slice(0);a[0]>a[2]&&(b[0]=a[2],b[2]=a[0]);a[1]>a[3]&&(b[1]=a[3],b[3]=a[1]);return b};T.intersect=function(a,b){function c(a,b){return a-b}var d=[a[0],a[2],b[0],b[2]].sort(c),e=[a[1],a[3],b[1],b[3]].sort(c),f=[];a=T.normalizeRect(a);b=T.normalizeRect(b);if(d[0]===a[0]&&d[1]===b[0]||d[0]===b[0]&&d[1]===a[0])f[0]=d[1],f[2]=d[2];else return!1;if(e[0]===a[1]&&e[1]===b[1]||e[0]===b[1]&&e[1]===a[1])f[1]=e[1],f[3]=e[2];else return!1; return f};T.sign=function(a){return 0>a?-1:1};T.concatenateToArray=function(a,b){Array.prototype.push.apply(a,b)};T.prependToArray=function(a,b){Array.prototype.unshift.apply(a,b)};T.extendObj=function(a,b){for(var c in b)a[c]=b[c]};T.getInheritableProperty=function(a,b){for(;a&&!a.has(b);)a=a.get("Parent");return!a?null:a.get(b)};T.inherit=function(a,b,c){a.prototype=Object.create(b.prototype);a.prototype.constructor=a;for(var d in c)a.prototype[d]=c[d]};T.loadScript=function(a,b){var c=document.createElement("script"), d=!1;c.setAttribute("src",a);b&&(c.onload=function(){d||b();d=!0});document.getElementsByTagName("head")[0].appendChild(c)};var w=Th.Util=T,Uh=PDFJS,Dd=function(a,b,c,d,e,f){this.viewBox=a;this.scale=b;this.rotation=c;this.offsetX=d;this.offsetY=e;var g=(a[2]+a[0])/2,h=(a[3]+a[1])/2,j,l,k;c%=360;switch(0>c?c+360:c){case 180:c=-1;l=j=0;k=1;break;case 90:c=0;l=j=1;k=0;break;case 270:c=0;l=j=-1;k=0;break;default:c=1,l=j=0,k=-1}f&&(l=-l,k=-k);0===c?(d=Math.abs(h-a[1])*b+d,e=Math.abs(g-a[0])*b+e,f=Math.abs(a[3]- a[1])*b,a=Math.abs(a[2]-a[0])*b):(d=Math.abs(g-a[0])*b+d,e=Math.abs(h-a[1])*b+e,f=Math.abs(a[2]-a[0])*b,a=Math.abs(a[3]-a[1])*b);this.transform=[c*b,j*b,l*b,k*b,d-c*b*g-l*b*h,e-j*b*g-k*b*h];this.width=f;this.height=a;this.fontScale=b};Dd.prototype={clone:function(a){a=a||{};var b="scale"in a?a.scale:this.scale,c="rotation"in a?a.rotation:this.rotation;return new Dd(this.viewBox.slice(),b,c,this.offsetX,this.offsetY,a.dontFlip)},convertToViewportPoint:function(a,b){return w.applyTransform([a,b],this.transform)}, convertToViewportRectangle:function(a){var b=w.applyTransform([a[0],a[1]],this.transform);a=w.applyTransform([a[2],a[3]],this.transform);return[b[0],b[1],a[0],a[1]]},convertToPdfPoint:function(a,b){return w.applyInverseTransform([a,b],this.transform)}};Uh.PageViewport=Dd;var Ph=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364],da=PDFJS.LegacyPromise=function(){var a,b,c=new Promise(function(c,e){a=c;b=e});c.resolve=a;c.reject=b;return c};var Na=function(a){this._status=De;this._handlers=[];a.call(this,this._resolve.bind(this),this._reject.bind(this))};if(qa.Promise)"function"!==typeof qa.Promise.all&&(qa.Promise.all=function(a){var b= 0,c=[],d,e,f=new qa.Promise(function(a,b){d=a;e=b});a.forEach(function(a,f){b++;a.then(function(a){c[f]=a;b--;0===b&&d(c)},e)});0===b&&d(c);return f}),"function"!==typeof qa.Promise.resolve&&(qa.Promise.resolve=function(a){return new qa.Promise(function(b){b(a)})});else{var De=0,ub=2,Ed={handlers:[],running:!1,unhandledRejections:[],pendingRejectionCheck:!1,scheduleHandlers:function(a){a._status!=De&&(this.handlers=this.handlers.concat(a._handlers),a._handlers=[],this.running||(this.running=!0,setTimeout(this.runHandlers.bind(this), 0)))},runHandlers:function(){for(var a=Date.now()+1;0<this.handlers.length;){var b=this.handlers.shift(),c=b.thisPromise._status,d=b.thisPromise._value;try{1===c?"function"==typeof b.onResolve&&(d=b.onResolve(d)):"function"===typeof b.onReject&&(d=b.onReject(d),c=1,b.thisPromise._unhandledRejection&&this.removeUnhandeledRejection(b.thisPromise))}catch(e){c=ub,d=e}b.nextPromise._updateStatus(c,d);if(Date.now()>=a)break}0<this.handlers.length?setTimeout(this.runHandlers.bind(this),0):this.running=!1}, addUnhandledRejection:function(a){this.unhandledRejections.push({promise:a,time:Date.now()});this.scheduleRejectionCheck()},removeUnhandeledRejection:function(a){a._unhandledRejection=!1;for(var b=0;b<this.unhandledRejections.length;b++)this.unhandledRejections[b].promise===a&&(this.unhandledRejections.splice(b),b--)},scheduleRejectionCheck:function(){this.pendingRejectionCheck||(this.pendingRejectionCheck=!0,setTimeout(function(){this.pendingRejectionCheck=!1;for(var a=Date.now(),b=0;b<this.unhandledRejections.length;b++)if(500< a-this.unhandledRejections[b].time){var c=this.unhandledRejections[b].promise._value,d="Unhandled rejection: "+c;c.stack&&(d+="\n"+c.stack);L(d);this.unhandledRejections.splice(b);b--}this.unhandledRejections.length&&this.scheduleRejectionCheck()}.bind(this),500))}};Na.all=function(a){function b(a){e._status!==ub&&(g=[],d(a))}var c,d,e=new Na(function(a,b){c=a;d=b}),f=a.length,g=[];if(0===f)return c(g),e;for(var h=0,j=a.length;h<j;++h){var l=a[h],k=function(a){return function(b){e._status!==ub&&(g[a]= b,f--,0===f&&c(g))}}(h);Na.isPromise(l)?l.then(k,b):k(l)}return e};Na.isPromise=function(a){return a&&"function"===typeof a.then};Na.resolve=function(a){return new Na(function(b){b(a)})};Na.prototype={_status:null,_value:null,_handlers:null,_unhandledRejection:null,_updateStatus:function(a,b){1===this._status||this._status===ub||(1==a&&Na.isPromise(b)?b.then(this._updateStatus.bind(this,1),this._updateStatus.bind(this,ub)):(this._status=a,this._value=b,a===ub&&0===this._handlers.length&&(this._unhandledRejection= !0,Ed.addUnhandledRejection(this)),Ed.scheduleHandlers(this)))},_resolve:function(a){this._updateStatus(1,a)},_reject:function(a){this._updateStatus(ub,a)},then:function(a,b){var c=new Na(function(a,b){this.reject=this.resolve=b});this._handlers.push({thisPromise:this,onResolve:a,onReject:b,nextPromise:c});Ed.scheduleHandlers(this);return c}};qa.Promise=Na}PDFJS.createBlob=function(a,b){if("undefined"!==typeof Blob)return new Blob([a],{type:b});var c=new MozBlobBuilder;c.append(a);return c.getBlob(b)}; PDFJS.createObjectURL=function(a,b){if(!PDFJS.disableCreateObjectURL&&"undefined"!==typeof URL&&URL.createObjectURL){var c=PDFJS.createBlob(a,b);return URL.createObjectURL(c)}for(var c="data:"+b+";base64,",d=0,e=a.length;d<e;d+=3)var f=a[d]&255,g=a[d+1]&255,h=a[d+2]&255,c=c+("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="[f>>2]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="[(f&3)<<4|g>>4]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="[d+ 1<e?(g&15)<<2|h>>6:64]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="[d+2<e?h&63:64]);return c};Be.prototype={on:function(a,b,c){var d=this.actionHandler;d[a]&&u('There is already an actionName called "'+a+'"');d[a]=[b,c]},send:function(a,b,c,d){a={action:a,data:b};c&&(b=this.callbackIndex++,this.callbacks[b]=c,a.callbackId=b);d&&this.postMessageTransfers?this.comObj.postMessage(a,d):this.comObj.postMessage(a)}};var U,na=function(){u("should not call ColorSpace constructor")}; na.prototype={getRgb:function(a,b){var c=new Uint8Array(3);this.getRgbItem(a,b,c,0);return c},getRgbItem:function(){u("Should not call ColorSpace.getRgbItem")},getRgbBuffer:function(){u("Should not call ColorSpace.getRgbBuffer")},getOutputLength:function(){u("Should not call ColorSpace.getOutputLength")},isPassthrough:function(){return!1},fillRgb:function(a,b,c,d,e,f,g,h,j){var l=b*c,k=null,m=1<<g,n=c!=e||b!=d,p;if(this.isPassthrough(g))k=h;else if(1===this.numComps&&l>m&&"DeviceGray"!==this.name&& "DeviceRGB"!==this.name){var q=8>=g?new Uint8Array(m):new Uint16Array(m),s;for(p=0;p<m;p++)q[p]=p;var v=new Uint8Array(3*m);this.getRgbBuffer(q,0,m,v,0,g,0);if(n){k=new Uint8Array(3*l);for(p=q=0;p<l;++p)s=3*h[p],k[q++]=v[s],k[q++]=v[s+1],k[q++]=v[s+2]}else for(p=m=0;p<l;++p)s=3*h[p],a[m++]=v[s],a[m++]=v[s+1],a[m++]=v[s+2],m+=j}else n?(k=new Uint8Array(3*l),this.getRgbBuffer(h,0,l,k,0,g,0)):this.getRgbBuffer(h,0,d*f,a,0,g,j);if(k)if(n)Zb.resize(k,g,3,b,c,d,e,a,j);else{p=m=q=0;for(b=d*f;p<b;p++)a[m++]= k[q++],a[m++]=k[q++],a[m++]=k[q++],m+=j}},usesZeroToOneRange:!0};na.parse=function(a,b,c){a=na.parseToIR(a,b,c);return a instanceof Fd?a:na.fromIR(a)};na.fromIR=function(a){var b=I(a)?a[0]:a,c;switch(b){case "DeviceGrayCS":return this.singletons.gray;case "DeviceRgbCS":return this.singletons.rgb;case "DeviceCmykCS":return this.singletons.cmyk;case "CalGrayCS":return b=a[1].WhitePoint,c=a[1].BlackPoint,new Ee(b,c,a[1].Gamma);case "PatternCS":return(a=a[1])&&(a=na.fromIR(a)),new Fe(a);case "IndexedCS":return b= a[2],c=a[3],new Ge(na.fromIR(a[1]),b,c);case "AlternateCS":return b=a[3],new Fd(a[1],na.fromIR(a[2]),eb.fromIR(b));case "LabCS":return b=a[1].WhitePoint,c=a[1].BlackPoint,new He(b,c,a[1].Range);default:u("Unkown name "+b)}return null};na.parseToIR=function(a,b,c){if(D(a)){var d=c.get("ColorSpace");G(d)&&(d=d.get(a.name))&&(a=d)}a=b.fetchIfRef(a);if(D(a))switch(this.mode=d=a.name,d){case "DeviceGray":case "G":return"DeviceGrayCS";case "DeviceRGB":case "RGB":return"DeviceRgbCS";case "DeviceCMYK":case "CMYK":return"DeviceCmykCS"; case "Pattern":return["PatternCS",null];default:u("unrecognized colorspace "+d)}else if(I(a))switch(this.mode=d=a[0].name,d){case "DeviceGray":case "G":return"DeviceGrayCS";case "DeviceRGB":case "RGB":return"DeviceRgbCS";case "DeviceCMYK":case "CMYK":return"DeviceCmykCS";case "CalGray":return b=a[1].getAll(),["CalGrayCS",b];case "CalRGB":return"DeviceRgbCS";case "ICCBased":d=b.fetchIfRef(a[1]).dict.get("N");if(1==d)return"DeviceGrayCS";if(3==d)return"DeviceRgbCS";if(4==d)return"DeviceCmykCS";break; case "Pattern":return(a=a[1])&&(a=na.parseToIR(a,b,c)),["PatternCS",a];case "Indexed":case "I":return c=na.parseToIR(a[1],b,c),d=a[2]+1,b=b.fetchIfRef(a[3]),V(b)&&(b=b.getBytes()),["IndexedCS",c,d,b];case "Separation":case "DeviceN":var e=a[1],d=1;D(e)?d=1:I(e)&&(d=e.length);c=na.parseToIR(a[2],b,c);b=eb.getIR(b,b.fetchIfRef(a[3]));return["AlternateCS",d,c,b];case "Lab":return b=a[1].getAll(),["LabCS",b];default:u('unimplemented color space object "'+d+'"')}else u('unrecognized color space object: "'+ a+'"');return null};na.isDefaultDecode=function(a,b){if(!a)return!0;if(2*b!==a.length)return L("The decode map is not the correct length"),!0;for(var c=0,d=a.length;c<d;c+=2)if(0!==a[c]||1!=a[c+1])return!1;return!0};na.singletons={get gray(){return K(this,"gray",new Ie)},get rgb(){return K(this,"rgb",new Je)},get cmyk(){return K(this,"cmyk",new Ke)}};U=na;var Fd,Le=function(a,b,c){this.name="Alternate";this.numComps=a;this.defaultColor=new Float32Array(a);for(var d=0;d<a;++d)this.defaultColor[d]= 1;this.base=b;this.tintFn=c};Le.prototype={getRgb:U.prototype.getRgb,getRgbItem:function(a,b,c,d){a="subarray"in a?a.subarray(b,b+this.numComps):Array.prototype.slice.call(a,b,b+this.numComps);a=this.tintFn(a);this.base.getRgbItem(a,0,c,d)},getRgbBuffer:function(a,b,c,d,e,f,g){var h=this.tintFn,j=this.base;f=1/((1<<f)-1);var l=j.numComps,k=j.usesZeroToOneRange,m=(j.isPassthrough(8)||!k)&&0===g,n=m?e:0,p=m?d:new Uint8Array(l*c),q=this.numComps,s=new Float32Array(q),v,t;for(v=0;v<c;v++){for(t=0;t<q;t++)s[t]= a[b++]*f;var u=h(s);if(k)for(t=0;t<l;t++)p[n++]=255*u[t];else j.getRgbItem(u,0,p,n),n+=l}m||j.getRgbBuffer(p,0,c,d,e,8,g)},getOutputLength:function(a,b){return this.base.getOutputLength(a*this.base.numComps/this.numComps,b)},isPassthrough:U.prototype.isPassthrough,fillRgb:U.prototype.fillRgb,isDefaultDecode:function(a){return U.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0};Fd=Le;var Fe,Me=function(a){this.name="Pattern";this.base=a};Me.prototype={};Fe=Me;var Ge,Ne=function(a,b,c){this.name= "Indexed";this.numComps=1;this.defaultColor=new Uint8Array([0]);this.base=a;this.highVal=b;a=a.numComps*b;var d;if(V(c))d=new Uint8Array(a),c=c.getBytes(a),d.set(c);else if(oa(c)){d=new Uint8Array(a);for(b=0;b<a;++b)d[b]=c.charCodeAt(b)}else c instanceof Uint8Array||c instanceof Array?d=c:u("Unrecognized lookup table: "+c);this.lookup=d};Ne.prototype={getRgb:U.prototype.getRgb,getRgbItem:function(a,b,c,d){this.base.getRgbItem(this.lookup,a[b]*this.base.numComps,c,d)},getRgbBuffer:function(a,b,c,d, e,f,g){f=this.base;for(var h=f.numComps,j=f.getOutputLength(h,g),l=this.lookup,k=0;k<c;++k){var m=a[b++]*h;f.getRgbBuffer(l,m,1,d,e,8,g);e+=j}},getOutputLength:function(a,b){return this.base.getOutputLength(a*this.base.numComps,b)},isPassthrough:U.prototype.isPassthrough,fillRgb:U.prototype.fillRgb,isDefaultDecode:function(){return!0},usesZeroToOneRange:!0};Ge=Ne;var Ie,Oe=function(){this.name="DeviceGray";this.numComps=1;this.defaultColor=new Float32Array([0])};Oe.prototype={getRgb:U.prototype.getRgb, getRgbItem:function(a,b,c,d){a=255*a[b]|0;c[d]=c[d+1]=c[d+2]=0>a?0:255<a?255:a},getRgbBuffer:function(a,b,c,d,e,f,g){f=255/((1<<f)-1);for(var h=0;h<c;++h){var j=f*a[b++]|0;d[e++]=j;d[e++]=j;d[e++]=j;e+=g}},getOutputLength:function(a,b){return a*(3+b)},isPassthrough:U.prototype.isPassthrough,fillRgb:U.prototype.fillRgb,isDefaultDecode:function(a){return U.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0};Ie=Oe;var Je,Pe=function(){this.name="DeviceRGB";this.numComps=3;this.defaultColor=new Float32Array([0, 0,0])};Pe.prototype={getRgb:U.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=255*a[b]|0,f=255*a[b+1]|0;a=255*a[b+2]|0;c[d]=0>e?0:255<e?255:e;c[d+1]=0>f?0:255<f?255:f;c[d+2]=0>a?0:255<a?255:a},getRgbBuffer:function(a,b,c,d,e,f,g){if(8===f&&0===g)d.set(a.subarray(b,b+3*c),e);else{f=255/((1<<f)-1);for(var h=0;h<c;++h)d[e++]=f*a[b++]|0,d[e++]=f*a[b++]|0,d[e++]=f*a[b++]|0,e+=g}},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:function(a){return 8==a},fillRgb:U.prototype.fillRgb,isDefaultDecode:function(a){return U.isDefaultDecode(a, this.numComps)},usesZeroToOneRange:!0};Je=Pe;var Ke,Qe=function(a,b,c,d,e){var f=a[b+0]*c,g=a[b+1]*c,h=a[b+2]*c;c*=a[b+3];a=f*(-4.387332384609988*f+54.48615194189176*g+18.82290502165302*h+212.25662451639585*c+-285.2331026137004)+g*(1.7149763477362134*g-5.6096736904047315*h+-17.873870861415444*c-5.497006427196366)+h*(-2.5217340131683033*h-21.248923337353073*c+17.5119270841813)+c*(-21.86122147463605*c-189.48180835922747)+255|0;b=f*(8.841041422036149*f+60.118027045597366*g+6.871425592049007*h+31.159100130055922* c+-79.2970844816548)+g*(-15.310361306967817*g+17.575251261109482*h+131.35250912493976*c-190.9453302588951)+h*(4.444339102852739*h+9.8632861493405*c-24.86741582555878)+c*(-20.737325471181034*c-187.80453709719578)+255|0;f=f*(0.8842522430003296*f+8.078677503112928*g+30.89978309703729*h-0.23883238689178934*c+-14.183576799673286)+g*(10.49593273432072*g+63.02378494754052*h+50.606957656360734*c-112.23884253719248)+h*(0.03296041114873217*h+115.60384449646641*c+-193.58209356861505)+c*(-22.33816807309886*c- 180.12613974708367)+255|0;d[e]=255<a?255:0>a?0:a;d[e+1]=255<b?255:0>b?0:b;d[e+2]=255<f?255:0>f?0:f},Re=function(){this.name="DeviceCMYK";this.numComps=4;this.defaultColor=new Float32Array([0,0,0,1])};Re.prototype={getRgb:U.prototype.getRgb,getRgbItem:function(a,b,c,d){Qe(a,b,1,c,d)},getRgbBuffer:function(a,b,c,d,e,f,g){f=1/((1<<f)-1);for(var h=0;h<c;h++)Qe(a,b,f,d,e),b+=4,e+=3+g},getOutputLength:function(a,b){return a/4*(3+b)|0},isPassthrough:U.prototype.isPassthrough,fillRgb:U.prototype.fillRgb, isDefaultDecode:function(a){return U.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0};Ke=Re;var Ee,Se=function(a,b,c){this.name="CalGray";this.numComps=1;this.defaultColor=new Float32Array([0]);a||u("WhitePoint missing - required for color space CalGray");b=b||[0,0,0];this.XW=a[0];this.YW=a[1];this.ZW=a[2];this.XB=b[0];this.YB=b[1];this.ZB=b[2];this.G=c||1;(0>this.XW||0>this.ZW||1!==this.YW)&&u("Invalid WhitePoint components for "+this.name+", no fallback available");if(0>this.XB||0>this.YB|| 0>this.ZB)R("Invalid BlackPoint for "+this.name+", falling back to default"),this.XB=this.YB=this.ZB=0;(0!==this.XB||0!==this.YB||0!==this.ZB)&&L(this.name+", BlackPoint: XB: "+this.XB+", YB: "+this.YB+", ZB: "+this.ZB+", only default values are supported.");1>this.G&&(R("Invalid Gamma: "+this.G+" for "+this.name+", falling back to default"),this.G=1)},Te=function(a,b,c,d,e,f){b=Math.pow(b[c]*f,a.G);a=Math.max(116*Math.pow(a.YW*b,1/3)-16,0);d[e]=255*a/100;d[e+1]=255*a/100;d[e+2]=255*a/100};Se.prototype= {getRgb:U.prototype.getRgb,getRgbItem:function(a,b,c,d){Te(this,a,b,c,d,1)},getRgbBuffer:function(a,b,c,d,e,f,g){f=1/((1<<f)-1);for(var h=0;h<c;++h)Te(this,a,b,d,e,f),b+=1,e+=3+g},getOutputLength:function(a,b){return a*(3+b)},isPassthrough:U.prototype.isPassthrough,fillRgb:U.prototype.fillRgb,isDefaultDecode:function(a){return U.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0};Ee=Se;var He,Ue=function(a,b,c){this.name="Lab";this.numComps=3;this.defaultColor=new Float32Array([0,0,0]);a||u("WhitePoint missing - required for color space Lab"); b=b||[0,0,0];c=c||[-100,100,-100,100];this.XW=a[0];this.YW=a[1];this.ZW=a[2];this.amin=c[0];this.amax=c[1];this.bmin=c[2];this.bmax=c[3];this.XB=b[0];this.YB=b[1];this.ZB=b[2];(0>this.XW||0>this.ZW||1!==this.YW)&&u("Invalid WhitePoint components, no fallback available");if(0>this.XB||0>this.YB||0>this.ZB)R("Invalid BlackPoint, falling back to default"),this.XB=this.YB=this.ZB=0;if(this.amin>this.amax||this.bmin>this.bmax)R("Invalid Range, falling back to defaults"),this.amin=-100,this.amax=100,this.bmin= -100,this.bmax=100},Gd=function(a){return a>=6/29?a*a*a:108/841*(a-4/29)},Ve=function(a,b,c,d,e,f){var g=b[c],h=b[c+1];b=b[c+2];!1!==d&&(g=0+100*g/d,h=a.amin+h*(a.amax-a.amin)/d,b=a.bmin+b*(a.bmax-a.bmin)/d);h=h>a.amax?a.amax:h<a.amin?a.amin:h;b=b>a.bmax?a.bmax:b<a.bmin?a.bmin:b;d=(g+16)/116;g=d-b/200;h=a.XW*Gd(d+h/500);d=a.YW*Gd(d);g=a.ZW*Gd(g);1>a.ZW?(a=3.1339*h+-1.617*d+-0.4906*g,b=-0.9785*h+1.916*d+0.0333*g,h=0.072*h+-0.229*d+1.4057*g):(a=3.2406*h+-1.5372*d+-0.4986*g,b=-0.9689*h+1.8758*d+0.0415* g,h=0.0557*h+-0.204*d+1.057*g);e[f]=0>=a?0:1<=a?255:255*Math.sqrt(a)|0;e[f+1]=0>=b?0:1<=b?255:255*Math.sqrt(b)|0;e[f+2]=0>=h?0:1<=h?255:255*Math.sqrt(h)|0};Ue.prototype={getRgb:U.prototype.getRgb,getRgbItem:function(a,b,c,d){Ve(this,a,b,!1,c,d)},getRgbBuffer:function(a,b,c,d,e,f,g){f=(1<<f)-1;for(var h=0;h<c;h++)Ve(this,a,b,f,d,e),b+=3,e+=3+g},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:U.prototype.isPassthrough,isDefaultDecode:function(){return!0},usesZeroToOneRange:!1};He=Ue; var eb;eb={getSampleArray:function(a,b,c,d){var e,f,g=1;e=0;for(f=a.length;e<f;e++)g*=a[e];g*=b;a=[];f=b=0;var h=1/(Math.pow(2,c)-1);d=d.getBytes((g*c+7)/8);var j=0;for(e=0;e<g;e++){for(;b<c;)f<<=8,f|=d[j++],b+=8;b-=c;a.push((f>>b)*h);f&=(1<<b)-1}return a},getIR:function(a,b){var c=b.dict;c||(c=b);var d=[this.constructSampled,null,this.constructInterpolated,this.constructStiched,this.constructPostScript],e=c.get("FunctionType");(d=d[e])||u("Unknown type of function");return d.call(this,b,c,a)},fromIR:function(a){switch(a[0]){case 0:return this.constructSampledFromIR(a); case 2:return this.constructInterpolatedFromIR(a);case 3:return this.constructStichedFromIR(a);default:return this.constructPostScriptFromIR(a)}},parse:function(a,b){var c=this.getIR(a,b);return this.fromIR(c)},constructSampled:function(a,b){function c(a){for(var b=a.length,c=[],d=0,e=0;e<b;e+=2)c[d]=[a[e],a[e+1]],++d;return c}var d=b.get("Domain"),e=b.get("Range");(!d||!e)&&u("No domain or range");var f=d.length/2,g=e.length/2,d=c(d),e=c(e),h=b.get("Size"),j=b.get("BitsPerSample"),l=b.get("Order")|| 1;1!==l&&R("No support for cubic spline interpolation: "+l);l=b.get("Encode");if(!l)for(var l=[],k=0;k<f;++k)l.push(0),l.push(h[k]-1);var l=c(l),k=(k=b.get("Decode"))?c(k):e,m=this.getSampleArray(h,g,j,a);return[0,f,d,l,k,m,h,g,Math.pow(2,j)-1,e]},constructSampledFromIR:function(a){return function(b){var c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],j=a[7],l=a[9];c!=b.length&&u("Incorrect number of arguments: "+c+" != "+b.length);var k=1<<c,m=new Float64Array(k),n=new Uint32Array(k),p,q;for(q=0;q<k;q++)m[q]= 1;var s=j,v=1;for(p=0;p<c;++p){q=d[p][0];var t=d[p][1],r=Math.min(Math.max(b[p],q),t),aa=e[p][0]+(r-q)*((e[p][1]-e[p][0])/(t-q)),t=h[p],aa=Math.min(Math.max(aa,0),t-1);q=aa<t-1?Math.floor(aa):aa-1;var r=q+1-aa,aa=aa-q,N=q*s,ea=N+s;for(q=0;q<k;q++)q&v?(m[q]*=aa,n[q]+=ea):(m[q]*=r,n[q]+=N);s*=t;v<<=1}b=new Float64Array(j);for(q=0;q<j;++q){for(p=c=0;p<k;p++)c+=g[n[p]+q]*m[p];c=f[q][0]+(c-0)*((f[q][1]-f[q][0])/1);b[q]=Math.min(Math.max(c,l[q][0]),l[q][1])}return b}},constructInterpolated:function(a,b){var c= b.get("C0")||[0],d=b.get("C1")||[1],e=b.get("N");(!I(c)||!I(d))&&u("Illegal dictionary for interpolated function");for(var f=c.length,g=[],h=0;h<f;++h)g.push(d[h]-c[h]);return[2,c,g,e]},constructInterpolatedFromIR:function(a){var b=a[1],c=a[2],d=a[3],e=c.length;return function(a){a=1==d?a[0]:Math.pow(a[0],d);for(var g=[],h=0;h<e;++h)g.push(b[h]+a*c[h]);return g}},constructStiched:function(a,b,c){(a=b.get("Domain"))||u("No domain");1!=a.length/2&&u("Bad domain for stiched function");for(var d=b.get("Functions"), e=[],f=0,g=d.length;f<g;++f)e.push(eb.getIR(c,c.fetchIfRef(d[f])));c=b.get("Bounds");b=b.get("Encode");return[3,a,c,b,e]},constructStichedFromIR:function(a){var b=a[1],c=a[2],d=a[3];a=a[4];for(var e=[],f=0,g=a.length;f<g;f++)e.push(eb.fromIR(a[f]));return function(a){a=a[0];var f=b[0],g=b[1];a>g?a=g:a<f&&(a=f);f=0;for(g=c.length;f<g&&!(a<c[f]);++f);g=b[0];0<f&&(g=c[f-1]);var k=b[1];f<c.length&&(k=c[f]);var m=d[2*f];return e[f]([m+(a-g)*(d[2*f+1]-m)/(k-g)])}},constructPostScript:function(a,b){var c= b.get("Domain"),d=b.get("Range");c||u("No domain.");d||u("No range.");var e=new We(a),e=(new Xe(e)).parse();return[4,c,d,e]},constructPostScriptFromIR:function(a){var b=a[1],c=a[2],d=c.length/2,e=new Ye(a[3]),f=new Ze;return function(a){for(var h=[],j=0,l=b.length/2;j<l;++j)h.push(a[j]);a=h.join("_");if(f.has(a))return f.get(a);h=e.execute(h);l=[];for(j=d-1;0<=j;--j){var k=h.pop(),m=2*j;k<c[m]?k=c[m]:k>c[m+1]&&(k=c[m+1]);l[j]=k}f.set(a,l);return l}}};var Ze,$e=function(){this.cache={};this.total= 0};$e.prototype={has:function(a){return a in this.cache},get:function(a){return this.cache[a]},set:function(a,b){1024>this.total&&(this.cache[a]=b,this.total++)}};Ze=$e;var af=function(a){this.stack=a||[]};af.prototype={push:function(a){100<=this.stack.length&&u("PostScript function stack overflow.");this.stack.push(a)},pop:function(){0>=this.stack.length&&u("PostScript function stack underflow.");return this.stack.pop()},copy:function(a){100<=this.stack.length+a&&u("PostScript function stack overflow."); var b=this.stack,c=b.length-a;for(a-=1;0<=a;a--,c++)b.push(b[c])},index:function(a){this.push(this.stack[this.stack.length-a-1])},roll:function(a,b){var c=this.stack,d=c.length-a,e=c.length-1,f=d+(b-Math.floor(b/a)*a),g,h,j;g=d;for(h=e;g<h;g++,h--)j=c[g],c[g]=c[h],c[h]=j;g=d;for(h=f-1;g<h;g++,h--)j=c[g],c[g]=c[h],c[h]=j;g=f;for(h=e;g<h;g++,h--)j=c[g],c[g]=c[h],c[h]=j}};var Ye,bf=function(a){this.operators=a};bf.prototype={execute:function(a){a=new af(a);for(var b=0,c=this.operators,d=c.length,e,f;b< d;)if(e=c[b++],"number"==typeof e)a.push(e);else switch(e){case "jz":f=a.pop();(e=a.pop())||(b=f);break;case "j":b=e=a.pop();break;case "abs":e=a.pop();a.push(Math.abs(e));break;case "add":f=a.pop();e=a.pop();a.push(e+f);break;case "and":f=a.pop();e=a.pop();kb(e)&&kb(f)?a.push(e&&f):a.push(e&f);break;case "atan":e=a.pop();a.push(Math.atan(e));break;case "bitshift":f=a.pop();e=a.pop();0<e?a.push(e<<f):a.push(e>>f);break;case "ceiling":e=a.pop();a.push(Math.ceil(e));break;case "copy":e=a.pop();a.copy(e); break;case "cos":e=a.pop();a.push(Math.cos(e));break;case "cvi":e=a.pop()|0;a.push(e);break;case "cvr":break;case "div":f=a.pop();e=a.pop();a.push(e/f);break;case "dup":a.copy(1);break;case "eq":f=a.pop();e=a.pop();a.push(e==f);break;case "exch":a.roll(2,1);break;case "exp":f=a.pop();e=a.pop();a.push(Math.pow(e,f));break;case "false":a.push(!1);break;case "floor":e=a.pop();a.push(Math.floor(e));break;case "ge":f=a.pop();e=a.pop();a.push(e>=f);break;case "gt":f=a.pop();e=a.pop();a.push(e>f);break; case "idiv":f=a.pop();e=a.pop();a.push(e/f|0);break;case "index":e=a.pop();a.index(e);break;case "le":f=a.pop();e=a.pop();a.push(e<=f);break;case "ln":e=a.pop();a.push(Math.log(e));break;case "log":e=a.pop();a.push(Math.log(e)/Math.LN10);break;case "lt":f=a.pop();e=a.pop();a.push(e<f);break;case "mod":f=a.pop();e=a.pop();a.push(e%f);break;case "mul":f=a.pop();e=a.pop();a.push(e*f);break;case "ne":f=a.pop();e=a.pop();a.push(e!=f);break;case "neg":a.pop();a.push(-f);break;case "not":e=a.pop();kb(e)&& kb(f)?a.push(e&&f):a.push(e&f);break;case "or":f=a.pop();e=a.pop();kb(e)&&kb(f)?a.push(e||f):a.push(e|f);break;case "pop":a.pop();break;case "roll":f=a.pop();e=a.pop();a.roll(e,f);break;case "round":e=a.pop();a.push(Math.round(e));break;case "sin":e=a.pop();a.push(Math.sin(e));break;case "sqrt":e=a.pop();a.push(Math.sqrt(e));break;case "sub":f=a.pop();e=a.pop();a.push(e-f);break;case "true":a.push(!0);break;case "truncate":e=a.pop();e=0>e?Math.ceil(e):Math.floor(e);a.push(e);break;case "xor":f=a.pop(); e=a.pop();kb(e)&&kb(f)?a.push(e!=f):a.push(e^f);break;default:u("Unknown operator "+e)}return a.stack}};Ye=bf;var Vh=["Link","Text","Widget"],ba=function(a){if(a.data)this.data=a.data;else{var b=a.dict,c=this.data={};c.subtype=b.get("Subtype").name;var d=b.get("Rect")||[0,0,0,0];c.rect=w.normalizeRect(d);c.annotationFlags=b.get("F");d=b.get("C");c.color=I(d)&&3===d.length?d:[0,0,0];if(b.has("BS"))d=b.get("BS"),c.borderWidth=d.has("W")?d.get("W"):1;else if(d=b.get("Border")||[0,0,1],c.borderWidth= d[2]||0,d=d[3],0<c.borderWidth&&d&&I(d)){var e=d.length;if(0<e){for(var f=!1,g=0,h=0;h<e;h++)if(0<=+d[h])0<d[h]&&g++;else{f=!0;break}if(f||0===g)c.borderWidth=0}}var j;d=b.get("AP");G(d)?(d=d.get("N"),G(d)?(b=b.get("AS"))&&d.has(b.name)&&(j=d.get(b.name)):j=d):j=void 0;this.appearance=j;c.hasAppearance=!!this.appearance;c.id=a.ref.num}};ba.prototype={getData:function(){return this.data},hasHtml:function(){return!1},getHtmlElement:function(){throw new Ma("getHtmlElement() should be implemented in subclass"); },getEmptyContainer:function(a,b,c){$(!Ad,"getEmptyContainer() should be called from main thread");c=c||0;b=b||this.data.rect;a=document.createElement(a);a.style.borderWidth=c+"px";var d=b[3]-b[1]-2*c;a.style.width=b[2]-b[0]-2*c+"px";a.style.height=d+"px";return a},isInvisible:function(){var a=this.data;return a&&-1!==Vh.indexOf(a.subtype)?!1:!(!a||!(a.annotationFlags&&a.annotationFlags&1))},isViewable:function(){var a=this.data;return!(this.isInvisible()||!a||a.annotationFlags&&a.annotationFlags& 34||!a.rect)},isPrintable:function(){var a=this.data;return!(this.isInvisible()||!a||!a.annotationFlags||!(a.annotationFlags&4&&a.rect))},loadResources:function(a){var b=new da;this.appearance.dict.getAsync("Resources").then(function(c){c?(new Hd(c.map,a,c.xref)).load().then(function(){b.resolve(c)}):b.resolve()}.bind(this));return b},getOperatorList:function(a){var b=new da;if(!this.appearance)return b.resolve(new Eb),b;var c=this.data,d=this.appearance.dict,e=this.loadResources("ExtGState ColorSpace Pattern Shading XObject Font".split(" ")), f=d.get("BBox")||[0,0,1,1],g=d.get("Matrix")||[1,0,0,1,0,0],h;var d=c.rect,j=w.getAxialAlignedBoundingBox(f,g),f=j[0],l=j[1],k=j[2],j=j[3];f===k||l===j?h=[1,0,0,1,d[0],d[1]]:(k=(d[2]-d[0])/(k-f),j=(d[3]-d[1])/(j-l),h=[k,0,0,j,d[0]-f*k,d[1]-l*j]);e.then(function(d){var e=new Eb;e.addOp(r.beginAnnotation,[c.rect,h,g]);a.getOperatorList(this.appearance,d,e);e.addOp(r.endAnnotation,[]);b.resolve(e);this.appearance.reset()}.bind(this));return b}};ba.getConstructor=function(a,b){if(a){if("Link"===a)return cf; if("Text"===a)return df;if("Widget"===a){if(b)return"Tx"===b?ef:Jc}else return ba}};ba.fromData=function(a){var b=ba.getConstructor(a.subtype,a.fieldType);if(b)return new b({data:a})};ba.fromRef=function(a,b){var c=a.fetchIfRef(b);if(G(c)){var d=c.get("Subtype");if(d=D(d)?d.name:""){var e=w.getInheritableProperty(c,"FT"),e=D(e)?e.name:"";if(e=ba.getConstructor(d,e)){c=new e({dict:c,ref:b});if(c.isViewable()||c.isPrintable())return c;L("unimplemented annotation type: "+d)}}}};ba.appendToOperatorList= function(a,b,c,d,e){var f=new da;c=[];for(var g=0,h=a.length;g<h;++g)("display"===e&&a[g].isViewable()||"print"===e&&a[g].isPrintable())&&c.push(a[g].getOperatorList(d));Promise.all(c).then(function(a){b.addOp(r.beginAnnotations,[]);for(var c=0,d=a.length;c<d;++c)b.addOpList(a[c]);b.addOp(r.endAnnotations,[]);f.resolve()},function(a){f.reject(a)});return f};PDFJS.Annotation=ba;var Jc,ff=function(a){ba.call(this,a);if(!a.data){var b=a.dict,c=this.data;c.fieldValue=Ga(w.getInheritableProperty(b,"V")|| "");c.alternativeText=Ga(b.get("TU")||"");c.defaultAppearance=w.getInheritableProperty(b,"DA")||"";var d=w.getInheritableProperty(b,"FT");c.fieldType=D(d)?d.name:"";c.fieldFlags=w.getInheritableProperty(b,"Ff")||0;this.fieldResources=w.getInheritableProperty(b,"DR")||ya.empty;var d=[],e=b;for(a=a.ref;e;){var b=e.get("Parent"),f=e.getRaw("Parent");if(e=e.get("T"))d.unshift(Ga(e));else{var e=b.get("Kids"),g,h;g=0;for(h=e.length;g<h;g++){var j=e[g];if(j.num==a.num&&j.gen==a.gen)break}d.unshift("`"+g)}e= b;a=f}c.fullName=d.join(".")}},Wh=ba.prototype;w.inherit(ff,ba,{isViewable:function(){return"Sig"===this.data.fieldType?(L("unimplemented annotation type: Widget signature"),!1):Wh.isViewable.call(this)}});Jc=ff;var ef,gf=function(a){Jc.call(this,a);a.data||(this.data.textAlignment=w.getInheritableProperty(a.dict,"Q"))};w.inherit(gf,Jc,{hasHtml:function(){return!this.data.hasAppearance&&!!this.data.fieldValue},getHtmlElement:function(a){$(!Ad,"getHtmlElement() shall be called from main thread");var b= this.data,c=this.getEmptyContainer("div");c.style.display="table";var d=document.createElement("div");d.textContent=b.fieldValue;d.style.textAlign=["left","center","right"][b.textAlignment];d.style.verticalAlign="middle";d.style.display="table-cell";a=b.fontRefName?a.getData(b.fontRefName):null;var e=d.style;e.fontSize=b.fontSize+"px";e.direction=0>b.fontDirection?"rtl":"ltr";a&&(e.fontWeight=a.black?a.bold?"bolder":"bold":a.bold?"bold":"normal",e.fontStyle=a.italic?"italic":"normal",b=a.loadedName, e.fontFamily=(b?'"'+b+'", ':"")+(a.fallbackName||"Helvetica, sans-serif"));c.appendChild(d);return c},getOperatorList:function(a){if(this.appearance)return ba.prototype.getOperatorList.call(this,a);var b=new da,c=new Eb,d=this.data,e=d.defaultAppearance;if(!e)return b.resolve(c),b;e=new wa(Cb(e));a.getOperatorList(e,this.fieldResources,c);a=c.fnArray;e=c.argsArray;d.rgb=[0,0,0];for(var f=0;0>f;++f){var g=a[f],h=e[f];g===r.setFont?(d.fontRefName=h[0],g=h[1],0>g?(d.fontDirection=-1,d.fontSize=-g):(d.fontDirection= 1,d.fontSize=g)):g===r.setFillRGBColor?d.rgb=h:g===r.setFillGray&&(g=255*h[0],d.rgb=[g,g,g])}b.resolve(c);return b}});ef=gf;var Id=function(a){ba.call(this,a)};w.inherit(Id,ba,{hasHtml:function(){return!0},highlight:function(){this.highlightElement&&this.highlightElement.hasAttribute("hidden")&&this.highlightElement.removeAttribute("hidden")},unhighlight:function(){this.highlightElement&&!this.highlightElement.hasAttribute("hidden")&&this.highlightElement.setAttribute("hidden",!0)},initContainer:function(){for(var a= this.data,b=this.getEmptyContainer("section",a.rect,a.borderWidth),c=b.style.backgroundColor=a.color,d=[],e=0;3>e;++e)d[e]=Math.round(255*c[e]);a.colorCssRgb=w.makeCssRgb(d);a=document.createElement("div");a.className="annotationHighlight";a.style.left=a.style.top="-4px";a.style.right=a.style.bottom="-4px";a.setAttribute("hidden",!0);this.highlightElement=a;b.appendChild(this.highlightElement);return b}});var df,hf=function(a){ba.call(this,a);if(!a.data){a=a.dict;var b=this.data,c=a.get("Contents"), d=a.get("T");b.content=Ga(c||"");b.title=Ga(d||"");b.hasAppearance?b.name="NoIcon":(b.rect[1]=b.rect[3]-22,b.rect[2]=b.rect[0]+22,b.name=a.has("Name")?a.get("Name").name:"Note");a.has("C")&&(b.hasBgColor=!0)}};w.inherit(hf,Id,{getHtmlElement:function(){$(!Ad,"getHtmlElement() shall be called from main thread");var a=this.data,b=a.rect;10>b[3]-b[1]&&(b[3]=b[1]+10);10>b[2]-b[0]&&(b[2]=b[0]+(b[3]-b[1]));var c=this.initContainer();c.className="annotText";var d=document.createElement("img");d.style.height= c.style.height;d.style.width=c.style.width;var e=a.name;d.src=PDFJS.imageResourcesPath+"annotation-"+e.toLowerCase()+".svg";d.alt="[{{type}} Annotation]";d.dataset.l10nId="text_annotation_type";d.dataset.l10nArgs=JSON.stringify({type:e});e=document.createElement("div");e.className="annotTextContentWrapper";e.style.left=Math.floor(b[2]-b[0]+5)+"px";e.style.top="-10px";var f=document.createElement("div");f.className="annotTextContent";f.setAttribute("hidden",!0);if(a.hasBgColor){for(var g=a.color,h= [],b=0;3>b;++b){var j=Math.round(255*g[b]);h[b]=Math.round(0.7*(255-j))+j}f.style.backgroundColor=w.makeCssRgb(h)}g=document.createElement("h1");h=document.createElement("p");g.textContent=a.title;if(!a.content&&!a.title)f.setAttribute("hidden",!0);else{for(var j=document.createElement("span"),l=a.content.split(/(?:\r\n?|\n)/),b=0,a=l.length;b<a;++b)j.appendChild(document.createTextNode(l[b])),b<a-1&&j.appendChild(document.createElement("br"));h.appendChild(j);var k=!1,m=function(a){a&&(k=!0);f.hasAttribute("hidden")&& (c.style.zIndex+=1,f.removeAttribute("hidden"))},n=function(a){a&&(k=!1);!f.hasAttribute("hidden")&&!k&&(c.style.zIndex-=1,f.setAttribute("hidden",!0))};d.addEventListener("click",function(){k?n(!0):m(!0)},!1);d.addEventListener("mouseover",function(){m()},!1);d.addEventListener("mouseout",function(){n()},!1);f.addEventListener("click",function(){n(!0)},!1)}f.appendChild(g);f.appendChild(h);e.appendChild(f);c.appendChild(d);c.appendChild(e);return c}});df=hf;var cf,jf=function(a){ba.call(this,a); if(!a.data){var b=a.dict;a=this.data;var c=b.get("A");if(c)if(b=c.get("S").name,"URI"===b){var d=c.get("URI");D(d)?d="/"+d.name:d&&(d=d&&0===d.indexOf("www.")?"http://"+d:d);yd(d,!1)||(d="");a.url=d}else"GoTo"===b?a.dest=c.get("D"):"GoToR"===b?(b=c.get("F"),G(b)&&(d=b.get("F")||""),yd(d,!1)||(d=""),a.url=d,a.dest=c.get("D")):"Named"===b?a.action=c.get("N").name:L("unrecognized link type: "+b);else b.has("Dest")&&(d=b.get("Dest"),a.dest=D(d)?d.name:d)}};w.inherit(jf,Id,{hasOperatorList:function(){return!1}, getHtmlElement:function(){var a=this.initContainer();a.className="annotLink";a.style.borderColor=this.data.colorCssRgb;a.style.borderStyle="solid";var b=document.createElement("a");b.href=b.title=this.data.url||"";a.appendChild(b);return a}});cf=jf;var Jd=function(a,b){this.url=a;b=b||{};this.httpHeaders=(this.isHttp=/^https?:/i.test(a))&&b.httpHeaders||{};this.withCredentials=b.withCredentials||!1;this.getXhr=b.getXhr||function(){return new XMLHttpRequest};this.currXhrId=0;this.pendingRequests={}; this.loadedRequests={}};Jd.prototype={requestRange:function(a,b,c){a={begin:a,end:b};for(var d in c)a[d]=c[d];return this.request(a)},requestFull:function(a){return this.request(a)},request:function(a){var b=this.getXhr(),c=this.currXhrId++,d=this.pendingRequests[c]={xhr:b};b.open("GET",this.url);b.withCredentials=this.withCredentials;for(var e in this.httpHeaders){var f=this.httpHeaders[e];"undefined"!==typeof f&&b.setRequestHeader(e,f)}this.isHttp&&"begin"in a&&"end"in a?(b.setRequestHeader("Range", "bytes="+(a.begin+"-"+(a.end-1))),d.expectedStatus=206):d.expectedStatus=200;b.mozResponseType=b.responseType="arraybuffer";a.onProgress&&(b.onprogress=a.onProgress);a.onError&&(b.onerror=function(){a.onError(b.status)});b.onreadystatechange=this.onStateChange.bind(this,c);d.onHeadersReceived=a.onHeadersReceived;d.onDone=a.onDone;d.onError=a.onError;b.send(null);return c},onStateChange:function(a){var b=this.pendingRequests[a];if(b){var c=b.xhr;2<=c.readyState&&b.onHeadersReceived&&(b.onHeadersReceived(), delete b.onHeadersReceived);if(4===c.readyState&&a in this.pendingRequests)if(delete this.pendingRequests[a],0===c.status&&this.isHttp){if(b.onError)b.onError(c.status)}else{var d=c.status||200;if(!(200===d&&206===b.expectedStatus)&&d!==b.expectedStatus){if(b.onError)b.onError(c.status)}else{this.loadedRequests[a]=!0;a=c.mozResponseArrayBuffer||c.mozResponse||c.responseArrayBuffer||c.response;if("string"===typeof a){for(var e=a.length,f=new Uint8Array(e),g=0;g<e;g++)f[g]=a.charCodeAt(g)&255;a=f}if(206=== d)c=c.getResponseHeader("Content-Range"),c=/bytes (\d+)-(\d+)\/(\d+)/.exec(c),c=parseInt(c[1],10),b.onDone({begin:c,chunk:a});else b.onDone({begin:0,chunk:a})}}}},hasPendingRequests:function(){for(var a in this.pendingRequests)return!0;return!1},getRequestXhr:function(a){return this.pendingRequests[a].xhr},isPendingRequest:function(a){return a in this.pendingRequests},isLoadedRequest:function(a){return a in this.loadedRequests},abortAllRequests:function(){for(var a in this.pendingRequests)this.abortRequest(a| 0)},abortRequest:function(a){var b=this.pendingRequests[a].xhr;delete this.pendingRequests[a];b.abort()}};var Kd=function(a,b,c){this.bytes=new Uint8Array(a);this.pos=this.start=0;this.end=a;this.chunkSize=b;this.loadedChunks=[];this.numChunksLoaded=0;this.numChunks=Math.ceil(a/b);this.manager=c;this.initialDataLength=0};Kd.prototype={getMissingChunks:function(){for(var a=[],b=0,c=this.numChunks;b<c;++b)b in this.loadedChunks||a.push(b);return a},getBaseStreams:function(){return[this]},allChunksLoaded:function(){return this.numChunksLoaded=== this.numChunks},onReceiveData:function(a,b){var c=a+b.byteLength;$(0===a%this.chunkSize,"Bad begin offset: "+a);var d=this.bytes.length;$(0===c%this.chunkSize||c===d,"Bad end offset: "+c);this.bytes.set(new Uint8Array(b),a);d=this.chunkSize;c=Math.floor((c-1)/d)+1;for(d=Math.floor(a/d);d<c;++d)d in this.loadedChunks||(this.loadedChunks[d]=!0,++this.numChunksLoaded)},onReceiveInitialData:function(a){this.bytes.set(a);this.initialDataLength=a.length;a=this.end===a.length?this.numChunks:Math.floor(a.length/ this.chunkSize);for(var b=0;b<a;b++)this.loadedChunks[b]=!0,++this.numChunksLoaded},ensureRange:function(a,b){if(!(a>=b)&&!(b<=this.initialDataLength))for(var c=this.chunkSize,d=Math.floor((b-1)/c)+1,c=Math.floor(a/c);c<d;++c)if(!(c in this.loadedChunks))throw new db(a,b);},nextEmptyChunk:function(a){var b,c;b=a;for(c=this.numChunks;b<c;++b)if(!(b in this.loadedChunks))return b;for(b=0;b<a;++b)if(!(b in this.loadedChunks))return b;return null},ha