diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/pdbf-toolkit/data/pdf.worker.js |
Initial commit
Diffstat (limited to 'support/pdbf-toolkit/data/pdf.worker.js')
-rw-r--r-- | support/pdbf-toolkit/data/pdf.worker.js | 1465 |
1 files changed, 1465 insertions, 0 deletions
diff --git a/support/pdbf-toolkit/data/pdf.worker.js b/support/pdbf-toolkit/data/pdf.worker.js new file mode 100644 index 0000000000..6d6634673a --- /dev/null +++ b/support/pdbf-toolkit/data/pdf.worker.js @@ -0,0 +1,1465 @@ +if(typeof PDFJS==="undefined")(typeof window!=="undefined"?window:this).PDFJS={};PDFJS.version="1.0.907";PDFJS.build="e9072ac"; +(function pdfjsWrapper(){var globalScope=typeof window==="undefined"?this:window;var isWorker=typeof window==="undefined";var FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];var TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};var ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};var AnnotationType={WIDGET:1,TEXT:2,LINK:3};var StreamType={UNKNOWN:0,FLATE:1,LZW:2,DCT:3,JPX:4, +JBIG:5,A85:6,AHX:7,CCF:8,RL:9};var FontType={UNKNOWN:0,TYPE1:1,TYPE1C:2,CIDFONTTYPE0:3,CIDFONTTYPE0C:4,TRUETYPE:5,CIDFONTTYPE2:6,TYPE3:7,OPENTYPE:8,TYPE0:9,MMTYPE1:10};if(!globalScope.PDFJS)globalScope.PDFJS={};globalScope.PDFJS.pdfBug=false;PDFJS.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var OPS=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,constructPath:91};function info(msg){if(PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos)console.log("Info: "+msg)}function warn(msg){if(PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings)console.log("Warning: "+ +msg)}function error(msg){if(arguments.length>1){var logArguments=["Error:"];logArguments.push.apply(logArguments,arguments);console.log.apply(console,logArguments);msg=[].join.call(arguments," ")}else console.log("Error: "+msg);console.log(backtrace());UnsupportedManager.notify(UNSUPPORTED_FEATURES.unknown);throw new Error(msg);}function backtrace(){try{throw new Error;}catch(e){return e.stack?e.stack.split("\n").slice(2).join("\n"):""}}function assert(cond,msg){if(!cond)error(msg)}var UNSUPPORTED_FEATURES= +PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"};var UnsupportedManager=PDFJS.UnsupportedManager=function UnsupportedManagerClosure(){var listeners=[];return{listen:function(cb){listeners.push(cb)},notify:function(featureId){warn('Unsupported feature "'+featureId+'"');for(var i=0,ii=listeners.length;i<ii;i++)listeners[i](featureId)}}}();function combineUrl(baseUrl,url){if(!url)return baseUrl;if(/^[a-z][a-z0-9+\-.]*:/i.test(url))return url; +var i;if(url.charAt(0)==="/"){i=baseUrl.indexOf("://");if(url.charAt(1)==="/")++i;else i=baseUrl.indexOf("/",i+3);return baseUrl.substring(0,i)+url}else{var pathLength=baseUrl.length;i=baseUrl.lastIndexOf("#");pathLength=i>=0?i:pathLength;i=baseUrl.lastIndexOf("?",pathLength);pathLength=i>=0?i:pathLength;var prefixLength=baseUrl.lastIndexOf("/",pathLength);return baseUrl.substring(0,prefixLength+1)+url}}function isValidUrl(url,allowRelative){if(!url)return false;var protocol=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(url); +if(!protocol)return allowRelative;protocol=protocol[0].toLowerCase();switch(protocol){case "http":case "https":case "ftp":case "mailto":return true;default:return false}}PDFJS.isValidUrl=isValidUrl;function shadow(obj,prop,value){Object.defineProperty(obj,prop,{value:value,enumerable:true,configurable:true,writable:false});return value}var PasswordResponses=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};var PasswordException=function PasswordExceptionClosure(){function PasswordException(msg, +code){this.name="PasswordException";this.message=msg;this.code=code}PasswordException.prototype=new Error;PasswordException.constructor=PasswordException;return PasswordException}();PDFJS.PasswordException=PasswordException;var UnknownErrorException=function UnknownErrorExceptionClosure(){function UnknownErrorException(msg,details){this.name="UnknownErrorException";this.message=msg;this.details=details}UnknownErrorException.prototype=new Error;UnknownErrorException.constructor=UnknownErrorException; +return UnknownErrorException}();PDFJS.UnknownErrorException=UnknownErrorException;var InvalidPDFException=function InvalidPDFExceptionClosure(){function InvalidPDFException(msg){this.name="InvalidPDFException";this.message=msg}InvalidPDFException.prototype=new Error;InvalidPDFException.constructor=InvalidPDFException;return InvalidPDFException}();PDFJS.InvalidPDFException=InvalidPDFException;var MissingPDFException=function MissingPDFExceptionClosure(){function MissingPDFException(msg){this.name= +"MissingPDFException";this.message=msg}MissingPDFException.prototype=new Error;MissingPDFException.constructor=MissingPDFException;return MissingPDFException}();PDFJS.MissingPDFException=MissingPDFException;var UnexpectedResponseException=function UnexpectedResponseExceptionClosure(){function UnexpectedResponseException(msg,status){this.name="UnexpectedResponseException";this.message=msg;this.status=status}UnexpectedResponseException.prototype=new Error;UnexpectedResponseException.constructor=UnexpectedResponseException; +return UnexpectedResponseException}();PDFJS.UnexpectedResponseException=UnexpectedResponseException;var NotImplementedException=function NotImplementedExceptionClosure(){function NotImplementedException(msg){this.message=msg}NotImplementedException.prototype=new Error;NotImplementedException.prototype.name="NotImplementedException";NotImplementedException.constructor=NotImplementedException;return NotImplementedException}();var MissingDataException=function MissingDataExceptionClosure(){function MissingDataException(begin, +end){this.begin=begin;this.end=end;this.message="Missing data ["+begin+", "+end+")"}MissingDataException.prototype=new Error;MissingDataException.prototype.name="MissingDataException";MissingDataException.constructor=MissingDataException;return MissingDataException}();var XRefParseException=function XRefParseExceptionClosure(){function XRefParseException(msg){this.message=msg}XRefParseException.prototype=new Error;XRefParseException.prototype.name="XRefParseException";XRefParseException.constructor= +XRefParseException;return XRefParseException}();function bytesToString(bytes){var length=bytes.length;var MAX_ARGUMENT_COUNT=8192;if(length<MAX_ARGUMENT_COUNT)return String.fromCharCode.apply(null,bytes);var strBuf=[];for(var i=0;i<length;i+=MAX_ARGUMENT_COUNT){var chunkEnd=Math.min(i+MAX_ARGUMENT_COUNT,length);var chunk=bytes.subarray(i,chunkEnd);strBuf.push(String.fromCharCode.apply(null,chunk))}return strBuf.join("")}function stringToBytes(str){var length=str.length;var bytes=new Uint8Array(length); +for(var i=0;i<length;++i)bytes[i]=str.charCodeAt(i)&255;return bytes}function string32(value){return String.fromCharCode(value>>24&255,value>>16&255,value>>8&255,value&255)}function log2(x){var n=1,i=0;while(x>n){n<<=1;i++}return i}function readInt8(data,start){return data[start]<<24>>24}function readUint16(data,offset){return data[offset]<<8|data[offset+1]}function readUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0}function isLittleEndian(){var buffer8= +new Uint8Array(2);buffer8[0]=1;var buffer16=new Uint16Array(buffer8.buffer);return buffer16[0]===1}Object.defineProperty(PDFJS,"isLittleEndian",{configurable:true,get:function PDFJS_isLittleEndian(){return shadow(PDFJS,"isLittleEndian",isLittleEndian())}});function hasCanvasTypedArrays(){var canvas=document.createElement("canvas");canvas.width=canvas.height=1;var ctx=canvas.getContext("2d");var imageData=ctx.createImageData(1,1);return typeof imageData.data.buffer!=="undefined"}Object.defineProperty(PDFJS, +"hasCanvasTypedArrays",{configurable:true,get:function PDFJS_hasCanvasTypedArrays(){return shadow(PDFJS,"hasCanvasTypedArrays",hasCanvasTypedArrays())}});var Uint32ArrayView=function Uint32ArrayViewClosure(){function Uint32ArrayView(buffer,length){this.buffer=buffer;this.byteLength=buffer.length;this.length=length===undefined?this.byteLength>>2:length;ensureUint32ArrayViewProps(this.length)}Uint32ArrayView.prototype=Object.create(null);var uint32ArrayViewSetters=0;function createUint32ArrayProp(index){return{get:function(){var buffer= +this.buffer,offset=index<<2;return(buffer[offset]|buffer[offset+1]<<8|buffer[offset+2]<<16|buffer[offset+3]<<24)>>>0},set:function(value){var buffer=this.buffer,offset=index<<2;buffer[offset]=value&255;buffer[offset+1]=value>>8&255;buffer[offset+2]=value>>16&255;buffer[offset+3]=value>>>24&255}}}function ensureUint32ArrayViewProps(length){while(uint32ArrayViewSetters<length){Object.defineProperty(Uint32ArrayView.prototype,uint32ArrayViewSetters,createUint32ArrayProp(uint32ArrayViewSetters));uint32ArrayViewSetters++}} +return Uint32ArrayView}();var IDENTITY_MATRIX=[1,0,0,1,0,0];var Util=PDFJS.Util=function UtilClosure(){function Util(){}var rgbBuf=["rgb(",0,",",0,",",0,")"];Util.makeCssRgb=function Util_makeCssRgb(rgb){rgbBuf[1]=rgb[0];rgbBuf[3]=rgb[1];rgbBuf[5]=rgb[2];return rgbBuf.join("")};Util.transform=function Util_transform(m1,m2){return[m1[0]*m2[0]+m1[2]*m2[1],m1[1]*m2[0]+m1[3]*m2[1],m1[0]*m2[2]+m1[2]*m2[3],m1[1]*m2[2]+m1[3]*m2[3],m1[0]*m2[4]+m1[2]*m2[5]+m1[4],m1[1]*m2[4]+m1[3]*m2[5]+m1[5]]};Util.applyTransform= +function Util_applyTransform(p,m){var xt=p[0]*m[0]+p[1]*m[2]+m[4];var yt=p[0]*m[1]+p[1]*m[3]+m[5];return[xt,yt]};Util.applyInverseTransform=function Util_applyInverseTransform(p,m){var d=m[0]*m[3]-m[1]*m[2];var xt=(p[0]*m[3]-p[1]*m[2]+m[2]*m[5]-m[4]*m[3])/d;var yt=(-p[0]*m[1]+p[1]*m[0]+m[4]*m[1]-m[5]*m[0])/d;return[xt,yt]};Util.getAxialAlignedBoundingBox=function Util_getAxialAlignedBoundingBox(r,m){var p1=Util.applyTransform(r,m);var p2=Util.applyTransform(r.slice(2,4),m);var p3=Util.applyTransform([r[0], +r[3]],m);var p4=Util.applyTransform([r[2],r[1]],m);return[Math.min(p1[0],p2[0],p3[0],p4[0]),Math.min(p1[1],p2[1],p3[1],p4[1]),Math.max(p1[0],p2[0],p3[0],p4[0]),Math.max(p1[1],p2[1],p3[1],p4[1])]};Util.inverseTransform=function Util_inverseTransform(m){var d=m[0]*m[3]-m[1]*m[2];return[m[3]/d,-m[1]/d,-m[2]/d,m[0]/d,(m[2]*m[5]-m[4]*m[3])/d,(m[4]*m[1]-m[5]*m[0])/d]};Util.apply3dTransform=function Util_apply3dTransform(m,v){return[m[0]*v[0]+m[1]*v[1]+m[2]*v[2],m[3]*v[0]+m[4]*v[1]+m[5]*v[2],m[6]*v[0]+m[7]* +v[1]+m[8]*v[2]]};Util.singularValueDecompose2dScale=function Util_singularValueDecompose2dScale(m){var transpose=[m[0],m[2],m[1],m[3]];var a=m[0]*transpose[0]+m[1]*transpose[2];var b=m[0]*transpose[1]+m[1]*transpose[3];var c=m[2]*transpose[0]+m[3]*transpose[2];var d=m[2]*transpose[1]+m[3]*transpose[3];var first=(a+d)/2;var second=Math.sqrt((a+d)*(a+d)-4*(a*d-c*b))/2;var sx=first+second||1;var sy=first-second||1;return[Math.sqrt(sx),Math.sqrt(sy)]};Util.normalizeRect=function Util_normalizeRect(rect){var r= +rect.slice(0);if(rect[0]>rect[2]){r[0]=rect[2];r[2]=rect[0]}if(rect[1]>rect[3]){r[1]=rect[3];r[3]=rect[1]}return r};Util.intersect=function Util_intersect(rect1,rect2){function compare(a,b){return a-b}var orderedX=[rect1[0],rect1[2],rect2[0],rect2[2]].sort(compare),orderedY=[rect1[1],rect1[3],rect2[1],rect2[3]].sort(compare),result=[];rect1=Util.normalizeRect(rect1);rect2=Util.normalizeRect(rect2);if(orderedX[0]===rect1[0]&&orderedX[1]===rect2[0]||orderedX[0]===rect2[0]&&orderedX[1]===rect1[0]){result[0]= +orderedX[1];result[2]=orderedX[2]}else return false;if(orderedY[0]===rect1[1]&&orderedY[1]===rect2[1]||orderedY[0]===rect2[1]&&orderedY[1]===rect1[1]){result[1]=orderedY[1];result[3]=orderedY[2]}else return false;return result};Util.sign=function Util_sign(num){return num<0?-1:1};Util.appendToArray=function Util_appendToArray(arr1,arr2){Array.prototype.push.apply(arr1,arr2)};Util.prependToArray=function Util_prependToArray(arr1,arr2){Array.prototype.unshift.apply(arr1,arr2)};Util.extendObj=function extendObj(obj1, +obj2){for(var key in obj2)obj1[key]=obj2[key]};Util.getInheritableProperty=function Util_getInheritableProperty(dict,name){while(dict&&!dict.has(name))dict=dict.get("Parent");if(!dict)return null;return dict.get(name)};Util.inherit=function Util_inherit(sub,base,prototype){sub.prototype=Object.create(base.prototype);sub.prototype.constructor=sub;for(var prop in prototype)sub.prototype[prop]=prototype[prop]};Util.loadScript=function Util_loadScript(src,callback){var script=document.createElement("script"); +var loaded=false;script.setAttribute("src",src);if(callback)script.onload=function(){if(!loaded)callback();loaded=true};document.getElementsByTagName("head")[0].appendChild(script)};return Util}();var PageViewport=PDFJS.PageViewport=function PageViewportClosure(){function PageViewport(viewBox,scale,rotation,offsetX,offsetY,dontFlip){this.viewBox=viewBox;this.scale=scale;this.rotation=rotation;this.offsetX=offsetX;this.offsetY=offsetY;var centerX=(viewBox[2]+viewBox[0])/2;var centerY=(viewBox[3]+viewBox[1])/ +2;var rotateA,rotateB,rotateC,rotateD;rotation=rotation%360;rotation=rotation<0?rotation+360:rotation;switch(rotation){case 180:rotateA=-1;rotateB=0;rotateC=0;rotateD=1;break;case 90:rotateA=0;rotateB=1;rotateC=1;rotateD=0;break;case 270:rotateA=0;rotateB=-1;rotateC=-1;rotateD=0;break;default:rotateA=1;rotateB=0;rotateC=0;rotateD=-1;break}if(dontFlip){rotateC=-rotateC;rotateD=-rotateD}var offsetCanvasX,offsetCanvasY;var width,height;if(rotateA===0){offsetCanvasX=Math.abs(centerY-viewBox[1])*scale+ +offsetX;offsetCanvasY=Math.abs(centerX-viewBox[0])*scale+offsetY;width=Math.abs(viewBox[3]-viewBox[1])*scale;height=Math.abs(viewBox[2]-viewBox[0])*scale}else{offsetCanvasX=Math.abs(centerX-viewBox[0])*scale+offsetX;offsetCanvasY=Math.abs(centerY-viewBox[1])*scale+offsetY;width=Math.abs(viewBox[2]-viewBox[0])*scale;height=Math.abs(viewBox[3]-viewBox[1])*scale}this.transform=[rotateA*scale,rotateB*scale,rotateC*scale,rotateD*scale,offsetCanvasX-rotateA*scale*centerX-rotateC*scale*centerY,offsetCanvasY- +rotateB*scale*centerX-rotateD*scale*centerY];this.width=width;this.height=height;this.fontScale=scale}PageViewport.prototype={clone:function PageViewPort_clone(args){args=args||{};var scale="scale"in args?args.scale:this.scale;var rotation="rotation"in args?args.rotation:this.rotation;return new PageViewport(this.viewBox.slice(),scale,rotation,this.offsetX,this.offsetY,args.dontFlip)},convertToViewportPoint:function PageViewport_convertToViewportPoint(x,y){return Util.applyTransform([x,y],this.transform)}, +convertToViewportRectangle:function PageViewport_convertToViewportRectangle(rect){var tl=Util.applyTransform([rect[0],rect[1]],this.transform);var br=Util.applyTransform([rect[2],rect[3]],this.transform);return[tl[0],tl[1],br[0],br[1]]},convertToPdfPoint:function PageViewport_convertToPdfPoint(x,y){return Util.applyInverseTransform([x,y],this.transform)}};return PageViewport}();var PDFStringTranslateTable=[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];function stringToPDFString(str){var i,n=str.length,strBuf=[];if(str[0]==="\u00fe"&&str[1]==="\u00ff")for(i=2;i<n;i+=2)strBuf.push(String.fromCharCode(str.charCodeAt(i)<< +8|str.charCodeAt(i+1)));else for(i=0;i<n;++i){var code=PDFStringTranslateTable[str.charCodeAt(i)];strBuf.push(code?String.fromCharCode(code):str.charAt(i))}return strBuf.join("")}function stringToUTF8String(str){return decodeURIComponent(escape(str))}function isEmptyObj(obj){for(var key in obj)return false;return true}function isBool(v){return typeof v==="boolean"}function isInt(v){return typeof v==="number"&&(v|0)===v}function isNum(v){return typeof v==="number"}function isString(v){return typeof v=== +"string"}function isNull(v){return v===null}function isName(v){return v instanceof Name}function isCmd(v,cmd){return v instanceof Cmd&&(cmd===undefined||v.cmd===cmd)}function isDict(v,type){if(!(v instanceof Dict))return false;if(!type)return true;var dictType=v.get("Type");return isName(dictType)&&dictType.name===type}function isArray(v){return v instanceof Array}function isStream(v){return typeof v==="object"&&v!==null&&v.getBytes!==undefined}function isArrayBuffer(v){return typeof v==="object"&& +v!==null&&v.byteLength!==undefined}function isRef(v){return v instanceof Ref}function createPromiseCapability(){var capability={};capability.promise=new Promise(function(resolve,reject){capability.resolve=resolve;capability.reject=reject});return capability}PDFJS.createPromiseCapability=createPromiseCapability;(function PromiseClosure(){if(globalScope.Promise){if(typeof globalScope.Promise.all!=="function")globalScope.Promise.all=function(iterable){var count=0,results=[],resolve,reject;var promise= +new globalScope.Promise(function(resolve_,reject_){resolve=resolve_;reject=reject_});iterable.forEach(function(p,i){count++;p.then(function(result){results[i]=result;count--;if(count===0)resolve(results)},reject)});if(count===0)resolve(results);return promise};if(typeof globalScope.Promise.resolve!=="function")globalScope.Promise.resolve=function(value){return new globalScope.Promise(function(resolve){resolve(value)})};if(typeof globalScope.Promise.reject!=="function")globalScope.Promise.reject=function(reason){return new globalScope.Promise(function(resolve, +reject){reject(reason)})};if(typeof globalScope.Promise.prototype.catch!=="function")globalScope.Promise.prototype.catch=function(onReject){return globalScope.Promise.prototype.then(undefined,onReject)};return}var STATUS_PENDING=0;var STATUS_RESOLVED=1;var STATUS_REJECTED=2;var REJECTION_TIMEOUT=500;var HandlerManager={handlers:[],running:false,unhandledRejections:[],pendingRejectionCheck:false,scheduleHandlers:function scheduleHandlers(promise){if(promise._status===STATUS_PENDING)return;this.handlers= +this.handlers.concat(promise._handlers);promise._handlers=[];if(this.running)return;this.running=true;setTimeout(this.runHandlers.bind(this),0)},runHandlers:function runHandlers(){var RUN_TIMEOUT=1;var timeoutAt=Date.now()+RUN_TIMEOUT;while(this.handlers.length>0){var handler=this.handlers.shift();var nextStatus=handler.thisPromise._status;var nextValue=handler.thisPromise._value;try{if(nextStatus===STATUS_RESOLVED){if(typeof handler.onResolve==="function")nextValue=handler.onResolve(nextValue)}else if(typeof handler.onReject=== +"function"){nextValue=handler.onReject(nextValue);nextStatus=STATUS_RESOLVED;if(handler.thisPromise._unhandledRejection)this.removeUnhandeledRejection(handler.thisPromise)}}catch(ex){nextStatus=STATUS_REJECTED;nextValue=ex}handler.nextPromise._updateStatus(nextStatus,nextValue);if(Date.now()>=timeoutAt)break}if(this.handlers.length>0){setTimeout(this.runHandlers.bind(this),0);return}this.running=false},addUnhandledRejection:function addUnhandledRejection(promise){this.unhandledRejections.push({promise:promise, +time:Date.now()});this.scheduleRejectionCheck()},removeUnhandeledRejection:function removeUnhandeledRejection(promise){promise._unhandledRejection=false;for(var i=0;i<this.unhandledRejections.length;i++)if(this.unhandledRejections[i].promise===promise){this.unhandledRejections.splice(i);i--}},scheduleRejectionCheck:function scheduleRejectionCheck(){if(this.pendingRejectionCheck)return;this.pendingRejectionCheck=true;setTimeout(function rejectionCheck(){this.pendingRejectionCheck=false;var now=Date.now(); +for(var i=0;i<this.unhandledRejections.length;i++)if(now-this.unhandledRejections[i].time>REJECTION_TIMEOUT){var unhandled=this.unhandledRejections[i].promise._value;var msg="Unhandled rejection: "+unhandled;if(unhandled.stack)msg+="\n"+unhandled.stack;warn(msg);this.unhandledRejections.splice(i);i--}if(this.unhandledRejections.length)this.scheduleRejectionCheck()}.bind(this),REJECTION_TIMEOUT)}};function Promise(resolver){this._status=STATUS_PENDING;this._handlers=[];try{resolver.call(this,this._resolve.bind(this), +this._reject.bind(this))}catch(e){this._reject(e)}}Promise.all=function Promise_all(promises){var resolveAll,rejectAll;var deferred=new Promise(function(resolve,reject){resolveAll=resolve;rejectAll=reject});var unresolved=promises.length;var results=[];if(unresolved===0){resolveAll(results);return deferred}function reject(reason){if(deferred._status===STATUS_REJECTED)return;results=[];rejectAll(reason)}for(var i=0,ii=promises.length;i<ii;++i){var promise=promises[i];var resolve=function(i){return function(value){if(deferred._status=== +STATUS_REJECTED)return;results[i]=value;unresolved--;if(unresolved===0)resolveAll(results)}}(i);if(Promise.isPromise(promise))promise.then(resolve,reject);else resolve(promise)}return deferred};Promise.isPromise=function Promise_isPromise(value){return value&&typeof value.then==="function"};Promise.resolve=function Promise_resolve(value){return new Promise(function(resolve){resolve(value)})};Promise.reject=function Promise_reject(reason){return new Promise(function(resolve,reject){reject(reason)})}; +Promise.prototype={_status:null,_value:null,_handlers:null,_unhandledRejection:null,_updateStatus:function Promise__updateStatus(status,value){if(this._status===STATUS_RESOLVED||this._status===STATUS_REJECTED)return;if(status===STATUS_RESOLVED&&Promise.isPromise(value)){value.then(this._updateStatus.bind(this,STATUS_RESOLVED),this._updateStatus.bind(this,STATUS_REJECTED));return}this._status=status;this._value=value;if(status===STATUS_REJECTED&&this._handlers.length===0){this._unhandledRejection= +true;HandlerManager.addUnhandledRejection(this)}HandlerManager.scheduleHandlers(this)},_resolve:function Promise_resolve(value){this._updateStatus(STATUS_RESOLVED,value)},_reject:function Promise_reject(reason){this._updateStatus(STATUS_REJECTED,reason)},then:function Promise_then(onResolve,onReject){var nextPromise=new Promise(function(resolve,reject){this.resolve=resolve;this.reject=reject});this._handlers.push({thisPromise:this,onResolve:onResolve,onReject:onReject,nextPromise:nextPromise});HandlerManager.scheduleHandlers(this); +return nextPromise},catch:function Promise_catch(onReject){return this.then(undefined,onReject)}};globalScope.Promise=Promise})();var StatTimer=function StatTimerClosure(){function rpad(str,pad,length){while(str.length<length)str+=pad;return str}function StatTimer(){this.started={};this.times=[];this.enabled=true}StatTimer.prototype={time:function StatTimer_time(name){if(!this.enabled)return;if(name in this.started)warn("Timer is already running for "+name);this.started[name]=Date.now()},timeEnd:function StatTimer_timeEnd(name){if(!this.enabled)return; +if(!(name in this.started))warn("Timer has not been started for "+name);this.times.push({"name":name,"start":this.started[name],"end":Date.now()});delete this.started[name]},toString:function StatTimer_toString(){var i,ii;var times=this.times;var out="";var longest=0;for(i=0,ii=times.length;i<ii;++i){var name=times[i]["name"];if(name.length>longest)longest=name.length}for(i=0,ii=times.length;i<ii;++i){var span=times[i];var duration=span.end-span.start;out+=rpad(span["name"]," ",longest)+" "+duration+ +"ms\n"}return out}};return StatTimer}();PDFJS.createBlob=function createBlob(data,contentType){if(typeof Blob!=="undefined")return new Blob([data],{type:contentType});var bb=new MozBlobBuilder;bb.append(data);return bb.getBlob(contentType)};PDFJS.createObjectURL=function createObjectURLClosure(){var digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function createObjectURL(data,contentType){if(!PDFJS.disableCreateObjectURL&&typeof URL!=="undefined"&&URL.createObjectURL){var blob= +PDFJS.createBlob(data,contentType);return URL.createObjectURL(blob)}var buffer="data:"+contentType+";base64,";for(var i=0,ii=data.length;i<ii;i+=3){var b1=data[i]&255;var b2=data[i+1]&255;var b3=data[i+2]&255;var d1=b1>>2,d2=(b1&3)<<4|b2>>4;var d3=i+1<ii?(b2&15)<<2|b3>>6:64;var d4=i+2<ii?b3&63:64;buffer+=digits[d1]+digits[d2]+digits[d3]+digits[d4]}return buffer}}();function MessageHandler(name,comObj){this.name=name;this.comObj=comObj;this.callbackIndex=1;this.postMessageTransfers=true;var callbacksCapabilities= +this.callbacksCapabilities={};var ah=this.actionHandler={};ah["console_log"]=[function ahConsoleLog(data){console.log.apply(console,data)}];ah["console_error"]=[function ahConsoleError(data){console.error.apply(console,data)}];ah["_unsupported_feature"]=[function ah_unsupportedFeature(data){UnsupportedManager.notify(data)}];comObj.onmessage=function messageHandlerComObjOnMessage(event){var data=event.data;if(data.isReply){var callbackId=data.callbackId;if(data.callbackId in callbacksCapabilities){var callback= +callbacksCapabilities[callbackId];delete callbacksCapabilities[callbackId];if("error"in data)callback.reject(data.error);else callback.resolve(data.data)}else error("Cannot resolve callback "+callbackId)}else if(data.action in ah){var action=ah[data.action];if(data.callbackId)Promise.resolve().then(function(){return action[0].call(action[1],data.data)}).then(function(result){comObj.postMessage({isReply:true,callbackId:data.callbackId,data:result})},function(reason){comObj.postMessage({isReply:true, +callbackId:data.callbackId,error:reason})});else action[0].call(action[1],data.data)}else error("Unknown action from worker: "+data.action)}}MessageHandler.prototype={on:function messageHandlerOn(actionName,handler,scope){var ah=this.actionHandler;if(ah[actionName])error('There is already an actionName called "'+actionName+'"');ah[actionName]=[handler,scope]},send:function messageHandlerSend(actionName,data,transfers){var message={action:actionName,data:data};this.postMessage(message,transfers)}, +sendWithPromise:function messageHandlerSendWithPromise(actionName,data,transfers){var callbackId=this.callbackIndex++;var message={action:actionName,data:data,callbackId:callbackId};var capability=createPromiseCapability();this.callbacksCapabilities[callbackId]=capability;try{this.postMessage(message,transfers)}catch(e){capability.reject(e)}return capability.promise},postMessage:function(message,transfers){if(transfers&&this.postMessageTransfers)this.comObj.postMessage(message,transfers);else this.comObj.postMessage(message)}}; +function loadJpegStream(id,imageUrl,objs){var img=new Image;img.onload=function loadJpegStream_onloadClosure(){objs.resolve(id,img)};img.onerror=function loadJpegStream_onerrorClosure(){objs.resolve(id,null);warn("Error during JPEG image loading")};img.src=imageUrl}var NetworkManager=function NetworkManagerClosure(){var OK_RESPONSE=200;var PARTIAL_CONTENT_RESPONSE=206;function NetworkManager(url,args){this.url=url;args=args||{};this.isHttp=/^https?:/i.test(url);this.httpHeaders=this.isHttp&&args.httpHeaders|| +{};this.withCredentials=args.withCredentials||false;this.getXhr=args.getXhr||function NetworkManager_getXhr(){return new XMLHttpRequest};this.currXhrId=0;this.pendingRequests={};this.loadedRequests={}}function getArrayBuffer(xhr){var data=xhr.response;if(typeof data!=="string")return data;var length=data.length;var array=new Uint8Array(length);for(var i=0;i<length;i++)array[i]=data.charCodeAt(i)&255;return array.buffer}NetworkManager.prototype={requestRange:function NetworkManager_requestRange(begin, +end,listeners){var args={begin:begin,end:end};for(var prop in listeners)args[prop]=listeners[prop];return this.request(args)},requestFull:function NetworkManager_requestFull(listeners){return this.request(listeners)},request:function NetworkManager_request(args){var xhr=this.getXhr();var xhrId=this.currXhrId++;var pendingRequest=this.pendingRequests[xhrId]={xhr:xhr};xhr.open("GET",this.url);xhr.withCredentials=this.withCredentials;for(var property in this.httpHeaders){var value=this.httpHeaders[property]; +if(typeof value==="undefined")continue;xhr.setRequestHeader(property,value)}if(this.isHttp&&"begin"in args&&"end"in args){var rangeStr=args.begin+"-"+(args.end-1);xhr.setRequestHeader("Range","bytes="+rangeStr);pendingRequest.expectedStatus=206}else pendingRequest.expectedStatus=200;if(args.onProgressiveData){xhr.responseType="moz-chunked-arraybuffer";if(xhr.responseType==="moz-chunked-arraybuffer"){pendingRequest.onProgressiveData=args.onProgressiveData;pendingRequest.mozChunked=true}else xhr.responseType= +"arraybuffer"}else xhr.responseType="arraybuffer";if(args.onError)xhr.onerror=function(evt){args.onError(xhr.status)};xhr.onreadystatechange=this.onStateChange.bind(this,xhrId);xhr.onprogress=this.onProgress.bind(this,xhrId);pendingRequest.onHeadersReceived=args.onHeadersReceived;pendingRequest.onDone=args.onDone;pendingRequest.onError=args.onError;pendingRequest.onProgress=args.onProgress;xhr.send(null);return xhrId},onProgress:function NetworkManager_onProgress(xhrId,evt){var pendingRequest=this.pendingRequests[xhrId]; +if(!pendingRequest)return;if(pendingRequest.mozChunked){var chunk=getArrayBuffer(pendingRequest.xhr);pendingRequest.onProgressiveData(chunk)}var onProgress=pendingRequest.onProgress;if(onProgress)onProgress(evt)},onStateChange:function NetworkManager_onStateChange(xhrId,evt){var pendingRequest=this.pendingRequests[xhrId];if(!pendingRequest)return;var xhr=pendingRequest.xhr;if(xhr.readyState>=2&&pendingRequest.onHeadersReceived){pendingRequest.onHeadersReceived();delete pendingRequest.onHeadersReceived}if(xhr.readyState!== +4)return;if(!(xhrId in this.pendingRequests))return;delete this.pendingRequests[xhrId];if(xhr.status===0&&this.isHttp){if(pendingRequest.onError)pendingRequest.onError(xhr.status);return}var xhrStatus=xhr.status||OK_RESPONSE;var ok_response_on_range_request=xhrStatus===OK_RESPONSE&&pendingRequest.expectedStatus===PARTIAL_CONTENT_RESPONSE;if(!ok_response_on_range_request&&xhrStatus!==pendingRequest.expectedStatus){if(pendingRequest.onError)pendingRequest.onError(xhr.status);return}this.loadedRequests[xhrId]= +true;var chunk=getArrayBuffer(xhr);if(xhrStatus===PARTIAL_CONTENT_RESPONSE){var rangeHeader=xhr.getResponseHeader("Content-Range");var matches=/bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader);var begin=parseInt(matches[1],10);pendingRequest.onDone({begin:begin,chunk:chunk})}else if(pendingRequest.onProgressiveData)pendingRequest.onDone(null);else pendingRequest.onDone({begin:0,chunk:chunk})},hasPendingRequests:function NetworkManager_hasPendingRequests(){for(var xhrId in this.pendingRequests)return true; +return false},getRequestXhr:function NetworkManager_getXhr(xhrId){return this.pendingRequests[xhrId].xhr},isStreamingRequest:function NetworkManager_isStreamingRequest(xhrId){return!!this.pendingRequests[xhrId].onProgressiveData},isPendingRequest:function NetworkManager_isPendingRequest(xhrId){return xhrId in this.pendingRequests},isLoadedRequest:function NetworkManager_isLoadedRequest(xhrId){return xhrId in this.loadedRequests},abortAllRequests:function NetworkManager_abortAllRequests(){for(var xhrId in this.pendingRequests)this.abortRequest(xhrId| +0)},abortRequest:function NetworkManager_abortRequest(xhrId){var xhr=this.pendingRequests[xhrId].xhr;delete this.pendingRequests[xhrId];xhr.abort()}};return NetworkManager}();var ChunkedStream=function ChunkedStreamClosure(){function ChunkedStream(length,chunkSize,manager){this.bytes=new Uint8Array(length);this.start=0;this.pos=0;this.end=length;this.chunkSize=chunkSize;this.loadedChunks=[];this.numChunksLoaded=0;this.numChunks=Math.ceil(length/chunkSize);this.manager=manager;this.progressiveDataLength= +0;this.lastSuccessfulEnsureByteChunk=-1}ChunkedStream.prototype={getMissingChunks:function ChunkedStream_getMissingChunks(){var chunks=[];for(var chunk=0,n=this.numChunks;chunk<n;++chunk)if(!this.loadedChunks[chunk])chunks.push(chunk);return chunks},getBaseStreams:function ChunkedStream_getBaseStreams(){return[this]},allChunksLoaded:function ChunkedStream_allChunksLoaded(){return this.numChunksLoaded===this.numChunks},onReceiveData:function ChunkedStream_onReceiveData(begin,chunk){var end=begin+chunk.byteLength; +assert(begin%this.chunkSize===0,"Bad begin offset: "+begin);var length=this.bytes.length;assert(end%this.chunkSize===0||end===length,"Bad end offset: "+end);this.bytes.set(new Uint8Array(chunk),begin);var chunkSize=this.chunkSize;var beginChunk=Math.floor(begin/chunkSize);var endChunk=Math.floor((end-1)/chunkSize)+1;var curChunk;for(curChunk=beginChunk;curChunk<endChunk;++curChunk)if(!this.loadedChunks[curChunk]){this.loadedChunks[curChunk]=true;++this.numChunksLoaded}},onReceiveProgressiveData:function ChunkedStream_onReceiveProgressiveData(data){var position= +this.progressiveDataLength;var beginChunk=Math.floor(position/this.chunkSize);this.bytes.set(new Uint8Array(data),position);position+=data.byteLength;this.progressiveDataLength=position;var endChunk=position>=this.end?this.numChunks:Math.floor(position/this.chunkSize);var curChunk;for(curChunk=beginChunk;curChunk<endChunk;++curChunk)if(!this.loadedChunks[curChunk]){this.loadedChunks[curChunk]=true;++this.numChunksLoaded}},ensureByte:function ChunkedStream_ensureByte(pos){var chunk=Math.floor(pos/ +this.chunkSize);if(chunk===this.lastSuccessfulEnsureByteChunk)return;if(!this.loadedChunks[chunk])throw new MissingDataException(pos,pos+1);this.lastSuccessfulEnsureByteChunk=chunk},ensureRange:function ChunkedStream_ensureRange(begin,end){if(begin>=end)return;if(end<=this.progressiveDataLength)return;var chunkSize=this.chunkSize;var beginChunk=Math.floor(begin/chunkSize);var endChunk=Math.floor((end-1)/chunkSize)+1;for(var chunk=beginChunk;chunk<endChunk;++chunk)if(!this.loadedChunks[chunk])throw new MissingDataException(begin, +end);},nextEmptyChunk:function ChunkedStream_nextEmptyChunk(beginChunk){var chunk,n;for(chunk=beginChunk,n=this.numChunks;chunk<n;++chunk)if(!this.loadedChunks[chunk])return chunk;for(chunk=0;chunk<beginChunk;++chunk)if(!this.loadedChunks[chunk])return chunk;return null},hasChunk:function ChunkedStream_hasChunk(chunk){return!!this.loadedChunks[chunk]},get length(){return this.end-this.start},get isEmpty(){return this.length===0},getByte:function ChunkedStream_getByte(){var pos=this.pos;if(pos>=this.end)return-1; +this.ensureByte(pos);return this.bytes[this.pos++]},getUint16:function ChunkedStream_getUint16(){var b0=this.getByte();var b1=this.getByte();return(b0<<8)+b1},getInt32:function ChunkedStream_getInt32(){var b0=this.getByte();var b1=this.getByte();var b2=this.getByte();var b3=this.getByte();return(b0<<24)+(b1<<16)+(b2<<8)+b3},getBytes:function ChunkedStream_getBytes(length){var bytes=this.bytes;var pos=this.pos;var strEnd=this.end;if(!length){this.ensureRange(pos,strEnd);return bytes.subarray(pos,strEnd)}var end= +pos+length;if(end>strEnd)end=strEnd;this.ensureRange(pos,end);this.pos=end;return bytes.subarray(pos,end)},peekByte:function ChunkedStream_peekByte(){var peekedByte=this.getByte();this.pos--;return peekedByte},peekBytes:function ChunkedStream_peekBytes(length){var bytes=this.getBytes(length);this.pos-=bytes.length;return bytes},getByteRange:function ChunkedStream_getBytes(begin,end){this.ensureRange(begin,end);return this.bytes.subarray(begin,end)},skip:function ChunkedStream_skip(n){if(!n)n=1;this.pos+= +n},reset:function ChunkedStream_reset(){this.pos=this.start},moveStart:function ChunkedStream_moveStart(){this.start=this.pos},makeSubStream:function ChunkedStream_makeSubStream(start,length,dict){this.ensureRange(start,start+length);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){var chunkSize=this.chunkSize;var beginChunk=Math.floor(this.start/chunkSize);var endChunk=Math.floor((this.end-1)/chunkSize)+ +1;var missingChunks=[];for(var chunk=beginChunk;chunk<endChunk;++chunk)if(!this.loadedChunks[chunk])missingChunks.push(chunk);return missingChunks};var subStream=new ChunkedStreamSubstream;subStream.pos=subStream.start=start;subStream.end=start+length||this.end;subStream.dict=dict;return subStream},isStream:true};return ChunkedStream}();var ChunkedStreamManager=function ChunkedStreamManagerClosure(){function ChunkedStreamManager(length,chunkSize,url,args){this.stream=new ChunkedStream(length,chunkSize, +this);this.length=length;this.chunkSize=chunkSize;this.url=url;this.disableAutoFetch=args.disableAutoFetch;var msgHandler=this.msgHandler=args.msgHandler;if(args.chunkedViewerLoading){msgHandler.on("OnDataRange",this.onReceiveData.bind(this));msgHandler.on("OnDataProgress",this.onProgress.bind(this));this.sendRequest=function ChunkedStreamManager_sendRequest(begin,end){msgHandler.send("RequestDataRange",{begin:begin,end:end})}}else{var getXhr=function getXhr(){return new XMLHttpRequest};this.networkManager= +new NetworkManager(this.url,{getXhr:getXhr,httpHeaders:args.httpHeaders,withCredentials:args.withCredentials});this.sendRequest=function ChunkedStreamManager_sendRequest(begin,end){this.networkManager.requestRange(begin,end,{onDone:this.onReceiveData.bind(this),onProgress:this.onProgress.bind(this)})}}this.currRequestId=0;this.chunksNeededByRequest={};this.requestsByChunk={};this.callbacksByRequest={};this.progressiveDataLength=0;this._loadedStreamCapability=createPromiseCapability();if(args.initialData)this.onReceiveData({chunk:args.initialData})} +ChunkedStreamManager.prototype={onLoadedStream:function ChunkedStreamManager_getLoadedStream(){return this._loadedStreamCapability.promise},requestAllChunks:function ChunkedStreamManager_requestAllChunks(){var missingChunks=this.stream.getMissingChunks();this.requestChunks(missingChunks);return this._loadedStreamCapability.promise},requestChunks:function ChunkedStreamManager_requestChunks(chunks,callback){var requestId=this.currRequestId++;var chunksNeeded;var i,ii;this.chunksNeededByRequest[requestId]= +chunksNeeded={};for(i=0,ii=chunks.length;i<ii;i++)if(!this.stream.hasChunk(chunks[i]))chunksNeeded[chunks[i]]=true;if(isEmptyObj(chunksNeeded)){if(callback)callback();return}this.callbacksByRequest[requestId]=callback;var chunksToRequest=[];for(var chunk in chunksNeeded){chunk=chunk|0;if(!(chunk in this.requestsByChunk)){this.requestsByChunk[chunk]=[];chunksToRequest.push(chunk)}this.requestsByChunk[chunk].push(requestId)}if(!chunksToRequest.length)return;var groupedChunksToRequest=this.groupChunks(chunksToRequest); +for(i=0;i<groupedChunksToRequest.length;++i){var groupedChunk=groupedChunksToRequest[i];var begin=groupedChunk.beginChunk*this.chunkSize;var end=Math.min(groupedChunk.endChunk*this.chunkSize,this.length);this.sendRequest(begin,end)}},getStream:function ChunkedStreamManager_getStream(){return this.stream},requestRange:function ChunkedStreamManager_requestRange(begin,end,callback){end=Math.min(end,this.length);var beginChunk=this.getBeginChunk(begin);var endChunk=this.getEndChunk(end);var chunks=[]; +for(var chunk=beginChunk;chunk<endChunk;++chunk)chunks.push(chunk);this.requestChunks(chunks,callback)},requestRanges:function ChunkedStreamManager_requestRanges(ranges,callback){ranges=ranges||[];var chunksToRequest=[];for(var i=0;i<ranges.length;i++){var beginChunk=this.getBeginChunk(ranges[i].begin);var endChunk=this.getEndChunk(ranges[i].end);for(var chunk=beginChunk;chunk<endChunk;++chunk)if(chunksToRequest.indexOf(chunk)<0)chunksToRequest.push(chunk)}chunksToRequest.sort(function(a,b){return a- +b});this.requestChunks(chunksToRequest,callback)},groupChunks:function ChunkedStreamManager_groupChunks(chunks){var groupedChunks=[];var beginChunk=-1;var prevChunk=-1;for(var i=0;i<chunks.length;++i){var chunk=chunks[i];if(beginChunk<0)beginChunk=chunk;if(prevChunk>=0&&prevChunk+1!==chunk){groupedChunks.push({beginChunk:beginChunk,endChunk:prevChunk+1});beginChunk=chunk}if(i+1===chunks.length)groupedChunks.push({beginChunk:beginChunk,endChunk:chunk+1});prevChunk=chunk}return groupedChunks},onProgress:function ChunkedStreamManager_onProgress(args){var bytesLoaded= +this.stream.numChunksLoaded*this.chunkSize+args.loaded;this.msgHandler.send("DocProgress",{loaded:bytesLoaded,total:this.length})},onReceiveData:function ChunkedStreamManager_onReceiveData(args){var chunk=args.chunk;var isProgressive=args.begin===undefined;var begin=isProgressive?this.progressiveDataLength:args.begin;var end=begin+chunk.byteLength;var beginChunk=Math.floor(begin/this.chunkSize);var endChunk=end<this.length?Math.floor(end/this.chunkSize):Math.ceil(end/this.chunkSize);if(isProgressive){this.stream.onReceiveProgressiveData(chunk); +this.progressiveDataLength=end}else this.stream.onReceiveData(begin,chunk);if(this.stream.allChunksLoaded())this._loadedStreamCapability.resolve(this.stream);var loadedRequests=[];var i,requestId;for(chunk=beginChunk;chunk<endChunk;++chunk){var requestIds=this.requestsByChunk[chunk]||[];delete this.requestsByChunk[chunk];for(i=0;i<requestIds.length;++i){requestId=requestIds[i];var chunksNeeded=this.chunksNeededByRequest[requestId];if(chunk in chunksNeeded)delete chunksNeeded[chunk];if(!isEmptyObj(chunksNeeded))continue; +loadedRequests.push(requestId)}}if(!this.disableAutoFetch&&isEmptyObj(this.requestsByChunk)){var nextEmptyChunk;if(this.stream.numChunksLoaded===1){var lastChunk=this.stream.numChunks-1;if(!this.stream.hasChunk(lastChunk))nextEmptyChunk=lastChunk}else nextEmptyChunk=this.stream.nextEmptyChunk(endChunk);if(isInt(nextEmptyChunk))this.requestChunks([nextEmptyChunk])}for(i=0;i<loadedRequests.length;++i){requestId=loadedRequests[i];var callback=this.callbacksByRequest[requestId];delete this.callbacksByRequest[requestId]; +if(callback)callback()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})},onError:function ChunkedStreamManager_onError(err){this._loadedStreamCapability.reject(err)},getBeginChunk:function ChunkedStreamManager_getBeginChunk(begin){var chunk=Math.floor(begin/this.chunkSize);return chunk},getEndChunk:function ChunkedStreamManager_getEndChunk(end){if(end%this.chunkSize===0)return end/this.chunkSize;var chunk=Math.floor((end-1)/this.chunkSize)+ +1;return chunk}};return ChunkedStreamManager}();var RANGE_CHUNK_SIZE=65536;var BasePdfManager=function BasePdfManagerClosure(){function BasePdfManager(){throw new Error("Cannot initialize BaseManagerManager");}BasePdfManager.prototype={onLoadedStream:function BasePdfManager_onLoadedStream(){throw new NotImplementedException;},ensureDoc:function BasePdfManager_ensureDoc(prop,args){return this.ensure(this.pdfDocument,prop,args)},ensureXRef:function BasePdfManager_ensureXRef(prop,args){return this.ensure(this.pdfDocument.xref, +prop,args)},ensureCatalog:function BasePdfManager_ensureCatalog(prop,args){return this.ensure(this.pdfDocument.catalog,prop,args)},getPage:function BasePdfManager_pagePage(pageIndex){return this.pdfDocument.getPage(pageIndex)},cleanup:function BasePdfManager_cleanup(){return this.pdfDocument.cleanup()},ensure:function BasePdfManager_ensure(obj,prop,args){return new NotImplementedException},requestRange:function BasePdfManager_ensure(begin,end){return new NotImplementedException},requestLoadedStream:function BasePdfManager_requestLoadedStream(){return new NotImplementedException}, +sendProgressiveData:function BasePdfManager_sendProgressiveData(chunk){return new NotImplementedException},updatePassword:function BasePdfManager_updatePassword(password){this.pdfDocument.xref.password=this.password=password;if(this._passwordChangedCapability)this._passwordChangedCapability.resolve()},passwordChanged:function BasePdfManager_passwordChanged(){this._passwordChangedCapability=createPromiseCapability();return this._passwordChangedCapability.promise},terminate:function BasePdfManager_terminate(){return new NotImplementedException}}; +return BasePdfManager}();var LocalPdfManager=function LocalPdfManagerClosure(){function LocalPdfManager(data,password){var stream=new Stream(data);this.pdfDocument=new PDFDocument(this,stream,password);this._loadedStreamCapability=createPromiseCapability();this._loadedStreamCapability.resolve(stream)}LocalPdfManager.prototype=Object.create(BasePdfManager.prototype);LocalPdfManager.prototype.constructor=LocalPdfManager;LocalPdfManager.prototype.ensure=function LocalPdfManager_ensure(obj,prop,args){return new Promise(function(resolve, +reject){try{var value=obj[prop];var result;if(typeof value==="function")result=value.apply(obj,args);else result=value;resolve(result)}catch(e){reject(e)}})};LocalPdfManager.prototype.requestRange=function LocalPdfManager_requestRange(begin,end){return Promise.resolve()};LocalPdfManager.prototype.requestLoadedStream=function LocalPdfManager_requestLoadedStream(){};LocalPdfManager.prototype.onLoadedStream=function LocalPdfManager_getLoadedStream(){return this._loadedStreamCapability.promise};LocalPdfManager.prototype.terminate= +function LocalPdfManager_terminate(){return};return LocalPdfManager}();var NetworkPdfManager=function NetworkPdfManagerClosure(){function NetworkPdfManager(args,msgHandler){this.msgHandler=msgHandler;var params={msgHandler:msgHandler,httpHeaders:args.httpHeaders,withCredentials:args.withCredentials,chunkedViewerLoading:args.chunkedViewerLoading,disableAutoFetch:args.disableAutoFetch,initialData:args.initialData};this.streamManager=new ChunkedStreamManager(args.length,RANGE_CHUNK_SIZE,args.url,params); +this.pdfDocument=new PDFDocument(this,this.streamManager.getStream(),args.password)}NetworkPdfManager.prototype=Object.create(BasePdfManager.prototype);NetworkPdfManager.prototype.constructor=NetworkPdfManager;NetworkPdfManager.prototype.ensure=function NetworkPdfManager_ensure(obj,prop,args){var pdfManager=this;return new Promise(function(resolve,reject){function ensureHelper(){try{var result;var value=obj[prop];if(typeof value==="function")result=value.apply(obj,args);else result=value;resolve(result)}catch(e){if(!(e instanceof +MissingDataException)){reject(e);return}pdfManager.streamManager.requestRange(e.begin,e.end,ensureHelper)}}ensureHelper()})};NetworkPdfManager.prototype.requestRange=function NetworkPdfManager_requestRange(begin,end){return new Promise(function(resolve){this.streamManager.requestRange(begin,end,function(){resolve()})}.bind(this))};NetworkPdfManager.prototype.requestLoadedStream=function NetworkPdfManager_requestLoadedStream(){this.streamManager.requestAllChunks()};NetworkPdfManager.prototype.sendProgressiveData= +function NetworkPdfManager_sendProgressiveData(chunk){this.streamManager.onReceiveData({chunk:chunk})};NetworkPdfManager.prototype.onLoadedStream=function NetworkPdfManager_getLoadedStream(){return this.streamManager.onLoadedStream()};NetworkPdfManager.prototype.terminate=function NetworkPdfManager_terminate(){this.streamManager.networkManager.abortAllRequests()};return NetworkPdfManager}();var Page=function PageClosure(){var LETTER_SIZE_MEDIABOX=[0,0,612,792];function Page(pdfManager,xref,pageIndex, +pageDict,ref,fontCache){this.pdfManager=pdfManager;this.pageIndex=pageIndex;this.pageDict=pageDict;this.xref=xref;this.ref=ref;this.fontCache=fontCache;this.idCounters={obj:0};this.resourcesPromise=null}Page.prototype={getPageProp:function Page_getPageProp(key){return this.pageDict.get(key)},getInheritedPageProp:function Page_inheritPageProp(key){var dict=this.pageDict;var value=dict.get(key);while(value===undefined){dict=dict.get("Parent");if(!dict)break;value=dict.get(key)}return value},get content(){return this.getPageProp("Contents")}, +get resources(){var value=this.getInheritedPageProp("Resources");if(value===undefined)value=Dict.empty;return shadow(this,"resources",value)},get mediaBox(){var obj=this.getInheritedPageProp("MediaBox");if(!isArray(obj)||obj.length!==4)obj=LETTER_SIZE_MEDIABOX;return shadow(this,"mediaBox",obj)},get view(){var mediaBox=this.mediaBox;var cropBox=this.getInheritedPageProp("CropBox");if(!isArray(cropBox)||cropBox.length!==4)return shadow(this,"view",mediaBox);cropBox=Util.intersect(cropBox,mediaBox); +if(!cropBox)return shadow(this,"view",mediaBox);return shadow(this,"view",cropBox)},get annotationRefs(){return shadow(this,"annotationRefs",this.getInheritedPageProp("Annots"))},get rotate(){var rotate=this.getInheritedPageProp("Rotate")||0;if(rotate%90!==0)rotate=0;else if(rotate>=360)rotate=rotate%360;else if(rotate<0)rotate=(rotate%360+360)%360;return shadow(this,"rotate",rotate)},getContentStream:function Page_getContentStream(){var content=this.content;var stream;if(isArray(content)){var xref= +this.xref;var i,n=content.length;var streams=[];for(i=0;i<n;++i)streams.push(xref.fetchIfRef(content[i]));stream=new StreamsSequenceStream(streams)}else if(isStream(content))stream=content;else stream=new NullStream;return stream},loadResources:function Page_loadResources(keys){if(!this.resourcesPromise)this.resourcesPromise=this.pdfManager.ensure(this,"resources");return this.resourcesPromise.then(function resourceSuccess(){var objectLoader=new ObjectLoader(this.resources.map,keys,this.xref);return objectLoader.load()}.bind(this))}, +getOperatorList:function Page_getOperatorList(handler,intent){var self=this;var pdfManager=this.pdfManager;var contentStreamPromise=pdfManager.ensure(this,"getContentStream",[]);var resourcesPromise=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]);var partialEvaluator=new PartialEvaluator(pdfManager,this.xref,handler,this.pageIndex,"p"+this.pageIndex+"_",this.idCounters,this.fontCache);var dataPromises=Promise.all([contentStreamPromise,resourcesPromise]);var pageListPromise= +dataPromises.then(function(data){var contentStream=data[0];var opList=new OperatorList(intent,handler,self.pageIndex);handler.send("StartRenderPage",{transparency:partialEvaluator.hasBlendModes(self.resources),pageIndex:self.pageIndex,intent:intent});return partialEvaluator.getOperatorList(contentStream,self.resources,opList).then(function(){return opList})});var annotationsPromise=pdfManager.ensure(this,"annotations");return Promise.all([pageListPromise,annotationsPromise]).then(function(datas){var pageOpList= +datas[0];var annotations=datas[1];if(annotations.length===0){pageOpList.flush(true);return pageOpList}var annotationsReadyPromise=Annotation.appendToOperatorList(annotations,pageOpList,pdfManager,partialEvaluator,intent);return annotationsReadyPromise.then(function(){pageOpList.flush(true);return pageOpList})})},extractTextContent:function Page_extractTextContent(){var handler={on:function nullHandlerOn(){},send:function nullHandlerSend(){}};var self=this;var pdfManager=this.pdfManager;var contentStreamPromise= +pdfManager.ensure(this,"getContentStream",[]);var resourcesPromise=this.loadResources(["ExtGState","XObject","Font"]);var dataPromises=Promise.all([contentStreamPromise,resourcesPromise]);return dataPromises.then(function(data){var contentStream=data[0];var partialEvaluator=new PartialEvaluator(pdfManager,self.xref,handler,self.pageIndex,"p"+self.pageIndex+"_",self.idCounters,self.fontCache);return partialEvaluator.getTextContent(contentStream,self.resources)})},getAnnotationsData:function Page_getAnnotationsData(){var annotations= +this.annotations;var annotationsData=[];for(var i=0,n=annotations.length;i<n;++i)annotationsData.push(annotations[i].getData());return annotationsData},get annotations(){var annotations=[];var annotationRefs=this.annotationRefs||[];for(var i=0,n=annotationRefs.length;i<n;++i){var annotationRef=annotationRefs[i];var annotation=Annotation.fromRef(this.xref,annotationRef);if(annotation)annotations.push(annotation)}return shadow(this,"annotations",annotations)}};return Page}();var PDFDocument=function PDFDocumentClosure(){function PDFDocument(pdfManager, +arg,password){if(isStream(arg))init.call(this,pdfManager,arg,password);else if(isArrayBuffer(arg))init.call(this,pdfManager,new Stream(arg),password);else error("PDFDocument: Unknown argument type")}function init(pdfManager,stream,password){assert(stream.length>0,"stream must have data");this.pdfManager=pdfManager;this.stream=stream;var xref=new XRef(this.stream,password,pdfManager);this.xref=xref}function find(stream,needle,limit,backwards){var pos=stream.pos;var end=stream.end;var strBuf=[];if(pos+ +limit>end)limit=end-pos;for(var n=0;n<limit;++n)strBuf.push(String.fromCharCode(stream.getByte()));var str=strBuf.join("");stream.pos=pos;var index=backwards?str.lastIndexOf(needle):str.indexOf(needle);if(index===-1)return false;stream.pos+=index;return true}var DocumentInfoValidators={get entries(){return shadow(this,"entries",{Title:isString,Author:isString,Subject:isString,Keywords:isString,Creator:isString,Producer:isString,CreationDate:isString,ModDate:isString,Trapped:isName})}};PDFDocument.prototype= +{parse:function PDFDocument_parse(recoveryMode){this.setup(recoveryMode);try{this.acroForm=this.catalog.catDict.get("AcroForm");if(this.acroForm){this.xfa=this.acroForm.get("XFA");var fields=this.acroForm.get("Fields");if((!fields||!isArray(fields)||fields.length===0)&&!this.xfa)this.acroForm=null}}catch(ex){info("Something wrong with AcroForm entry");this.acroForm=null}},get linearization(){var linearization=null;if(this.stream.length)try{linearization=Linearization.create(this.stream)}catch(err){if(err instanceof +MissingDataException)throw err;info(err)}return shadow(this,"linearization",linearization)},get startXRef(){var stream=this.stream;var startXRef=0;var linearization=this.linearization;if(linearization){stream.reset();if(find(stream,"endobj",1024))startXRef=stream.pos+6}else{var step=1024;var found=false,pos=stream.end;while(!found&&pos>0){pos-=step-"startxref".length;if(pos<0)pos=0;stream.pos=pos;found=find(stream,"startxref",step,true)}if(found){stream.skip(9);var ch;do ch=stream.getByte();while(Lexer.isSpace(ch)); +var str="";while(ch>=32&&ch<=57){str+=String.fromCharCode(ch);ch=stream.getByte()}startXRef=parseInt(str,10);if(isNaN(startXRef))startXRef=0}}return shadow(this,"startXRef",startXRef)},get mainXRefEntriesOffset(){var mainXRefEntriesOffset=0;var linearization=this.linearization;if(linearization)mainXRefEntriesOffset=linearization.mainXRefEntriesOffset;return shadow(this,"mainXRefEntriesOffset",mainXRefEntriesOffset)},checkHeader:function PDFDocument_checkHeader(){var stream=this.stream;stream.reset(); +if(find(stream,"%PDF-",1024)){stream.moveStart();var MAX_VERSION_LENGTH=12;var version="",ch;while((ch=stream.getByte())>32){if(version.length>=MAX_VERSION_LENGTH)break;version+=String.fromCharCode(ch)}this.pdfFormatVersion=version.substring(5);return}},parseStartXRef:function PDFDocument_parseStartXRef(){var startXRef=this.startXRef;this.xref.setStartXRef(startXRef)},setup:function PDFDocument_setup(recoveryMode){this.xref.parse(recoveryMode);this.catalog=new Catalog(this.pdfManager,this.xref)}, +get numPages(){var linearization=this.linearization;var num=linearization?linearization.numPages:this.catalog.numPages;return shadow(this,"numPages",num)},get documentInfo(){var docInfo={PDFFormatVersion:this.pdfFormatVersion,IsAcroFormPresent:!!this.acroForm,IsXFAPresent:!!this.xfa};var infoDict;try{infoDict=this.xref.trailer.get("Info")}catch(err){info("The document information dictionary is invalid.")}if(infoDict){var validEntries=DocumentInfoValidators.entries;for(var key in validEntries)if(infoDict.has(key)){var value= +infoDict.get(key);if(validEntries[key](value))docInfo[key]=typeof value!=="string"?value:stringToPDFString(value);else info('Bad value in document info for "'+key+'"')}}return shadow(this,"documentInfo",docInfo)},get fingerprint(){var xref=this.xref,hash,fileID="";if(xref.trailer.has("ID"))hash=stringToBytes(xref.trailer.get("ID")[0]);else hash=calculateMD5(this.stream.bytes.subarray(0,100),0,100);for(var i=0,n=hash.length;i<n;i++)fileID+=hash[i].toString(16);return shadow(this,"fingerprint",fileID)}, +getPage:function PDFDocument_getPage(pageIndex){return this.catalog.getPage(pageIndex)},cleanup:function PDFDocument_cleanup(){return this.catalog.cleanup()}};return PDFDocument}();var Name=function NameClosure(){function Name(name){this.name=name}Name.prototype={};var nameCache={};Name.get=function Name_get(name){var nameValue=nameCache[name];return nameValue?nameValue:nameCache[name]=new Name(name)};return Name}();var Cmd=function CmdClosure(){function Cmd(cmd){this.cmd=cmd}Cmd.prototype={};var cmdCache= +{};Cmd.get=function Cmd_get(cmd){var cmdValue=cmdCache[cmd];return cmdValue?cmdValue:cmdCache[cmd]=new Cmd(cmd)};return Cmd}();var Dict=function DictClosure(){var nonSerializable=function nonSerializableClosure(){return nonSerializable};var GETALL_DICTIONARY_TYPES_WHITELIST={"Background":true,"ExtGState":true,"Halftone":true,"Layout":true,"Mask":true,"Pagination":true,"Printing":true};function isRecursionAllowedFor(dict){if(!isName(dict.Type))return true;var dictType=dict.Type.name;return GETALL_DICTIONARY_TYPES_WHITELIST[dictType]=== +true}function Dict(xref){this.map=Object.create(null);this.xref=xref;this.objId=null;this.__nonSerializable__=nonSerializable}Dict.prototype={assignXref:function Dict_assignXref(newXref){this.xref=newXref},get:function Dict_get(key1,key2,key3){var value;var xref=this.xref;if(typeof(value=this.map[key1])!=="undefined"||key1 in this.map||typeof key2==="undefined")return xref?xref.fetchIfRef(value):value;if(typeof(value=this.map[key2])!=="undefined"||key2 in this.map||typeof key3==="undefined")return xref? +xref.fetchIfRef(value):value;value=this.map[key3]||null;return xref?xref.fetchIfRef(value):value},getAsync:function Dict_getAsync(key1,key2,key3){var value;var xref=this.xref;if(typeof(value=this.map[key1])!=="undefined"||key1 in this.map||typeof key2==="undefined"){if(xref)return xref.fetchIfRefAsync(value);return Promise.resolve(value)}if(typeof(value=this.map[key2])!=="undefined"||key2 in this.map||typeof key3==="undefined"){if(xref)return xref.fetchIfRefAsync(value);return Promise.resolve(value)}value= +this.map[key3]||null;if(xref)return xref.fetchIfRefAsync(value);return Promise.resolve(value)},getRaw:function Dict_getRaw(key){return this.map[key]},getAll:function Dict_getAll(){var all=Object.create(null);var queue=null;var key,obj;for(key in this.map){obj=this.get(key);if(obj instanceof Dict)if(isRecursionAllowedFor(obj))(queue||(queue=[])).push({target:all,key:key,obj:obj});else all[key]=this.getRaw(key);else all[key]=obj}if(!queue)return all;var processed=Object.create(null);while(queue.length> +0){var item=queue.shift();var itemObj=item.obj;var objId=itemObj.objId;if(objId&&objId in processed){item.target[item.key]=processed[objId];continue}var dereferenced=Object.create(null);for(key in itemObj.map){obj=itemObj.get(key);if(obj instanceof Dict)if(isRecursionAllowedFor(obj))queue.push({target:dereferenced,key:key,obj:obj});else dereferenced[key]=itemObj.getRaw(key);else dereferenced[key]=obj}if(objId)processed[objId]=dereferenced;item.target[item.key]=dereferenced}return all},set:function Dict_set(key, +value){this.map[key]=value},has:function Dict_has(key){return key in this.map},forEach:function Dict_forEach(callback){for(var key in this.map)callback(key,this.get(key))}};Dict.empty=new Dict(null);return Dict}();var Ref=function RefClosure(){function Ref(num,gen){this.num=num;this.gen=gen}Ref.prototype={toString:function Ref_toString(){var str=this.num+"R";if(this.gen!==0)str+=this.gen;return str}};return Ref}();var RefSet=function RefSetClosure(){function RefSet(){this.dict={}}RefSet.prototype= +{has:function RefSet_has(ref){return ref.toString()in this.dict},put:function RefSet_put(ref){this.dict[ref.toString()]=true},remove:function RefSet_remove(ref){delete this.dict[ref.toString()]}};return RefSet}();var RefSetCache=function RefSetCacheClosure(){function RefSetCache(){this.dict=Object.create(null)}RefSetCache.prototype={get:function RefSetCache_get(ref){return this.dict[ref.toString()]},has:function RefSetCache_has(ref){return ref.toString()in this.dict},put:function RefSetCache_put(ref, +obj){this.dict[ref.toString()]=obj},putAlias:function RefSetCache_putAlias(ref,aliasRef){this.dict[ref.toString()]=this.get(aliasRef)},forEach:function RefSetCache_forEach(fn,thisArg){for(var i in this.dict)fn.call(thisArg,this.dict[i])},clear:function RefSetCache_clear(){this.dict=Object.create(null)}};return RefSetCache}();var Catalog=function CatalogClosure(){function Catalog(pdfManager,xref){this.pdfManager=pdfManager;this.xref=xref;this.catDict=xref.getCatalogObj();this.fontCache=new RefSetCache; +assert(isDict(this.catDict),"catalog object is not a dictionary");this.pagePromises=[]}Catalog.prototype={get metadata(){var streamRef=this.catDict.getRaw("Metadata");if(!isRef(streamRef))return shadow(this,"metadata",null);var encryptMetadata=!this.xref.encrypt?false:this.xref.encrypt.encryptMetadata;var stream=this.xref.fetch(streamRef,!encryptMetadata);var metadata;if(stream&&isDict(stream.dict)){var type=stream.dict.get("Type");var subtype=stream.dict.get("Subtype");if(isName(type)&&isName(subtype)&& +type.name==="Metadata"&&subtype.name==="XML")try{metadata=stringToUTF8String(bytesToString(stream.getBytes()))}catch(e){info("Skipping invalid metadata.")}}return shadow(this,"metadata",metadata)},get toplevelPagesDict(){var pagesObj=this.catDict.get("Pages");assert(isDict(pagesObj),"invalid top-level pages dictionary");return shadow(this,"toplevelPagesDict",pagesObj)},get documentOutline(){var obj=null;try{obj=this.readDocumentOutline()}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Unable to read document outline")}return shadow(this, +"documentOutline",obj)},readDocumentOutline:function Catalog_readDocumentOutline(){var xref=this.xref;var obj=this.catDict.get("Outlines");var root={items:[]};if(isDict(obj)){obj=obj.getRaw("First");var processed=new RefSet;if(isRef(obj)){var queue=[{obj:obj,parent:root}];processed.put(obj);while(queue.length>0){var i=queue.shift();var outlineDict=xref.fetchIfRef(i.obj);if(outlineDict===null)continue;if(!outlineDict.has("Title"))error("Invalid outline item");var dest=outlineDict.get("A");if(dest)dest= +dest.get("D");else if(outlineDict.has("Dest")){dest=outlineDict.getRaw("Dest");if(isName(dest))dest=dest.name}var title=outlineDict.get("Title");var outlineItem={dest:dest,title:stringToPDFString(title),color:outlineDict.get("C")||[0,0,0],count:outlineDict.get("Count"),bold:!!(outlineDict.get("F")&2),italic:!!(outlineDict.get("F")&1),items:[]};i.parent.items.push(outlineItem);obj=outlineDict.getRaw("First");if(isRef(obj)&&!processed.has(obj)){queue.push({obj:obj,parent:outlineItem});processed.put(obj)}obj= +outlineDict.getRaw("Next");if(isRef(obj)&&!processed.has(obj)){queue.push({obj:obj,parent:i.parent});processed.put(obj)}}}}return root.items.length>0?root.items:null},get numPages(){var obj=this.toplevelPagesDict.get("Count");assert(isInt(obj),"page count in top level pages object is not an integer");return shadow(this,"num",obj)},get destinations(){function fetchDestination(dest){return isDict(dest)?dest.get("D"):dest}var xref=this.xref;var dests={},nameTreeRef,nameDictionaryRef;var obj=this.catDict.get("Names"); +if(obj&&obj.has("Dests"))nameTreeRef=obj.getRaw("Dests");else if(this.catDict.has("Dests"))nameDictionaryRef=this.catDict.get("Dests");if(nameDictionaryRef){obj=nameDictionaryRef;obj.forEach(function catalogForEach(key,value){if(!value)return;dests[key]=fetchDestination(value)})}if(nameTreeRef){var nameTree=new NameTree(nameTreeRef,xref);var names=nameTree.getAll();for(var name in names){if(!names.hasOwnProperty(name))continue;dests[name]=fetchDestination(names[name])}}return shadow(this,"destinations", +dests)},getDestination:function Catalog_getDestination(destinationId){function fetchDestination(dest){return isDict(dest)?dest.get("D"):dest}var xref=this.xref;var dest,nameTreeRef,nameDictionaryRef;var obj=this.catDict.get("Names");if(obj&&obj.has("Dests"))nameTreeRef=obj.getRaw("Dests");else if(this.catDict.has("Dests"))nameDictionaryRef=this.catDict.get("Dests");if(nameDictionaryRef){obj=nameDictionaryRef;obj.forEach(function catalogForEach(key,value){if(!value)return;if(key===destinationId)dest= +fetchDestination(value)})}if(nameTreeRef){var nameTree=new NameTree(nameTreeRef,xref);dest=fetchDestination(nameTree.get(destinationId))}return dest},get attachments(){var xref=this.xref;var attachments=null,nameTreeRef;var obj=this.catDict.get("Names");if(obj)nameTreeRef=obj.getRaw("EmbeddedFiles");if(nameTreeRef){var nameTree=new NameTree(nameTreeRef,xref);var names=nameTree.getAll();for(var name in names){if(!names.hasOwnProperty(name))continue;var fs=new FileSpec(names[name],xref);if(!attachments)attachments= +{};attachments[stringToPDFString(name)]=fs.serializable}}return shadow(this,"attachments",attachments)},get javaScript(){var xref=this.xref;var obj=this.catDict.get("Names");var javaScript=[];if(obj&&obj.has("JavaScript")){var nameTree=new NameTree(obj.getRaw("JavaScript"),xref);var names=nameTree.getAll();for(var name in names){if(!names.hasOwnProperty(name))continue;var jsDict=names[name];if(!isDict(jsDict))continue;var type=jsDict.get("S");if(!isName(type)||type.name!=="JavaScript")continue;var js= +jsDict.get("JS");if(!isString(js)&&!isStream(js))continue;if(isStream(js))js=bytesToString(js.getBytes());javaScript.push(stringToPDFString(js))}}var openactionDict=this.catDict.get("OpenAction");if(isDict(openactionDict)){var objType=openactionDict.get("Type");var actionType=openactionDict.get("S");var action=openactionDict.get("N");var isPrintAction=isName(objType)&&objType.name==="Action"&&isName(actionType)&&actionType.name==="Named"&&isName(action)&&action.name==="Print";if(isPrintAction)javaScript.push("print(true);")}return shadow(this, +"javaScript",javaScript)},cleanup:function Catalog_cleanup(){var promises=[];this.fontCache.forEach(function(promise){promises.push(promise)});return Promise.all(promises).then(function(translatedFonts){for(var i=0,ii=translatedFonts.length;i<ii;i++){var font=translatedFonts[i].dict;delete font.translated}this.fontCache.clear()}.bind(this))},getPage:function Catalog_getPage(pageIndex){if(!(pageIndex in this.pagePromises))this.pagePromises[pageIndex]=this.getPageDict(pageIndex).then(function(a){var dict= +a[0];var ref=a[1];return new Page(this.pdfManager,this.xref,pageIndex,dict,ref,this.fontCache)}.bind(this));return this.pagePromises[pageIndex]},getPageDict:function Catalog_getPageDict(pageIndex){var capability=createPromiseCapability();var nodesToVisit=[this.catDict.getRaw("Pages")];var currentPageIndex=0;var xref=this.xref;function next(){while(nodesToVisit.length){var currentNode=nodesToVisit.pop();if(isRef(currentNode)){xref.fetchAsync(currentNode).then(function(obj){if(isDict(obj,"Page")||isDict(obj)&& +!obj.has("Kids")){if(pageIndex===currentPageIndex)capability.resolve([obj,currentNode]);else{currentPageIndex++;next()}return}nodesToVisit.push(obj);next()},capability.reject);return}assert(isDict(currentNode),"page dictionary kid reference points to wrong type of object");var count=currentNode.get("Count");if(currentPageIndex+count<=pageIndex){currentPageIndex+=count;continue}var kids=currentNode.get("Kids");assert(isArray(kids),"page dictionary kids object is not an array");if(count===kids.length){nodesToVisit= +[kids[pageIndex-currentPageIndex]];currentPageIndex=pageIndex;continue}else for(var last=kids.length-1;last>=0;last--)nodesToVisit.push(kids[last])}capability.reject("Page index "+pageIndex+" not found.")}next();return capability.promise},getPageIndex:function Catalog_getPageIndex(ref){var xref=this.xref;function pagesBeforeRef(kidRef){var total=0;var parentRef;return xref.fetchAsync(kidRef).then(function(node){if(!node)return null;parentRef=node.getRaw("Parent");return node.getAsync("Parent")}).then(function(parent){if(!parent)return null; +return parent.getAsync("Kids")}).then(function(kids){if(!kids)return null;var kidPromises=[];var found=false;for(var i=0;i<kids.length;i++){var kid=kids[i];assert(isRef(kid),"kids must be a ref");if(kid.num===kidRef.num){found=true;break}kidPromises.push(xref.fetchAsync(kid).then(function(kid){if(kid.has("Count")){var count=kid.get("Count");total+=count}else total++}))}if(!found)error("kid ref not found in parents kids");return Promise.all(kidPromises).then(function(){return[total,parentRef]})})} +var total=0;function next(ref){return pagesBeforeRef(ref).then(function(args){if(!args)return total;var count=args[0];var parentRef=args[1];total+=count;return next(parentRef)})}return next(ref)}};return Catalog}();var XRef=function XRefClosure(){function XRef(stream,password){this.stream=stream;this.entries=[];this.xrefstms={};this.cache=[];this.password=password;this.stats={streamTypes:[],fontTypes:[]}}XRef.prototype={setStartXRef:function XRef_setStartXRef(startXRef){this.startXRefQueue=[startXRef]}, +parse:function XRef_parse(recoveryMode){var trailerDict;if(!recoveryMode)trailerDict=this.readXRef();else{warn("Indexing all PDF objects");trailerDict=this.indexObjects()}trailerDict.assignXref(this);this.trailer=trailerDict;var encrypt=trailerDict.get("Encrypt");if(encrypt){var ids=trailerDict.get("ID");var fileId=ids&&ids.length?ids[0]:"";this.encrypt=new CipherTransformFactory(encrypt,fileId,this.password)}if(!(this.root=trailerDict.get("Root")))error("Invalid root reference")},processXRefTable:function XRef_processXRefTable(parser){if(!("tableState"in +this))this.tableState={entryNum:0,streamPos:parser.lexer.stream.pos,parserBuf1:parser.buf1,parserBuf2:parser.buf2};var obj=this.readXRefTable(parser);if(!isCmd(obj,"trailer"))error("Invalid XRef table: could not find trailer dictionary");var dict=parser.getObj();if(!isDict(dict)&&dict.dict)dict=dict.dict;if(!isDict(dict))error("Invalid XRef table: could not parse trailer dictionary");delete this.tableState;return dict},readXRefTable:function XRef_readXRefTable(parser){var stream=parser.lexer.stream; +var tableState=this.tableState;stream.pos=tableState.streamPos;parser.buf1=tableState.parserBuf1;parser.buf2=tableState.parserBuf2;var obj;while(true){if(!("firstEntryNum"in tableState)||!("entryCount"in tableState)){if(isCmd(obj=parser.getObj(),"trailer"))break;tableState.firstEntryNum=obj;tableState.entryCount=parser.getObj()}var first=tableState.firstEntryNum;var count=tableState.entryCount;if(!isInt(first)||!isInt(count))error("Invalid XRef table: wrong types in subsection header");for(var i= +tableState.entryNum;i<count;i++){tableState.streamPos=stream.pos;tableState.entryNum=i;tableState.parserBuf1=parser.buf1;tableState.parserBuf2=parser.buf2;var entry={};entry.offset=parser.getObj();entry.gen=parser.getObj();var type=parser.getObj();if(isCmd(type,"f"))entry.free=true;else if(isCmd(type,"n"))entry.uncompressed=true;if(!isInt(entry.offset)||!isInt(entry.gen)||!(entry.free||entry.uncompressed))error("Invalid entry in XRef subsection: "+first+", "+count);if(!this.entries[i+first])this.entries[i+ +first]=entry}tableState.entryNum=0;tableState.streamPos=stream.pos;tableState.parserBuf1=parser.buf1;tableState.parserBuf2=parser.buf2;delete tableState.firstEntryNum;delete tableState.entryCount}if(first===1&&this.entries[1]&&this.entries[1].free)this.entries.shift();if(this.entries[0]&&!this.entries[0].free)error("Invalid XRef table: unexpected first object");return obj},processXRefStream:function XRef_processXRefStream(stream){if(!("streamState"in this)){var streamParameters=stream.dict;var byteWidths= +streamParameters.get("W");var range=streamParameters.get("Index");if(!range)range=[0,streamParameters.get("Size")];this.streamState={entryRanges:range,byteWidths:byteWidths,entryNum:0,streamPos:stream.pos}}this.readXRefStream(stream);delete this.streamState;return stream.dict},readXRefStream:function XRef_readXRefStream(stream){var i,j;var streamState=this.streamState;stream.pos=streamState.streamPos;var byteWidths=streamState.byteWidths;var typeFieldWidth=byteWidths[0];var offsetFieldWidth=byteWidths[1]; +var generationFieldWidth=byteWidths[2];var entryRanges=streamState.entryRanges;while(entryRanges.length>0){var first=entryRanges[0];var n=entryRanges[1];if(!isInt(first)||!isInt(n))error("Invalid XRef range fields: "+first+", "+n);if(!isInt(typeFieldWidth)||!isInt(offsetFieldWidth)||!isInt(generationFieldWidth))error("Invalid XRef entry fields length: "+first+", "+n);for(i=streamState.entryNum;i<n;++i){streamState.entryNum=i;streamState.streamPos=stream.pos;var type=0,offset=0,generation=0;for(j= +0;j<typeFieldWidth;++j)type=type<<8|stream.getByte();if(typeFieldWidth===0)type=1;for(j=0;j<offsetFieldWidth;++j)offset=offset<<8|stream.getByte();for(j=0;j<generationFieldWidth;++j)generation=generation<<8|stream.getByte();var entry={};entry.offset=offset;entry.gen=generation;switch(type){case 0:entry.free=true;break;case 1:entry.uncompressed=true;break;case 2:break;default:error("Invalid XRef entry type: "+type)}if(!this.entries[first+i])this.entries[first+i]=entry}streamState.entryNum=0;streamState.streamPos= +stream.pos;entryRanges.splice(0,2)}},indexObjects:function XRef_indexObjects(){function readToken(data,offset){var token="",ch=data[offset];while(ch!==13&&ch!==10){if(++offset>=data.length)break;token+=String.fromCharCode(ch);ch=data[offset]}return token}function skipUntil(data,offset,what){var length=what.length,dataLength=data.length;var skipped=0;while(offset<dataLength){var i=0;while(i<length&&data[offset+i]===what[i])++i;if(i>=length)break;offset++;skipped++}return skipped}var trailerBytes=new Uint8Array([116, +114,97,105,108,101,114]);var startxrefBytes=new Uint8Array([115,116,97,114,116,120,114,101,102]);var endobjBytes=new Uint8Array([101,110,100,111,98,106]);var xrefBytes=new Uint8Array([47,88,82,101,102]);var stream=this.stream;stream.pos=0;var buffer=stream.getBytes();var position=stream.start,length=buffer.length;var trailers=[],xrefStms=[];while(position<length){var ch=buffer[position];if(ch===32||ch===9||ch===13||ch===10){++position;continue}if(ch===37){do{++position;if(position>=length)break;ch= +buffer[position]}while(ch!==13&&ch!==10);continue}var token=readToken(buffer,position);var m;if(token==="xref"){position+=skipUntil(buffer,position,trailerBytes);trailers.push(position);position+=skipUntil(buffer,position,startxrefBytes)}else if(m=/^(\d+)\s+(\d+)\s+obj\b/.exec(token)){this.entries[m[1]]={offset:position,gen:m[2]|0,uncompressed:true};var contentLength=skipUntil(buffer,position,endobjBytes)+7;var content=buffer.subarray(position,position+contentLength);var xrefTagOffset=skipUntil(content, +0,xrefBytes);if(xrefTagOffset<contentLength&&content[xrefTagOffset+5]<64){xrefStms.push(position);this.xrefstms[position]=1}position+=contentLength}else position+=token.length+1}var i,ii;for(i=0,ii=xrefStms.length;i<ii;++i){this.startXRefQueue.push(xrefStms[i]);this.readXRef(true)}var dict;for(i=0,ii=trailers.length;i<ii;++i){stream.pos=trailers[i];var parser=new Parser(new Lexer(stream),true,this);var obj=parser.getObj();if(!isCmd(obj,"trailer"))continue;if(!isDict(dict=parser.getObj()))continue; +if(dict.has("ID"))return dict}if(dict)return dict;throw new InvalidPDFException("Invalid PDF structure");},readXRef:function XRef_readXRef(recoveryMode){var stream=this.stream;try{while(this.startXRefQueue.length){var startXRef=this.startXRefQueue[0];stream.pos=startXRef+stream.start;var parser=new Parser(new Lexer(stream),true,this);var obj=parser.getObj();var dict;if(isCmd(obj,"xref")){dict=this.processXRefTable(parser);if(!this.topDict)this.topDict=dict;obj=dict.get("XRefStm");if(isInt(obj)){var pos= +obj;if(!(pos in this.xrefstms)){this.xrefstms[pos]=1;this.startXRefQueue.push(pos)}}}else if(isInt(obj)){if(!isInt(parser.getObj())||!isCmd(parser.getObj(),"obj")||!isStream(obj=parser.getObj()))error("Invalid XRef stream");dict=this.processXRefStream(obj);if(!this.topDict)this.topDict=dict;if(!dict)error("Failed to read XRef stream")}else error("Invalid XRef stream header");obj=dict.get("Prev");if(isInt(obj))this.startXRefQueue.push(obj);else if(isRef(obj))this.startXRefQueue.push(obj.num);this.startXRefQueue.shift()}return this.topDict}catch(e){if(e instanceof +MissingDataException)throw e;info("(while reading XRef): "+e)}if(recoveryMode)return;throw new XRefParseException;},getEntry:function XRef_getEntry(i){var xrefEntry=this.entries[i];if(xrefEntry&&!xrefEntry.free&&xrefEntry.offset)return xrefEntry;return null},fetchIfRef:function XRef_fetchIfRef(obj){if(!isRef(obj))return obj;return this.fetch(obj)},fetch:function XRef_fetch(ref,suppressEncryption){assert(isRef(ref),"ref object is not a reference");var num=ref.num;if(num in this.cache){var cacheEntry= +this.cache[num];return cacheEntry}var xrefEntry=this.getEntry(num);if(xrefEntry===null)return this.cache[num]=null;if(xrefEntry.uncompressed)xrefEntry=this.fetchUncompressed(ref,xrefEntry,suppressEncryption);else xrefEntry=this.fetchCompressed(xrefEntry,suppressEncryption);if(isDict(xrefEntry))xrefEntry.objId=ref.toString();else if(isStream(xrefEntry))xrefEntry.dict.objId=ref.toString();return xrefEntry},fetchUncompressed:function XRef_fetchUncompressed(ref,xrefEntry,suppressEncryption){var gen=ref.gen; +var num=ref.num;if(xrefEntry.gen!==gen)error("inconsistent generation in XRef");var stream=this.stream.makeSubStream(xrefEntry.offset+this.stream.start);var parser=new Parser(new Lexer(stream),true,this);var obj1=parser.getObj();var obj2=parser.getObj();var obj3=parser.getObj();if(!isInt(obj1)||parseInt(obj1,10)!==num||!isInt(obj2)||parseInt(obj2,10)!==gen||!isCmd(obj3))error("bad XRef entry");if(!isCmd(obj3,"obj")){if(obj3.cmd.indexOf("obj")===0){num=parseInt(obj3.cmd.substring(3),10);if(!isNaN(num))return num}error("bad XRef entry")}if(this.encrypt&& +!suppressEncryption)xrefEntry=parser.getObj(this.encrypt.createCipherTransform(num,gen));else xrefEntry=parser.getObj();if(!isStream(xrefEntry))this.cache[num]=xrefEntry;return xrefEntry},fetchCompressed:function XRef_fetchCompressed(xrefEntry,suppressEncryption){var tableOffset=xrefEntry.offset;var stream=this.fetch(new Ref(tableOffset,0));if(!isStream(stream))error("bad ObjStm stream");var first=stream.dict.get("First");var n=stream.dict.get("N");if(!isInt(first)||!isInt(n))error("invalid first and n parameters for ObjStm stream"); +var parser=new Parser(new Lexer(stream),false,this);parser.allowStreams=true;var i,entries=[],num,nums=[];for(i=0;i<n;++i){num=parser.getObj();if(!isInt(num))error("invalid object number in the ObjStm stream: "+num);nums.push(num);var offset=parser.getObj();if(!isInt(offset))error("invalid object offset in the ObjStm stream: "+offset)}for(i=0;i<n;++i){entries.push(parser.getObj());num=nums[i];var entry=this.entries[num];if(entry&&entry.offset===tableOffset&&entry.gen===i)this.cache[num]=entries[i]}xrefEntry= +entries[xrefEntry.gen];if(xrefEntry===undefined)error("bad XRef entry for compressed object");return xrefEntry},fetchIfRefAsync:function XRef_fetchIfRefAsync(obj){if(!isRef(obj))return Promise.resolve(obj);return this.fetchAsync(obj)},fetchAsync:function XRef_fetchAsync(ref,suppressEncryption){var streamManager=this.stream.manager;var xref=this;return new Promise(function tryFetch(resolve,reject){try{resolve(xref.fetch(ref,suppressEncryption))}catch(e){if(e instanceof MissingDataException){streamManager.requestRange(e.begin, +e.end,function(){tryFetch(resolve,reject)});return}reject(e)}})},getCatalogObj:function XRef_getCatalogObj(){return this.root}};return XRef}();var NameTree=function NameTreeClosure(){function NameTree(root,xref){this.root=root;this.xref=xref}NameTree.prototype={getAll:function NameTree_getAll(){var dict={};if(!this.root)return dict;var xref=this.xref;var processed=new RefSet;processed.put(this.root);var queue=[this.root];while(queue.length>0){var i,n;var obj=xref.fetchIfRef(queue.shift());if(!isDict(obj))continue; +if(obj.has("Kids")){var kids=obj.get("Kids");for(i=0,n=kids.length;i<n;i++){var kid=kids[i];if(processed.has(kid))error("invalid destinations");queue.push(kid);processed.put(kid)}continue}var names=obj.get("Names");if(names)for(i=0,n=names.length;i<n;i+=2)dict[names[i]]=xref.fetchIfRef(names[i+1])}return dict},get:function NameTree_get(destinationId){if(!this.root)return null;var xref=this.xref;var kidsOrNames=xref.fetchIfRef(this.root);var loopCount=0;var MAX_NAMES_LEVELS=10;var l,r,m;while(kidsOrNames.has("Kids")){loopCount++; +if(loopCount>MAX_NAMES_LEVELS){warn("Search depth limit for named destionations has been reached.");return null}var kids=kidsOrNames.get("Kids");if(!isArray(kids))return null;l=0;r=kids.length-1;while(l<=r){m=l+r>>1;var kid=xref.fetchIfRef(kids[m]);var limits=kid.get("Limits");if(destinationId<limits[0])r=m-1;else if(destinationId>limits[1])l=m+1;else{kidsOrNames=xref.fetchIfRef(kids[m]);break}}if(l>r)return null}var names=kidsOrNames.get("Names");if(isArray(names)){l=0;r=names.length-2;while(l<= +r){m=l+r&~1;if(destinationId<names[m])r=m-2;else if(destinationId>names[m])l=m+2;else return xref.fetchIfRef(names[m+1])}}return null}};return NameTree}();var FileSpec=function FileSpecClosure(){function FileSpec(root,xref){if(!root||!isDict(root))return;this.xref=xref;this.root=root;if(root.has("FS"))this.fs=root.get("FS");this.description=root.has("Desc")?stringToPDFString(root.get("Desc")):"";if(root.has("RF"))warn("Related file specifications are not supported");this.contentAvailable=true;if(!root.has("EF")){this.contentAvailable= +false;warn("Non-embedded file specifications are not supported")}}function pickPlatformItem(dict){if(dict.has("UF"))return dict.get("UF");else if(dict.has("F"))return dict.get("F");else if(dict.has("Unix"))return dict.get("Unix");else if(dict.has("Mac"))return dict.get("Mac");else if(dict.has("DOS"))return dict.get("DOS");else return null}FileSpec.prototype={get filename(){if(!this._filename&&this.root){var filename=pickPlatformItem(this.root)||"unnamed";this._filename=stringToPDFString(filename).replace(/\\\\/g, +"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename},get content(){if(!this.contentAvailable)return null;if(!this.contentRef&&this.root)this.contentRef=pickPlatformItem(this.root.get("EF"));var content=null;if(this.contentRef){var xref=this.xref;var fileObj=xref.fetchIfRef(this.contentRef);if(fileObj&&isStream(fileObj))content=fileObj.getBytes();else warn("Embedded file specification points to non-existing/invalid "+"content")}else warn("Embedded file specification does not have a content"); +return content},get serializable(){return{filename:this.filename,content:this.content}}};return FileSpec}();var ObjectLoader=function(){function mayHaveChildren(value){return isRef(value)||isDict(value)||isArray(value)||isStream(value)}function addChildren(node,nodesToVisit){var value;if(isDict(node)||isStream(node)){var map;if(isDict(node))map=node.map;else map=node.dict.map;for(var key in map){value=map[key];if(mayHaveChildren(value))nodesToVisit.push(value)}}else if(isArray(node))for(var i=0,ii= +node.length;i<ii;i++){value=node[i];if(mayHaveChildren(value))nodesToVisit.push(value)}}function ObjectLoader(obj,keys,xref){this.obj=obj;this.keys=keys;this.xref=xref;this.refSet=null}ObjectLoader.prototype={load:function ObjectLoader_load(){var keys=this.keys;this.capability=createPromiseCapability();if(!(this.xref.stream instanceof ChunkedStream)||this.xref.stream.getMissingChunks().length===0){this.capability.resolve();return this.capability.promise}this.refSet=new RefSet;var nodesToVisit=[]; +for(var i=0;i<keys.length;i++)nodesToVisit.push(this.obj[keys[i]]);this.walk(nodesToVisit);return this.capability.promise},walk:function ObjectLoader_walk(nodesToVisit){var nodesToRevisit=[];var pendingRequests=[];while(nodesToVisit.length){var currentNode=nodesToVisit.pop();if(isRef(currentNode)){if(this.refSet.has(currentNode))continue;try{var ref=currentNode;this.refSet.put(ref);currentNode=this.xref.fetch(currentNode)}catch(e){if(!(e instanceof MissingDataException))throw e;nodesToRevisit.push(currentNode); +pendingRequests.push({begin:e.begin,end:e.end})}}if(currentNode&¤tNode.getBaseStreams){var baseStreams=currentNode.getBaseStreams();var foundMissingData=false;for(var i=0;i<baseStreams.length;i++){var stream=baseStreams[i];if(stream.getMissingChunks&&stream.getMissingChunks().length){foundMissingData=true;pendingRequests.push({begin:stream.start,end:stream.end})}}if(foundMissingData)nodesToRevisit.push(currentNode)}addChildren(currentNode,nodesToVisit)}if(pendingRequests.length){this.xref.stream.manager.requestRanges(pendingRequests, +function pendingRequestCallback(){nodesToVisit=nodesToRevisit;for(var i=0;i<nodesToRevisit.length;i++){var node=nodesToRevisit[i];if(isRef(node))this.refSet.remove(node)}this.walk(nodesToVisit)}.bind(this));return}this.refSet=null;this.capability.resolve()}};return ObjectLoader}();var ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three", +"four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section", +"currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe", +"germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis", +"Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"];var ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior", +"twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior", +"parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall", +"figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior", +"centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall", +"Yacutesmall","Thornsmall","Ydieresissmall"];var ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior", +"esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior", +"eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"];var DEFAULT_ICON_SIZE=22;var SUPPORTED_TYPES=["Link","Text","Widget"];var Annotation=function AnnotationClosure(){function getTransformMatrix(rect,bbox,matrix){var bounds=Util.getAxialAlignedBoundingBox(bbox,matrix);var minX=bounds[0];var minY=bounds[1]; +var maxX=bounds[2];var maxY=bounds[3];if(minX===maxX||minY===maxY)return[1,0,0,1,rect[0],rect[1]];var xRatio=(rect[2]-rect[0])/(maxX-minX);var yRatio=(rect[3]-rect[1])/(maxY-minY);return[xRatio,0,0,yRatio,rect[0]-minX*xRatio,rect[1]-minY*yRatio]}function getDefaultAppearance(dict){var appearanceState=dict.get("AP");if(!isDict(appearanceState))return;var appearance;var appearances=appearanceState.get("N");if(isDict(appearances)){var as=dict.get("AS");if(as&&appearances.has(as.name))appearance=appearances.get(as.name)}else appearance= +appearances;return appearance}function Annotation(params){var dict=params.dict;var data=this.data={};data.subtype=dict.get("Subtype").name;var rect=dict.get("Rect")||[0,0,0,0];data.rect=Util.normalizeRect(rect);data.annotationFlags=dict.get("F");var color=dict.get("C");if(isArray(color)&&color.length===3)data.color=color;else data.color=[0,0,0];if(dict.has("BS")){var borderStyle=dict.get("BS");data.borderWidth=borderStyle.has("W")?borderStyle.get("W"):1}else{var borderArray=dict.get("Border")||[0, +0,1];data.borderWidth=borderArray[2]||0;var dashArray=borderArray[3];if(data.borderWidth>0&&dashArray)if(!isArray(dashArray))data.borderWidth=0;else{var dashArrayLength=dashArray.length;if(dashArrayLength>0){var isInvalid=false;var numPositive=0;for(var i=0;i<dashArrayLength;i++){var validNumber=+dashArray[i]>=0;if(!validNumber){isInvalid=true;break}else if(dashArray[i]>0)numPositive++}if(isInvalid||numPositive===0)data.borderWidth=0}}}this.appearance=getDefaultAppearance(dict);data.hasAppearance= +!!this.appearance;data.id=params.ref.num}Annotation.prototype={getData:function Annotation_getData(){return this.data},isInvisible:function Annotation_isInvisible(){var data=this.data;if(data&&SUPPORTED_TYPES.indexOf(data.subtype)!==-1)return false;else return!!(data&&data.annotationFlags&&data.annotationFlags&1)},isViewable:function Annotation_isViewable(){var data=this.data;return!!(!this.isInvisible()&&data&&(!data.annotationFlags||!(data.annotationFlags&34))&&data.rect)},isPrintable:function Annotation_isPrintable(){var data= +this.data;return!!(!this.isInvisible()&&data&&data.annotationFlags&&data.annotationFlags&4&&!(data.annotationFlags&2)&&data.rect)},loadResources:function Annotation_loadResources(keys){return new Promise(function(resolve,reject){this.appearance.dict.getAsync("Resources").then(function(resources){if(!resources){resolve();return}var objectLoader=new ObjectLoader(resources.map,keys,resources.xref);objectLoader.load().then(function(){resolve(resources)},reject)},reject)}.bind(this))},getOperatorList:function Annotation_getOperatorList(evaluator){if(!this.appearance)return Promise.resolve(new OperatorList); +var data=this.data;var appearanceDict=this.appearance.dict;var resourcesPromise=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]);var bbox=appearanceDict.get("BBox")||[0,0,1,1];var matrix=appearanceDict.get("Matrix")||[1,0,0,1,0,0];var transform=getTransformMatrix(data.rect,bbox,matrix);var self=this;return resourcesPromise.then(function(resources){var opList=new OperatorList;opList.addOp(OPS.beginAnnotation,[data.rect,transform,matrix]);return evaluator.getOperatorList(self.appearance, +resources,opList).then(function(){opList.addOp(OPS.endAnnotation,[]);self.appearance.reset();return opList})})}};Annotation.getConstructor=function Annotation_getConstructor(subtype,fieldType){if(!subtype)return;if(subtype==="Link")return LinkAnnotation;else if(subtype==="Text")return TextAnnotation;else if(subtype==="Widget"){if(!fieldType)return;if(fieldType==="Tx")return TextWidgetAnnotation;else return WidgetAnnotation}else return Annotation};Annotation.fromRef=function Annotation_fromRef(xref, +ref){var dict=xref.fetchIfRef(ref);if(!isDict(dict))return;var subtype=dict.get("Subtype");subtype=isName(subtype)?subtype.name:"";if(!subtype)return;var fieldType=Util.getInheritableProperty(dict,"FT");fieldType=isName(fieldType)?fieldType.name:"";var Constructor=Annotation.getConstructor(subtype,fieldType);if(!Constructor)return;var params={dict:dict,ref:ref};var annotation=new Constructor(params);if(annotation.isViewable()||annotation.isPrintable())return annotation;else if(SUPPORTED_TYPES.indexOf(subtype)=== +-1)warn("unimplemented annotation type: "+subtype)};Annotation.appendToOperatorList=function Annotation_appendToOperatorList(annotations,opList,pdfManager,partialEvaluator,intent){function reject(e){annotationsReadyCapability.reject(e)}var annotationsReadyCapability=createPromiseCapability();var annotationPromises=[];for(var i=0,n=annotations.length;i<n;++i)if(intent==="display"&&annotations[i].isViewable()||intent==="print"&&annotations[i].isPrintable())annotationPromises.push(annotations[i].getOperatorList(partialEvaluator)); +Promise.all(annotationPromises).then(function(datas){opList.addOp(OPS.beginAnnotations,[]);for(var i=0,n=datas.length;i<n;++i){var annotOpList=datas[i];opList.addOpList(annotOpList)}opList.addOp(OPS.endAnnotations,[]);annotationsReadyCapability.resolve()},reject);return annotationsReadyCapability.promise};return Annotation}();var WidgetAnnotation=function WidgetAnnotationClosure(){function WidgetAnnotation(params){Annotation.call(this,params);var dict=params.dict;var data=this.data;data.fieldValue= +stringToPDFString(Util.getInheritableProperty(dict,"V")||"");data.alternativeText=stringToPDFString(dict.get("TU")||"");data.defaultAppearance=Util.getInheritableProperty(dict,"DA")||"";var fieldType=Util.getInheritableProperty(dict,"FT");data.fieldType=isName(fieldType)?fieldType.name:"";data.fieldFlags=Util.getInheritableProperty(dict,"Ff")||0;this.fieldResources=Util.getInheritableProperty(dict,"DR")||Dict.empty;var fieldName=[];var namedItem=dict;var ref=params.ref;while(namedItem){var parent= +namedItem.get("Parent");var parentRef=namedItem.getRaw("Parent");var name=namedItem.get("T");if(name)fieldName.unshift(stringToPDFString(name));else{var kids=parent.get("Kids");var j,jj;for(j=0,jj=kids.length;j<jj;j++){var kidRef=kids[j];if(kidRef.num===ref.num&&kidRef.gen===ref.gen)break}fieldName.unshift("`"+j)}namedItem=parent;ref=parentRef}data.fullName=fieldName.join(".")}var parent=Annotation.prototype;Util.inherit(WidgetAnnotation,Annotation,{isViewable:function WidgetAnnotation_isViewable(){if(this.data.fieldType=== +"Sig"){warn("unimplemented annotation type: Widget signature");return false}return parent.isViewable.call(this)}});return WidgetAnnotation}();var TextWidgetAnnotation=function TextWidgetAnnotationClosure(){function TextWidgetAnnotation(params){WidgetAnnotation.call(this,params);this.data.textAlignment=Util.getInheritableProperty(params.dict,"Q");this.data.annotationType=AnnotationType.WIDGET;this.data.hasHtml=!this.data.hasAppearance&&!!this.data.fieldValue}Util.inherit(TextWidgetAnnotation,WidgetAnnotation, +{getOperatorList:function TextWidgetAnnotation_getOperatorList(evaluator){if(this.appearance)return Annotation.prototype.getOperatorList.call(this,evaluator);var opList=new OperatorList;var data=this.data;if(!data.defaultAppearance)return Promise.resolve(opList);var stream=new Stream(stringToBytes(data.defaultAppearance));return evaluator.getOperatorList(stream,this.fieldResources,opList).then(function(){return opList})}});return TextWidgetAnnotation}();var InteractiveAnnotation=function InteractiveAnnotationClosure(){function InteractiveAnnotation(params){Annotation.call(this, +params);this.data.hasHtml=true}Util.inherit(InteractiveAnnotation,Annotation,{});return InteractiveAnnotation}();var TextAnnotation=function TextAnnotationClosure(){function TextAnnotation(params){InteractiveAnnotation.call(this,params);var dict=params.dict;var data=this.data;var content=dict.get("Contents");var title=dict.get("T");data.annotationType=AnnotationType.TEXT;data.content=stringToPDFString(content||"");data.title=stringToPDFString(title||"");if(data.hasAppearance)data.name="NoIcon";else{data.rect[1]= +data.rect[3]-DEFAULT_ICON_SIZE;data.rect[2]=data.rect[0]+DEFAULT_ICON_SIZE;data.name=dict.has("Name")?dict.get("Name").name:"Note"}if(dict.has("C"))data.hasBgColor=true}Util.inherit(TextAnnotation,InteractiveAnnotation,{});return TextAnnotation}();var LinkAnnotation=function LinkAnnotationClosure(){function LinkAnnotation(params){InteractiveAnnotation.call(this,params);var dict=params.dict;var data=this.data;data.annotationType=AnnotationType.LINK;var action=dict.get("A");if(action){var linkType= +action.get("S").name;if(linkType==="URI"){var url=action.get("URI");if(isName(url))url="/"+url.name;else if(url)url=addDefaultProtocolToUrl(url);if(!isValidUrl(url,false))url="";data.url=url}else if(linkType==="GoTo")data.dest=action.get("D");else if(linkType==="GoToR"){var urlDict=action.get("F");if(isDict(urlDict))url=urlDict.get("F")||"";if(!isValidUrl(url,false))url="";data.url=url;data.dest=action.get("D")}else if(linkType==="Named")data.action=action.get("N").name;else warn("unrecognized link type: "+ +linkType)}else if(dict.has("Dest")){var dest=dict.get("Dest");data.dest=isName(dest)?dest.name:dest}}function addDefaultProtocolToUrl(url){if(url&&url.indexOf("www.")===0)return"http://"+url;return url}Util.inherit(LinkAnnotation,InteractiveAnnotation,{hasOperatorList:function LinkAnnotation_hasOperatorList(){return false}});return LinkAnnotation}();var PDFFunction=function PDFFunctionClosure(){var CONSTRUCT_SAMPLED=0;var CONSTRUCT_INTERPOLATED=2;var CONSTRUCT_STICHED=3;var CONSTRUCT_POSTSCRIPT=4; +return{getSampleArray:function PDFFunction_getSampleArray(size,outputSize,bps,str){var i,ii;var length=1;for(i=0,ii=size.length;i<ii;i++)length*=size[i];length*=outputSize;var array=new Array(length);var codeSize=0;var codeBuf=0;var sampleMul=1/(Math.pow(2,bps)-1);var strBytes=str.getBytes((length*bps+7)/8);var strIdx=0;for(i=0;i<length;i++){while(codeSize<bps){codeBuf<<=8;codeBuf|=strBytes[strIdx++];codeSize+=8}codeSize-=bps;array[i]=(codeBuf>>codeSize)*sampleMul;codeBuf&=(1<<codeSize)-1}return array}, +getIR:function PDFFunction_getIR(xref,fn){var dict=fn.dict;if(!dict)dict=fn;var types=[this.constructSampled,null,this.constructInterpolated,this.constructStiched,this.constructPostScript];var typeNum=dict.get("FunctionType");var typeFn=types[typeNum];if(!typeFn)error("Unknown type of function");return typeFn.call(this,fn,dict,xref)},fromIR:function PDFFunction_fromIR(IR){var type=IR[0];switch(type){case CONSTRUCT_SAMPLED:return this.constructSampledFromIR(IR);case CONSTRUCT_INTERPOLATED:return this.constructInterpolatedFromIR(IR); +case CONSTRUCT_STICHED:return this.constructStichedFromIR(IR);default:return this.constructPostScriptFromIR(IR)}},parse:function PDFFunction_parse(xref,fn){var IR=this.getIR(xref,fn);return this.fromIR(IR)},parseArray:function PDFFunction_parseArray(xref,fnObj){if(!isArray(fnObj))return this.parse(xref,fnObj);var fnArray=[];for(var j=0,jj=fnObj.length;j<jj;j++){var obj=xref.fetchIfRef(fnObj[j]);fnArray.push(PDFFunction.parse(xref,obj))}return function(src,srcOffset,dest,destOffset){for(var i=0,ii= +fnArray.length;i<ii;i++)fnArray[i](src,srcOffset,dest,destOffset+i)}},constructSampled:function PDFFunction_constructSampled(str,dict){function toMultiArray(arr){var inputLength=arr.length;var out=[];var index=0;for(var i=0;i<inputLength;i+=2){out[index]=[arr[i],arr[i+1]];++index}return out}var domain=dict.get("Domain");var range=dict.get("Range");if(!domain||!range)error("No domain or range");var inputSize=domain.length/2;var outputSize=range.length/2;domain=toMultiArray(domain);range=toMultiArray(range); +var size=dict.get("Size");var bps=dict.get("BitsPerSample");var order=dict.get("Order")||1;if(order!==1)info("No support for cubic spline interpolation: "+order);var encode=dict.get("Encode");if(!encode){encode=[];for(var i=0;i<inputSize;++i){encode.push(0);encode.push(size[i]-1)}}encode=toMultiArray(encode);var decode=dict.get("Decode");if(!decode)decode=range;else decode=toMultiArray(decode);var samples=this.getSampleArray(size,outputSize,bps,str);return[CONSTRUCT_SAMPLED,inputSize,domain,encode, +decode,samples,size,outputSize,Math.pow(2,bps)-1,range]},constructSampledFromIR:function PDFFunction_constructSampledFromIR(IR){function interpolate(x,xmin,xmax,ymin,ymax){return ymin+(x-xmin)*((ymax-ymin)/(xmax-xmin))}return function constructSampledFromIRResult(src,srcOffset,dest,destOffset){var m=IR[1];var domain=IR[2];var encode=IR[3];var decode=IR[4];var samples=IR[5];var size=IR[6];var n=IR[7];var range=IR[9];var cubeVertices=1<<m;var cubeN=new Float64Array(cubeVertices);var cubeVertex=new Uint32Array(cubeVertices); +var i,j;for(j=0;j<cubeVertices;j++)cubeN[j]=1;var k=n,pos=1;for(i=0;i<m;++i){var domain_2i=domain[i][0];var domain_2i_1=domain[i][1];var xi=Math.min(Math.max(src[srcOffset+i],domain_2i),domain_2i_1);var e=interpolate(xi,domain_2i,domain_2i_1,encode[i][0],encode[i][1]);var size_i=size[i];e=Math.min(Math.max(e,0),size_i-1);var e0=e<size_i-1?Math.floor(e):e-1;var n0=e0+1-e;var n1=e-e0;var offset0=e0*k;var offset1=offset0+k;for(j=0;j<cubeVertices;j++)if(j&pos){cubeN[j]*=n1;cubeVertex[j]+=offset1}else{cubeN[j]*= +n0;cubeVertex[j]+=offset0}k*=size_i;pos<<=1}for(j=0;j<n;++j){var rj=0;for(i=0;i<cubeVertices;i++)rj+=samples[cubeVertex[i]+j]*cubeN[i];rj=interpolate(rj,0,1,decode[j][0],decode[j][1]);dest[destOffset+j]=Math.min(Math.max(rj,range[j][0]),range[j][1])}}},constructInterpolated:function PDFFunction_constructInterpolated(str,dict){var c0=dict.get("C0")||[0];var c1=dict.get("C1")||[1];var n=dict.get("N");if(!isArray(c0)||!isArray(c1))error("Illegal dictionary for interpolated function");var length=c0.length; +var diff=[];for(var i=0;i<length;++i)diff.push(c1[i]-c0[i]);return[CONSTRUCT_INTERPOLATED,c0,diff,n]},constructInterpolatedFromIR:function PDFFunction_constructInterpolatedFromIR(IR){var c0=IR[1];var diff=IR[2];var n=IR[3];var length=diff.length;return function constructInterpolatedFromIRResult(src,srcOffset,dest,destOffset){var x=n===1?src[srcOffset]:Math.pow(src[srcOffset],n);for(var j=0;j<length;++j)dest[destOffset+j]=c0[j]+x*diff[j]}},constructStiched:function PDFFunction_constructStiched(fn, +dict,xref){var domain=dict.get("Domain");if(!domain)error("No domain");var inputSize=domain.length/2;if(inputSize!==1)error("Bad domain for stiched function");var fnRefs=dict.get("Functions");var fns=[];for(var i=0,ii=fnRefs.length;i<ii;++i)fns.push(PDFFunction.getIR(xref,xref.fetchIfRef(fnRefs[i])));var bounds=dict.get("Bounds");var encode=dict.get("Encode");return[CONSTRUCT_STICHED,domain,bounds,encode,fns]},constructStichedFromIR:function PDFFunction_constructStichedFromIR(IR){var domain=IR[1]; +var bounds=IR[2];var encode=IR[3];var fnsIR=IR[4];var fns=[];var tmpBuf=new Float32Array(1);for(var i=0,ii=fnsIR.length;i<ii;i++)fns.push(PDFFunction.fromIR(fnsIR[i]));return function constructStichedFromIRResult(src,srcOffset,dest,destOffset){var clip=function constructStichedFromIRClip(v,min,max){if(v>max)v=max;else if(v<min)v=min;return v};var v=clip(src[srcOffset],domain[0],domain[1]);for(var i=0,ii=bounds.length;i<ii;++i)if(v<bounds[i])break;var dmin=domain[0];if(i>0)dmin=bounds[i-1];var dmax= +domain[1];if(i<bounds.length)dmax=bounds[i];var rmin=encode[2*i];var rmax=encode[2*i+1];tmpBuf[0]=rmin+(v-dmin)*(rmax-rmin)/(dmax-dmin);fns[i](tmpBuf,0,dest,destOffset)}},constructPostScript:function PDFFunction_constructPostScript(fn,dict,xref){var domain=dict.get("Domain");var range=dict.get("Range");if(!domain)error("No domain.");if(!range)error("No range.");var lexer=new PostScriptLexer(fn);var parser=new PostScriptParser(lexer);var code=parser.parse();return[CONSTRUCT_POSTSCRIPT,domain,range, +code]},constructPostScriptFromIR:function PDFFunction_constructPostScriptFromIR(IR){var domain=IR[1];var range=IR[2];var code=IR[3];var compiled=(new PostScriptCompiler).compile(code,domain,range);if(compiled)return new Function("src","srcOffset","dest","destOffset",compiled);info("Unable to compile PS function");var numOutputs=range.length>>1;var numInputs=domain.length>>1;var evaluator=new PostScriptEvaluator(code);var cache={};var MAX_CACHE_SIZE=2048*4;var cache_available=MAX_CACHE_SIZE;var tmpBuf= +new Float32Array(numInputs);return function constructPostScriptFromIRResult(src,srcOffset,dest,destOffset){var i,value;var key="";var input=tmpBuf;for(i=0;i<numInputs;i++){value=src[srcOffset+i];input[i]=value;key+=value+"_"}var cachedValue=cache[key];if(cachedValue!==undefined){cachedValue.set(dest,destOffset);return}var output=new Float32Array(numOutputs);var stack=evaluator.execute(input);var stackIndex=stack.length-numOutputs;for(i=0;i<numOutputs;i++){value=stack[stackIndex+i];var bound=range[i* +2];if(value<bound)value=bound;else{bound=range[i*2+1];if(value>bound)value=bound}output[i]=value}if(cache_available>0){cache_available--;cache[key]=output}output.set(dest,destOffset)}}}}();function isPDFFunction(v){var fnDict;if(typeof v!=="object")return false;else if(isDict(v))fnDict=v;else if(isStream(v))fnDict=v.dict;else return false;return fnDict.has("FunctionType")}var PostScriptStack=function PostScriptStackClosure(){var MAX_STACK_SIZE=100;function PostScriptStack(initialStack){this.stack= +!initialStack?[]:Array.prototype.slice.call(initialStack,0)}PostScriptStack.prototype={push:function PostScriptStack_push(value){if(this.stack.length>=MAX_STACK_SIZE)error("PostScript function stack overflow.");this.stack.push(value)},pop:function PostScriptStack_pop(){if(this.stack.length<=0)error("PostScript function stack underflow.");return this.stack.pop()},copy:function PostScriptStack_copy(n){if(this.stack.length+n>=MAX_STACK_SIZE)error("PostScript function stack overflow.");var stack=this.stack; +for(var i=stack.length-n,j=n-1;j>=0;j--,i++)stack.push(stack[i])},index:function PostScriptStack_index(n){this.push(this.stack[this.stack.length-n-1])},roll:function PostScriptStack_roll(n,p){var stack=this.stack;var l=stack.length-n;var r=stack.length-1,c=l+(p-Math.floor(p/n)*n),i,j,t;for(i=l,j=r;i<j;i++,j--){t=stack[i];stack[i]=stack[j];stack[j]=t}for(i=l,j=c-1;i<j;i++,j--){t=stack[i];stack[i]=stack[j];stack[j]=t}for(i=c,j=r;i<j;i++,j--){t=stack[i];stack[i]=stack[j];stack[j]=t}}};return PostScriptStack}(); +var PostScriptEvaluator=function PostScriptEvaluatorClosure(){function PostScriptEvaluator(operators){this.operators=operators}PostScriptEvaluator.prototype={execute:function PostScriptEvaluator_execute(initialStack){var stack=new PostScriptStack(initialStack);var counter=0;var operators=this.operators;var length=operators.length;var operator,a,b;while(counter<length){operator=operators[counter++];if(typeof operator==="number"){stack.push(operator);continue}switch(operator){case "jz":b=stack.pop(); +a=stack.pop();if(!a)counter=b;break;case "j":a=stack.pop();counter=a;break;case "abs":a=stack.pop();stack.push(Math.abs(a));break;case "add":b=stack.pop();a=stack.pop();stack.push(a+b);break;case "and":b=stack.pop();a=stack.pop();if(isBool(a)&&isBool(b))stack.push(a&&b);else stack.push(a&b);break;case "atan":a=stack.pop();stack.push(Math.atan(a));break;case "bitshift":b=stack.pop();a=stack.pop();if(a>0)stack.push(a<<b);else stack.push(a>>b);break;case "ceiling":a=stack.pop();stack.push(Math.ceil(a)); +break;case "copy":a=stack.pop();stack.copy(a);break;case "cos":a=stack.pop();stack.push(Math.cos(a));break;case "cvi":a=stack.pop()|0;stack.push(a);break;case "cvr":break;case "div":b=stack.pop();a=stack.pop();stack.push(a/b);break;case "dup":stack.copy(1);break;case "eq":b=stack.pop();a=stack.pop();stack.push(a===b);break;case "exch":stack.roll(2,1);break;case "exp":b=stack.pop();a=stack.pop();stack.push(Math.pow(a,b));break;case "false":stack.push(false);break;case "floor":a=stack.pop();stack.push(Math.floor(a)); +break;case "ge":b=stack.pop();a=stack.pop();stack.push(a>=b);break;case "gt":b=stack.pop();a=stack.pop();stack.push(a>b);break;case "idiv":b=stack.pop();a=stack.pop();stack.push(a/b|0);break;case "index":a=stack.pop();stack.index(a);break;case "le":b=stack.pop();a=stack.pop();stack.push(a<=b);break;case "ln":a=stack.pop();stack.push(Math.log(a));break;case "log":a=stack.pop();stack.push(Math.log(a)/Math.LN10);break;case "lt":b=stack.pop();a=stack.pop();stack.push(a<b);break;case "mod":b=stack.pop(); +a=stack.pop();stack.push(a%b);break;case "mul":b=stack.pop();a=stack.pop();stack.push(a*b);break;case "ne":b=stack.pop();a=stack.pop();stack.push(a!==b);break;case "neg":a=stack.pop();stack.push(-a);break;case "not":a=stack.pop();if(isBool(a))stack.push(!a);else stack.push(~a);break;case "or":b=stack.pop();a=stack.pop();if(isBool(a)&&isBool(b))stack.push(a||b);else stack.push(a|b);break;case "pop":stack.pop();break;case "roll":b=stack.pop();a=stack.pop();stack.roll(a,b);break;case "round":a=stack.pop(); +stack.push(Math.round(a));break;case "sin":a=stack.pop();stack.push(Math.sin(a));break;case "sqrt":a=stack.pop();stack.push(Math.sqrt(a));break;case "sub":b=stack.pop();a=stack.pop();stack.push(a-b);break;case "true":stack.push(true);break;case "truncate":a=stack.pop();a=a<0?Math.ceil(a):Math.floor(a);stack.push(a);break;case "xor":b=stack.pop();a=stack.pop();if(isBool(a)&&isBool(b))stack.push(a!==b);else stack.push(a^b);break;default:error("Unknown operator "+operator);break}}return stack.stack}}; +return PostScriptEvaluator}();var PostScriptCompiler=function PostScriptCompilerClosure(){function AstNode(type){this.type=type}AstNode.prototype.visit=function(visitor){throw new Error("abstract method");};function AstArgument(index,min,max){AstNode.call(this,"args");this.index=index;this.min=min;this.max=max}AstArgument.prototype=Object.create(AstNode.prototype);AstArgument.prototype.visit=function(visitor){visitor.visitArgument(this)};function AstLiteral(number){AstNode.call(this,"literal");this.number= +number;this.min=number;this.max=number}AstLiteral.prototype=Object.create(AstNode.prototype);AstLiteral.prototype.visit=function(visitor){visitor.visitLiteral(this)};function AstBinaryOperation(op,arg1,arg2,min,max){AstNode.call(this,"binary");this.op=op;this.arg1=arg1;this.arg2=arg2;this.min=min;this.max=max}AstBinaryOperation.prototype=Object.create(AstNode.prototype);AstBinaryOperation.prototype.visit=function(visitor){visitor.visitBinaryOperation(this)};function AstMin(arg,max){AstNode.call(this, +"max");this.arg=arg;this.min=arg.min;this.max=max}AstMin.prototype=Object.create(AstNode.prototype);AstMin.prototype.visit=function(visitor){visitor.visitMin(this)};function AstVariable(index,min,max){AstNode.call(this,"var");this.index=index;this.min=min;this.max=max}AstVariable.prototype=Object.create(AstNode.prototype);AstVariable.prototype.visit=function(visitor){visitor.visitVariable(this)};function AstVariableDefinition(variable,arg){AstNode.call(this,"definition");this.variable=variable;this.arg= +arg}AstVariableDefinition.prototype=Object.create(AstNode.prototype);AstVariableDefinition.prototype.visit=function(visitor){visitor.visitVariableDefinition(this)};function ExpressionBuilderVisitor(){this.parts=[]}ExpressionBuilderVisitor.prototype={visitArgument:function(arg){this.parts.push("Math.max(",arg.min,", Math.min(",arg.max,", src[srcOffset + ",arg.index,"]))")},visitVariable:function(variable){this.parts.push("v",variable.index)},visitLiteral:function(literal){this.parts.push(literal.number)}, +visitBinaryOperation:function(operation){this.parts.push("(");operation.arg1.visit(this);this.parts.push(" ",operation.op," ");operation.arg2.visit(this);this.parts.push(")")},visitVariableDefinition:function(definition){this.parts.push("var ");definition.variable.visit(this);this.parts.push(" = ");definition.arg.visit(this);this.parts.push(";")},visitMin:function(max){this.parts.push("Math.min(");max.arg.visit(this);this.parts.push(", ",max.max,")")},toString:function(){return this.parts.join("")}}; +function buildAddOperation(num1,num2){if(num2.type==="literal"&&num2.number===0)return num1;if(num1.type==="literal"&&num1.number===0)return num2;if(num2.type==="literal"&&num1.type==="literal")return new AstLiteral(num1.number+num2.number);return new AstBinaryOperation("+",num1,num2,num1.min+num2.min,num1.max+num2.max)}function buildMulOperation(num1,num2){if(num2.type==="literal")if(num2.number===0)return new AstLiteral(0);else if(num2.number===1)return num1;else if(num1.type==="literal")return new AstLiteral(num1.number* +num2.number);if(num1.type==="literal")if(num1.number===0)return new AstLiteral(0);else if(num1.number===1)return num2;var min=Math.min(num1.min*num2.min,num1.min*num2.max,num1.max*num2.min,num1.max*num2.max);var max=Math.max(num1.min*num2.min,num1.min*num2.max,num1.max*num2.min,num1.max*num2.max);return new AstBinaryOperation("*",num1,num2,min,max)}function buildSubOperation(num1,num2){if(num2.type==="literal")if(num2.number===0)return num1;else if(num1.type==="literal")return new AstLiteral(num1.number- +num2.number);if(num2.type==="binary"&&num2.op==="-"&&num1.type==="literal"&&num1.number===1&&num2.arg1.type==="literal"&&num2.arg1.number===1)return num2.arg2;return new AstBinaryOperation("-",num1,num2,num1.min-num2.max,num1.max-num2.min)}function buildMinOperation(num1,max){if(num1.min>=max)return new AstLiteral(max);else if(num1.max<=max)return num1;return new AstMin(num1,max)}function PostScriptCompiler(){}PostScriptCompiler.prototype={compile:function PostScriptCompiler_compile(code,domain,range){var stack= +[];var i,ii;var instructions=[];var inputSize=domain.length>>1,outputSize=range.length>>1;var lastRegister=0;var n,j,min,max;var num1,num2,ast1,ast2,tmpVar,item;for(i=0;i<inputSize;i++)stack.push(new AstArgument(i,domain[i*2],domain[i*2+1]));for(i=0,ii=code.length;i<ii;i++){item=code[i];if(typeof item==="number"){stack.push(new AstLiteral(item));continue}switch(item){case "add":if(stack.length<2)return null;num2=stack.pop();num1=stack.pop();stack.push(buildAddOperation(num1,num2));break;case "cvr":if(stack.length< +1)return null;break;case "mul":if(stack.length<2)return null;num2=stack.pop();num1=stack.pop();stack.push(buildMulOperation(num1,num2));break;case "sub":if(stack.length<2)return null;num2=stack.pop();num1=stack.pop();stack.push(buildSubOperation(num1,num2));break;case "exch":if(stack.length<2)return null;ast1=stack.pop();ast2=stack.pop();stack.push(ast1,ast2);break;case "pop":if(stack.length<1)return null;stack.pop();break;case "index":if(stack.length<1)return null;num1=stack.pop();if(num1.type!== +"literal")return null;n=num1.number;if(n<0||(n|0)!==n||stack.length<n)return null;ast1=stack[stack.length-n-1];if(ast1.type==="literal"||ast1.type==="var"){stack.push(ast1);break}tmpVar=new AstVariable(lastRegister++,ast1.min,ast1.max);stack[stack.length-n-1]=tmpVar;stack.push(tmpVar);instructions.push(new AstVariableDefinition(tmpVar,ast1));break;case "dup":if(stack.length<1)return null;if(typeof code[i+1]==="number"&&code[i+2]==="gt"&&code[i+3]===i+7&&code[i+4]==="jz"&&code[i+5]==="pop"&&code[i+ +6]===code[i+1]){num1=stack.pop();stack.push(buildMinOperation(num1,code[i+1]));i+=6;break}ast1=stack[stack.length-1];if(ast1.type==="literal"||ast1.type==="var"){stack.push(ast1);break}tmpVar=new AstVariable(lastRegister++,ast1.min,ast1.max);stack[stack.length-1]=tmpVar;stack.push(tmpVar);instructions.push(new AstVariableDefinition(tmpVar,ast1));break;case "roll":if(stack.length<2)return null;num2=stack.pop();num1=stack.pop();if(num2.type!=="literal"||num1.type!=="literal")return null;j=num2.number; +n=num1.number;if(n<=0||(n|0)!==n||(j|0)!==j||stack.length<n)return null;j=(j%n+n)%n;if(j===0)break;Array.prototype.push.apply(stack,stack.splice(stack.length-n,n-j));break;default:return null}}if(stack.length!==outputSize)return null;var result=[];instructions.forEach(function(instruction){var statementBuilder=new ExpressionBuilderVisitor;instruction.visit(statementBuilder);result.push(statementBuilder.toString())});stack.forEach(function(expr,i){var statementBuilder=new ExpressionBuilderVisitor; +expr.visit(statementBuilder);var min=range[i*2],max=range[i*2+1];var out=[statementBuilder.toString()];if(min>expr.min){out.unshift("Math.max(",min,", ");out.push(")")}if(max<expr.max){out.unshift("Math.min(",max,", ");out.push(")")}out.unshift("dest[destOffset + ",i,"] = ");out.push(";");result.push(out.join(""))});return result.join("\n")}};return PostScriptCompiler}();var ColorSpace=function ColorSpaceClosure(){function ColorSpace(){error("should not call ColorSpace constructor")}ColorSpace.prototype= +{getRgb:function ColorSpace_getRgb(src,srcOffset){var rgb=new Uint8Array(3);this.getRgbItem(src,srcOffset,rgb,0);return rgb},getRgbItem:function ColorSpace_getRgbItem(src,srcOffset,dest,destOffset){error("Should not call ColorSpace.getRgbItem")},getRgbBuffer:function ColorSpace_getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){error("Should not call ColorSpace.getRgbBuffer")},getOutputLength:function ColorSpace_getOutputLength(inputLength,alpha01){error("Should not call ColorSpace.getOutputLength")}, +isPassthrough:function ColorSpace_isPassthrough(bits){return false},fillRgb:function ColorSpace_fillRgb(dest,originalWidth,originalHeight,width,height,actualHeight,bpc,comps,alpha01){var count=originalWidth*originalHeight;var rgbBuf=null;var numComponentColors=1<<bpc;var needsResizing=originalHeight!==height||originalWidth!==width;var i,ii;if(this.isPassthrough(bpc))rgbBuf=comps;else if(this.numComps===1&&count>numComponentColors&&this.name!=="DeviceGray"&&this.name!=="DeviceRGB"){var allColors=bpc<= +8?new Uint8Array(numComponentColors):new Uint16Array(numComponentColors);var key;for(i=0;i<numComponentColors;i++)allColors[i]=i;var colorMap=new Uint8Array(numComponentColors*3);this.getRgbBuffer(allColors,0,numComponentColors,colorMap,0,bpc,0);var destPos,rgbPos;if(!needsResizing){destPos=0;for(i=0;i<count;++i){key=comps[i]*3;dest[destPos++]=colorMap[key];dest[destPos++]=colorMap[key+1];dest[destPos++]=colorMap[key+2];destPos+=alpha01}}else{rgbBuf=new Uint8Array(count*3);rgbPos=0;for(i=0;i<count;++i){key= +comps[i]*3;rgbBuf[rgbPos++]=colorMap[key];rgbBuf[rgbPos++]=colorMap[key+1];rgbBuf[rgbPos++]=colorMap[key+2]}}}else if(!needsResizing)this.getRgbBuffer(comps,0,width*actualHeight,dest,0,bpc,alpha01);else{rgbBuf=new Uint8Array(count*3);this.getRgbBuffer(comps,0,count,rgbBuf,0,bpc,0)}if(rgbBuf)if(needsResizing)PDFImage.resize(rgbBuf,bpc,3,originalWidth,originalHeight,width,height,dest,alpha01);else{rgbPos=0;destPos=0;for(i=0,ii=width*actualHeight;i<ii;i++){dest[destPos++]=rgbBuf[rgbPos++];dest[destPos++]= +rgbBuf[rgbPos++];dest[destPos++]=rgbBuf[rgbPos++];destPos+=alpha01}}},usesZeroToOneRange:true};ColorSpace.parse=function ColorSpace_parse(cs,xref,res){var IR=ColorSpace.parseToIR(cs,xref,res);if(IR instanceof AlternateCS)return IR;return ColorSpace.fromIR(IR)};ColorSpace.fromIR=function ColorSpace_fromIR(IR){var name=isArray(IR)?IR[0]:IR;var whitePoint,blackPoint,gamma;switch(name){case "DeviceGrayCS":return this.singletons.gray;case "DeviceRgbCS":return this.singletons.rgb;case "DeviceCmykCS":return this.singletons.cmyk; +case "CalGrayCS":whitePoint=IR[1].WhitePoint;blackPoint=IR[1].BlackPoint;gamma=IR[1].Gamma;return new CalGrayCS(whitePoint,blackPoint,gamma);case "CalRGBCS":whitePoint=IR[1].WhitePoint;blackPoint=IR[1].BlackPoint;gamma=IR[1].Gamma;var matrix=IR[1].Matrix;return new CalRGBCS(whitePoint,blackPoint,gamma,matrix);case "PatternCS":var basePatternCS=IR[1];if(basePatternCS)basePatternCS=ColorSpace.fromIR(basePatternCS);return new PatternCS(basePatternCS);case "IndexedCS":var baseIndexedCS=IR[1];var hiVal= +IR[2];var lookup=IR[3];return new IndexedCS(ColorSpace.fromIR(baseIndexedCS),hiVal,lookup);case "AlternateCS":var numComps=IR[1];var alt=IR[2];var tintFnIR=IR[3];return new AlternateCS(numComps,ColorSpace.fromIR(alt),PDFFunction.fromIR(tintFnIR));case "LabCS":whitePoint=IR[1].WhitePoint;blackPoint=IR[1].BlackPoint;var range=IR[1].Range;return new LabCS(whitePoint,blackPoint,range);default:error("Unknown name "+name)}return null};ColorSpace.parseToIR=function ColorSpace_parseToIR(cs,xref,res){if(isName(cs)){var colorSpaces= +res.get("ColorSpace");if(isDict(colorSpaces)){var refcs=colorSpaces.get(cs.name);if(refcs)cs=refcs}}cs=xref.fetchIfRef(cs);var mode;if(isName(cs)){mode=cs.name;this.mode=mode;switch(mode){case "DeviceGray":case "G":return"DeviceGrayCS";case "DeviceRGB":case "RGB":return"DeviceRgbCS";case "DeviceCMYK":case "CMYK":return"DeviceCmykCS";case "Pattern":return["PatternCS",null];default:error("unrecognized colorspace "+mode)}}else if(isArray(cs)){mode=cs[0].name;this.mode=mode;var numComps,params;switch(mode){case "DeviceGray":case "G":return"DeviceGrayCS"; +case "DeviceRGB":case "RGB":return"DeviceRgbCS";case "DeviceCMYK":case "CMYK":return"DeviceCmykCS";case "CalGray":params=cs[1].getAll();return["CalGrayCS",params];case "CalRGB":params=cs[1].getAll();return["CalRGBCS",params];case "ICCBased":var stream=xref.fetchIfRef(cs[1]);var dict=stream.dict;numComps=dict.get("N");if(numComps===1)return"DeviceGrayCS";else if(numComps===3)return"DeviceRgbCS";else if(numComps===4)return"DeviceCmykCS";break;case "Pattern":var basePatternCS=cs[1];if(basePatternCS)basePatternCS= +ColorSpace.parseToIR(basePatternCS,xref,res);return["PatternCS",basePatternCS];case "Indexed":case "I":var baseIndexedCS=ColorSpace.parseToIR(cs[1],xref,res);var hiVal=cs[2]+1;var lookup=xref.fetchIfRef(cs[3]);if(isStream(lookup))lookup=lookup.getBytes();return["IndexedCS",baseIndexedCS,hiVal,lookup];case "Separation":case "DeviceN":var name=cs[1];numComps=1;if(isName(name))numComps=1;else if(isArray(name))numComps=name.length;var alt=ColorSpace.parseToIR(cs[2],xref,res);var tintFnIR=PDFFunction.getIR(xref, +xref.fetchIfRef(cs[3]));return["AlternateCS",numComps,alt,tintFnIR];case "Lab":params=cs[1].getAll();return["LabCS",params];default:error('unimplemented color space object "'+mode+'"')}}else error('unrecognized color space object: "'+cs+'"');return null};ColorSpace.isDefaultDecode=function ColorSpace_isDefaultDecode(decode,n){if(!decode)return true;if(n*2!==decode.length){warn("The decode map is not the correct length");return true}for(var i=0,ii=decode.length;i<ii;i+=2)if(decode[i]!==0||decode[i+ +1]!==1)return false;return true};ColorSpace.singletons={get gray(){return shadow(this,"gray",new DeviceGrayCS)},get rgb(){return shadow(this,"rgb",new DeviceRgbCS)},get cmyk(){return shadow(this,"cmyk",new DeviceCmykCS)}};return ColorSpace}();var AlternateCS=function AlternateCSClosure(){function AlternateCS(numComps,base,tintFn){this.name="Alternate";this.numComps=numComps;this.defaultColor=new Float32Array(numComps);for(var i=0;i<numComps;++i)this.defaultColor[i]=1;this.base=base;this.tintFn=tintFn; +this.tmpBuf=new Float32Array(base.numComps)}AlternateCS.prototype={getRgb:ColorSpace.prototype.getRgb,getRgbItem:function AlternateCS_getRgbItem(src,srcOffset,dest,destOffset){var tmpBuf=this.tmpBuf;this.tintFn(src,srcOffset,tmpBuf,0);this.base.getRgbItem(tmpBuf,0,dest,destOffset)},getRgbBuffer:function AlternateCS_getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var tintFn=this.tintFn;var base=this.base;var scale=1/((1<<bits)-1);var baseNumComps=base.numComps;var usesZeroToOneRange= +base.usesZeroToOneRange;var isPassthrough=(base.isPassthrough(8)||!usesZeroToOneRange)&&alpha01===0;var pos=isPassthrough?destOffset:0;var baseBuf=isPassthrough?dest:new Uint8Array(baseNumComps*count);var numComps=this.numComps;var scaled=new Float32Array(numComps);var tinted=new Float32Array(baseNumComps);var i,j;if(usesZeroToOneRange)for(i=0;i<count;i++){for(j=0;j<numComps;j++)scaled[j]=src[srcOffset++]*scale;tintFn(scaled,0,tinted,0);for(j=0;j<baseNumComps;j++)baseBuf[pos++]=tinted[j]*255}else for(i= +0;i<count;i++){for(j=0;j<numComps;j++)scaled[j]=src[srcOffset++]*scale;tintFn(scaled,0,tinted,0);base.getRgbItem(tinted,0,baseBuf,pos);pos+=baseNumComps}if(!isPassthrough)base.getRgbBuffer(baseBuf,0,count,dest,destOffset,8,alpha01)},getOutputLength:function AlternateCS_getOutputLength(inputLength,alpha01){return this.base.getOutputLength(inputLength*this.base.numComps/this.numComps,alpha01)},isPassthrough:ColorSpace.prototype.isPassthrough,fillRgb:ColorSpace.prototype.fillRgb,isDefaultDecode:function AlternateCS_isDefaultDecode(decodeMap){return ColorSpace.isDefaultDecode(decodeMap, +this.numComps)},usesZeroToOneRange:true};return AlternateCS}();var PatternCS=function PatternCSClosure(){function PatternCS(baseCS){this.name="Pattern";this.base=baseCS}PatternCS.prototype={};return PatternCS}();var IndexedCS=function IndexedCSClosure(){function IndexedCS(base,highVal,lookup){this.name="Indexed";this.numComps=1;this.defaultColor=new Uint8Array([0]);this.base=base;this.highVal=highVal;var baseNumComps=base.numComps;var length=baseNumComps*highVal;var lookupArray;if(isStream(lookup)){lookupArray= +new Uint8Array(length);var bytes=lookup.getBytes(length);lookupArray.set(bytes)}else if(isString(lookup)){lookupArray=new Uint8Array(length);for(var i=0;i<length;++i)lookupArray[i]=lookup.charCodeAt(i)}else if(lookup instanceof Uint8Array||lookup instanceof Array)lookupArray=lookup;else error("Unrecognized lookup table: "+lookup);this.lookup=lookupArray}IndexedCS.prototype={getRgb:ColorSpace.prototype.getRgb,getRgbItem:function IndexedCS_getRgbItem(src,srcOffset,dest,destOffset){var numComps=this.base.numComps; +var start=src[srcOffset]*numComps;this.base.getRgbItem(this.lookup,start,dest,destOffset)},getRgbBuffer:function IndexedCS_getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var base=this.base;var numComps=base.numComps;var outputDelta=base.getOutputLength(numComps,alpha01);var lookup=this.lookup;for(var i=0;i<count;++i){var lookupPos=src[srcOffset++]*numComps;base.getRgbBuffer(lookup,lookupPos,1,dest,destOffset,8,alpha01);destOffset+=outputDelta}},getOutputLength:function IndexedCS_getOutputLength(inputLength, +alpha01){return this.base.getOutputLength(inputLength*this.base.numComps,alpha01)},isPassthrough:ColorSpace.prototype.isPassthrough,fillRgb:ColorSpace.prototype.fillRgb,isDefaultDecode:function IndexedCS_isDefaultDecode(decodeMap){return true},usesZeroToOneRange:true};return IndexedCS}();var DeviceGrayCS=function DeviceGrayCSClosure(){function DeviceGrayCS(){this.name="DeviceGray";this.numComps=1;this.defaultColor=new Float32Array([0])}DeviceGrayCS.prototype={getRgb:ColorSpace.prototype.getRgb,getRgbItem:function DeviceGrayCS_getRgbItem(src, +srcOffset,dest,destOffset){var c=src[srcOffset]*255|0;c=c<0?0:c>255?255:c;dest[destOffset]=dest[destOffset+1]=dest[destOffset+2]=c},getRgbBuffer:function DeviceGrayCS_getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var scale=255/((1<<bits)-1);var j=srcOffset,q=destOffset;for(var i=0;i<count;++i){var c=scale*src[j++]|0;dest[q++]=c;dest[q++]=c;dest[q++]=c;q+=alpha01}},getOutputLength:function DeviceGrayCS_getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)},isPassthrough:ColorSpace.prototype.isPassthrough, +fillRgb:ColorSpace.prototype.fillRgb,isDefaultDecode:function DeviceGrayCS_isDefaultDecode(decodeMap){return ColorSpace.isDefaultDecode(decodeMap,this.numComps)},usesZeroToOneRange:true};return DeviceGrayCS}();var DeviceRgbCS=function DeviceRgbCSClosure(){function DeviceRgbCS(){this.name="DeviceRGB";this.numComps=3;this.defaultColor=new Float32Array([0,0,0])}DeviceRgbCS.prototype={getRgb:ColorSpace.prototype.getRgb,getRgbItem:function DeviceRgbCS_getRgbItem(src,srcOffset,dest,destOffset){var r=src[srcOffset]* +255|0;var g=src[srcOffset+1]*255|0;var b=src[srcOffset+2]*255|0;dest[destOffset]=r<0?0:r>255?255:r;dest[destOffset+1]=g<0?0:g>255?255:g;dest[destOffset+2]=b<0?0:b>255?255:b},getRgbBuffer:function DeviceRgbCS_getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){if(bits===8&&alpha01===0){dest.set(src.subarray(srcOffset,srcOffset+count*3),destOffset);return}var scale=255/((1<<bits)-1);var j=srcOffset,q=destOffset;for(var i=0;i<count;++i){dest[q++]=scale*src[j++]|0;dest[q++]=scale*src[j++]| +0;dest[q++]=scale*src[j++]|0;q+=alpha01}},getOutputLength:function DeviceRgbCS_getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)/3|0},isPassthrough:function DeviceRgbCS_isPassthrough(bits){return bits===8},fillRgb:ColorSpace.prototype.fillRgb,isDefaultDecode:function DeviceRgbCS_isDefaultDecode(decodeMap){return ColorSpace.isDefaultDecode(decodeMap,this.numComps)},usesZeroToOneRange:true};return DeviceRgbCS}();var DeviceCmykCS=function DeviceCmykCSClosure(){function convertToRgb(src, +srcOffset,srcScale,dest,destOffset){var c=src[srcOffset+0]*srcScale;var m=src[srcOffset+1]*srcScale;var y=src[srcOffset+2]*srcScale;var k=src[srcOffset+3]*srcScale;var r=c*(-4.387332384609988*c+54.48615194189176*m+18.82290502165302*y+212.25662451639585*k+-285.2331026137004)+m*(1.7149763477362134*m-5.6096736904047315*y+-17.873870861415444*k-5.497006427196366)+y*(-2.5217340131683033*y-21.248923337353073*k+17.5119270841813)+k*(-21.86122147463605*k-189.48180835922747)+255|0;var g=c*(8.841041422036149* +c+60.118027045597366*m+6.871425592049007*y+31.159100130055922*k+-79.2970844816548)+m*(-15.310361306967817*m+17.575251261109482*y+131.35250912493976*k-190.9453302588951)+y*(4.444339102852739*y+9.8632861493405*k-24.86741582555878)+k*(-20.737325471181034*k-187.80453709719578)+255|0;var b=c*(.8842522430003296*c+8.078677503112928*m+30.89978309703729*y-.23883238689178934*k+-14.183576799673286)+m*(10.49593273432072*m+63.02378494754052*y+50.606957656360734*k-112.23884253719248)+y*(.03296041114873217*y+115.60384449646641* +k+-193.58209356861505)+k*(-22.33816807309886*k-180.12613974708367)+255|0;dest[destOffset]=r>255?255:r<0?0:r;dest[destOffset+1]=g>255?255:g<0?0:g;dest[destOffset+2]=b>255?255:b<0?0:b}function DeviceCmykCS(){this.name="DeviceCMYK";this.numComps=4;this.defaultColor=new Float32Array([0,0,0,1])}DeviceCmykCS.prototype={getRgb:ColorSpace.prototype.getRgb,getRgbItem:function DeviceCmykCS_getRgbItem(src,srcOffset,dest,destOffset){convertToRgb(src,srcOffset,1,dest,destOffset)},getRgbBuffer:function DeviceCmykCS_getRgbBuffer(src, +srcOffset,count,dest,destOffset,bits,alpha01){var scale=1/((1<<bits)-1);for(var i=0;i<count;i++){convertToRgb(src,srcOffset,scale,dest,destOffset);srcOffset+=4;destOffset+=3+alpha01}},getOutputLength:function DeviceCmykCS_getOutputLength(inputLength,alpha01){return inputLength/4*(3+alpha01)|0},isPassthrough:ColorSpace.prototype.isPassthrough,fillRgb:ColorSpace.prototype.fillRgb,isDefaultDecode:function DeviceCmykCS_isDefaultDecode(decodeMap){return ColorSpace.isDefaultDecode(decodeMap,this.numComps)}, +usesZeroToOneRange:true};return DeviceCmykCS}();var CalGrayCS=function CalGrayCSClosure(){function CalGrayCS(whitePoint,blackPoint,gamma){this.name="CalGray";this.numComps=1;this.defaultColor=new Float32Array([0]);if(!whitePoint)error("WhitePoint missing - required for color space CalGray");blackPoint=blackPoint||[0,0,0];gamma=gamma||1;this.XW=whitePoint[0];this.YW=whitePoint[1];this.ZW=whitePoint[2];this.XB=blackPoint[0];this.YB=blackPoint[1];this.ZB=blackPoint[2];this.G=gamma;if(this.XW<0||this.ZW< +0||this.YW!==1)error("Invalid WhitePoint components for "+this.name+", no fallback available");if(this.XB<0||this.YB<0||this.ZB<0){info("Invalid BlackPoint for "+this.name+", falling back to default");this.XB=this.YB=this.ZB=0}if(this.XB!==0||this.YB!==0||this.ZB!==0)warn(this.name+", BlackPoint: XB: "+this.XB+", YB: "+this.YB+", ZB: "+this.ZB+", only default values are supported.");if(this.G<1){info("Invalid Gamma: "+this.G+" for "+this.name+", falling back to default");this.G=1}}function convertToRgb(cs, +src,srcOffset,dest,destOffset,scale){var A=src[srcOffset]*scale;var AG=Math.pow(A,cs.G);var L=cs.YW*AG;var val=Math.max(295.8*Math.pow(L,.3333333333333333)-40.8,0)|0;dest[destOffset]=val;dest[destOffset+1]=val;dest[destOffset+2]=val}CalGrayCS.prototype={getRgb:ColorSpace.prototype.getRgb,getRgbItem:function CalGrayCS_getRgbItem(src,srcOffset,dest,destOffset){convertToRgb(this,src,srcOffset,dest,destOffset,1)},getRgbBuffer:function CalGrayCS_getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var scale= +1/((1<<bits)-1);for(var i=0;i<count;++i){convertToRgb(this,src,srcOffset,dest,destOffset,scale);srcOffset+=1;destOffset+=3+alpha01}},getOutputLength:function CalGrayCS_getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)},isPassthrough:ColorSpace.prototype.isPassthrough,fillRgb:ColorSpace.prototype.fillRgb,isDefaultDecode:function CalGrayCS_isDefaultDecode(decodeMap){return ColorSpace.isDefaultDecode(decodeMap,this.numComps)},usesZeroToOneRange:true};return CalGrayCS}();var CalRGBCS= +function CalRGBCSClosure(){var BRADFORD_SCALE_MATRIX=new Float32Array([.8951,.2664,-.1614,-.7502,1.7135,.0367,.0389,-.0685,1.0296]);var BRADFORD_SCALE_INVERSE_MATRIX=new Float32Array([.9869929,-.1470543,.1599627,.4323053,.5183603,.0492912,-.0085287,.0400428,.9684867]);var SRGB_D65_XYZ_TO_RGB_MATRIX=new Float32Array([3.2404542,-1.5371385,-.4985314,-.969266,1.8760108,.041556,.0556434,-.2040259,1.0572252]);var FLAT_WHITEPOINT_MATRIX=new Float32Array([1,1,1]);var tempNormalizeMatrix=new Float32Array(3); +var tempConvertMatrix1=new Float32Array(3);var tempConvertMatrix2=new Float32Array(3);var DECODE_L_CONSTANT=Math.pow((8+16)/116,3)/8;function CalRGBCS(whitePoint,blackPoint,gamma,matrix){this.name="CalRGB";this.numComps=3;this.defaultColor=new Float32Array(3);if(!whitePoint)error("WhitePoint missing - required for color space CalRGB");blackPoint=blackPoint||new Float32Array(3);gamma=gamma||new Float32Array([1,1,1]);matrix=matrix||new Float32Array([1,0,0,0,1,0,0,0,1]);var XW=whitePoint[0];var YW=whitePoint[1]; +var ZW=whitePoint[2];this.whitePoint=whitePoint;var XB=blackPoint[0];var YB=blackPoint[1];var ZB=blackPoint[2];this.blackPoint=blackPoint;this.GR=gamma[0];this.GG=gamma[1];this.GB=gamma[2];this.MXA=matrix[0];this.MYA=matrix[1];this.MZA=matrix[2];this.MXB=matrix[3];this.MYB=matrix[4];this.MZB=matrix[5];this.MXC=matrix[6];this.MYC=matrix[7];this.MZC=matrix[8];if(XW<0||ZW<0||YW!==1)error("Invalid WhitePoint components for "+this.name+", no fallback available");if(XB<0||YB<0||ZB<0){info("Invalid BlackPoint for "+ +this.name+" ["+XB+", "+YB+", "+ZB+"], falling back to default");this.blackPoint=new Float32Array(3)}if(this.GR<0||this.GG<0||this.GB<0){info("Invalid Gamma ["+this.GR+", "+this.GG+", "+this.GB+"] for "+this.name+", falling back to default");this.GR=this.GG=this.GB=1}if(this.MXA<0||this.MYA<0||this.MZA<0||this.MXB<0||this.MYB<0||this.MZB<0||this.MXC<0||this.MYC<0||this.MZC<0){info("Invalid Matrix for "+this.name+" ["+this.MXA+", "+this.MYA+", "+this.MZA+this.MXB+", "+this.MYB+", "+this.MZB+this.MXC+ +", "+this.MYC+", "+this.MZC+"], falling back to default");this.MXA=this.MYB=this.MZC=1;this.MXB=this.MYA=this.MZA=this.MXC=this.MYC=this.MZB=0}}function matrixProduct(a,b,result){result[0]=a[0]*b[0]+a[1]*b[1]+a[2]*b[2];result[1]=a[3]*b[0]+a[4]*b[1]+a[5]*b[2];result[2]=a[6]*b[0]+a[7]*b[1]+a[8]*b[2]}function convertToFlat(sourceWhitePoint,LMS,result){result[0]=LMS[0]*1/sourceWhitePoint[0];result[1]=LMS[1]*1/sourceWhitePoint[1];result[2]=LMS[2]*1/sourceWhitePoint[2]}function convertToD65(sourceWhitePoint, +LMS,result){var D65X=.95047;var D65Y=1;var D65Z=1.08883;result[0]=LMS[0]*D65X/sourceWhitePoint[0];result[1]=LMS[1]*D65Y/sourceWhitePoint[1];result[2]=LMS[2]*D65Z/sourceWhitePoint[2]}function sRGBTransferFunction(color){if(color<=.0031308)return adjustToRange(0,1,12.92*color);return adjustToRange(0,1,(1+.055)*Math.pow(color,1/2.4)-.055)}function adjustToRange(min,max,value){return Math.max(min,Math.min(max,value))}function decodeL(L){if(L<0)return-decodeL(-L);if(L>8)return Math.pow((L+16)/116,3);return L* +DECODE_L_CONSTANT}function compensateBlackPoint(sourceBlackPoint,XYZ_Flat,result){if(sourceBlackPoint[0]===0&&sourceBlackPoint[1]===0&&sourceBlackPoint[2]===0){result[0]=XYZ_Flat[0];result[1]=XYZ_Flat[1];result[2]=XYZ_Flat[2];return}var zeroDecodeL=decodeL(0);var X_DST=zeroDecodeL;var X_SRC=decodeL(sourceBlackPoint[0]);var Y_DST=zeroDecodeL;var Y_SRC=decodeL(sourceBlackPoint[1]);var Z_DST=zeroDecodeL;var Z_SRC=decodeL(sourceBlackPoint[2]);var X_Scale=(1-X_DST)/(1-X_SRC);var X_Offset=1-X_Scale;var Y_Scale= +(1-Y_DST)/(1-Y_SRC);var Y_Offset=1-Y_Scale;var Z_Scale=(1-Z_DST)/(1-Z_SRC);var Z_Offset=1-Z_Scale;result[0]=XYZ_Flat[0]*X_Scale+X_Offset;result[1]=XYZ_Flat[1]*Y_Scale+Y_Offset;result[2]=XYZ_Flat[2]*Z_Scale+Z_Offset}function normalizeWhitePointToFlat(sourceWhitePoint,XYZ_In,result){if(sourceWhitePoint[0]===1&&sourceWhitePoint[2]===1){result[0]=XYZ_In[0];result[1]=XYZ_In[1];result[2]=XYZ_In[2];return}var LMS=result;matrixProduct(BRADFORD_SCALE_MATRIX,XYZ_In,LMS);var LMS_Flat=tempNormalizeMatrix;convertToFlat(sourceWhitePoint, +LMS,LMS_Flat);matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX,LMS_Flat,result)}function normalizeWhitePointToD65(sourceWhitePoint,XYZ_In,result){var LMS=result;matrixProduct(BRADFORD_SCALE_MATRIX,XYZ_In,LMS);var LMS_D65=tempNormalizeMatrix;convertToD65(sourceWhitePoint,LMS,LMS_D65);matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX,LMS_D65,result)}function convertToRgb(cs,src,srcOffset,dest,destOffset,scale){var A=adjustToRange(0,1,src[srcOffset]*scale);var B=adjustToRange(0,1,src[srcOffset+1]*scale);var C= +adjustToRange(0,1,src[srcOffset+2]*scale);var AGR=Math.pow(A,cs.GR);var BGG=Math.pow(B,cs.GG);var CGB=Math.pow(C,cs.GB);var X=cs.MXA*AGR+cs.MXB*BGG+cs.MXC*CGB;var Y=cs.MYA*AGR+cs.MYB*BGG+cs.MYC*CGB;var Z=cs.MZA*AGR+cs.MZB*BGG+cs.MZC*CGB;var XYZ=tempConvertMatrix1;XYZ[0]=X;XYZ[1]=Y;XYZ[2]=Z;var XYZ_Flat=tempConvertMatrix2;normalizeWhitePointToFlat(cs.whitePoint,XYZ,XYZ_Flat);var XYZ_Black=tempConvertMatrix1;compensateBlackPoint(cs.blackPoint,XYZ_Flat,XYZ_Black);var XYZ_D65=tempConvertMatrix2;normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, +XYZ_Black,XYZ_D65);var SRGB=tempConvertMatrix1;matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX,XYZ_D65,SRGB);var sR=sRGBTransferFunction(SRGB[0]);var sG=sRGBTransferFunction(SRGB[1]);var sB=sRGBTransferFunction(SRGB[2]);dest[destOffset]=Math.round(sR*255);dest[destOffset+1]=Math.round(sG*255);dest[destOffset+2]=Math.round(sB*255)}CalRGBCS.prototype={getRgb:function CalRGBCS_getRgb(src,srcOffset){var rgb=new Uint8Array(3);this.getRgbItem(src,srcOffset,rgb,0);return rgb},getRgbItem:function CalRGBCS_getRgbItem(src, +srcOffset,dest,destOffset){convertToRgb(this,src,srcOffset,dest,destOffset,1)},getRgbBuffer:function CalRGBCS_getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var scale=1/((1<<bits)-1);for(var i=0;i<count;++i){convertToRgb(this,src,srcOffset,dest,destOffset,scale);srcOffset+=3;destOffset+=3+alpha01}},getOutputLength:function CalRGBCS_getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)/3|0},isPassthrough:ColorSpace.prototype.isPassthrough,fillRgb:ColorSpace.prototype.fillRgb, +isDefaultDecode:function CalRGBCS_isDefaultDecode(decodeMap){return ColorSpace.isDefaultDecode(decodeMap,this.numComps)},usesZeroToOneRange:true};return CalRGBCS}();var LabCS=function LabCSClosure(){function LabCS(whitePoint,blackPoint,range){this.name="Lab";this.numComps=3;this.defaultColor=new Float32Array([0,0,0]);if(!whitePoint)error("WhitePoint missing - required for color space Lab");blackPoint=blackPoint||[0,0,0];range=range||[-100,100,-100,100];this.XW=whitePoint[0];this.YW=whitePoint[1]; +this.ZW=whitePoint[2];this.amin=range[0];this.amax=range[1];this.bmin=range[2];this.bmax=range[3];this.XB=blackPoint[0];this.YB=blackPoint[1];this.ZB=blackPoint[2];if(this.XW<0||this.ZW<0||this.YW!==1)error("Invalid WhitePoint components, no fallback available");if(this.XB<0||this.YB<0||this.ZB<0){info("Invalid BlackPoint, falling back to default");this.XB=this.YB=this.ZB=0}if(this.amin>this.amax||this.bmin>this.bmax){info("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin= +-100;this.bmax=100}}function fn_g(x){if(x>=6/29)return x*x*x;else return 108/841*(x-4/29)}function decode(value,high1,low2,high2){return low2+value*(high2-low2)/high1}function convertToRgb(cs,src,srcOffset,maxVal,dest,destOffset){var Ls=src[srcOffset];var as=src[srcOffset+1];var bs=src[srcOffset+2];if(maxVal!==false){Ls=decode(Ls,maxVal,0,100);as=decode(as,maxVal,cs.amin,cs.amax);bs=decode(bs,maxVal,cs.bmin,cs.bmax)}as=as>cs.amax?cs.amax:as<cs.amin?cs.amin:as;bs=bs>cs.bmax?cs.bmax:bs<cs.bmin?cs.bmin: +bs;var M=(Ls+16)/116;var L=M+as/500;var N=M-bs/200;var X=cs.XW*fn_g(L);var Y=cs.YW*fn_g(M);var Z=cs.ZW*fn_g(N);var r,g,b;if(cs.ZW<1){r=X*3.1339+Y*-1.617+Z*-.4906;g=X*-.9785+Y*1.916+Z*.0333;b=X*.072+Y*-.229+Z*1.4057}else{r=X*3.2406+Y*-1.5372+Z*-.4986;g=X*-.9689+Y*1.8758+Z*.0415;b=X*.0557+Y*-.204+Z*1.057}dest[destOffset]=r<=0?0:r>=1?255:Math.sqrt(r)*255|0;dest[destOffset+1]=g<=0?0:g>=1?255:Math.sqrt(g)*255|0;dest[destOffset+2]=b<=0?0:b>=1?255:Math.sqrt(b)*255|0}LabCS.prototype={getRgb:ColorSpace.prototype.getRgb, +getRgbItem:function LabCS_getRgbItem(src,srcOffset,dest,destOffset){convertToRgb(this,src,srcOffset,false,dest,destOffset)},getRgbBuffer:function LabCS_getRgbBuffer(src,srcOffset,count,dest,destOffset,bits,alpha01){var maxVal=(1<<bits)-1;for(var i=0;i<count;i++){convertToRgb(this,src,srcOffset,maxVal,dest,destOffset);srcOffset+=3;destOffset+=3+alpha01}},getOutputLength:function LabCS_getOutputLength(inputLength,alpha01){return inputLength*(3+alpha01)/3|0},isPassthrough:ColorSpace.prototype.isPassthrough, +fillRgb:ColorSpace.prototype.fillRgb,isDefaultDecode:function LabCS_isDefaultDecode(decodeMap){return true},usesZeroToOneRange:false};return LabCS}();var ARCFourCipher=function ARCFourCipherClosure(){function ARCFourCipher(key){this.a=0;this.b=0;var s=new Uint8Array(256);var i,j=0,tmp,keyLength=key.length;for(i=0;i<256;++i)s[i]=i;for(i=0;i<256;++i){tmp=s[i];j=j+tmp+key[i%keyLength]&255;s[i]=s[j];s[j]=tmp}this.s=s}ARCFourCipher.prototype={encryptBlock:function ARCFourCipher_encryptBlock(data){var i, +n=data.length,tmp,tmp2;var a=this.a,b=this.b,s=this.s;var output=new Uint8Array(n);for(i=0;i<n;++i){a=a+1&255;tmp=s[a];b=b+tmp&255;tmp2=s[b];s[a]=tmp2;s[b]=tmp;output[i]=data[i]^s[tmp+tmp2&255]}this.a=a;this.b=b;return output}};ARCFourCipher.prototype.decryptBlock=ARCFourCipher.prototype.encryptBlock;return ARCFourCipher}();var calculateMD5=function calculateMD5Closure(){var r=new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23, +4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]);var k=new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353, +-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]);function hash(data,offset,length){var h0=1732584193,h1=-271733879,h2=-1732584194,h3=271733878;var paddedLength=length+72&~63;var padded=new Uint8Array(paddedLength);var i,j,n;for(i=0;i<length;++i)padded[i]=data[offset++]; +padded[i++]=128;n=paddedLength-8;while(i<n)padded[i++]=0;padded[i++]=length<<3&255;padded[i++]=length>>5&255;padded[i++]=length>>13&255;padded[i++]=length>>21&255;padded[i++]=length>>>29&255;padded[i++]=0;padded[i++]=0;padded[i++]=0;var w=new Int32Array(16);for(i=0;i<paddedLength;){for(j=0;j<16;++j,i+=4)w[j]=padded[i]|padded[i+1]<<8|padded[i+2]<<16|padded[i+3]<<24;var a=h0,b=h1,c=h2,d=h3,f,g;for(j=0;j<64;++j){if(j<16){f=b&c|~b&d;g=j}else if(j<32){f=d&b|~d&c;g=5*j+1&15}else if(j<48){f=b^c^d;g=3*j+ +5&15}else{f=c^(b|~d);g=7*j&15}var tmp=d,rotateArg=a+f+k[j]+w[g]|0,rotate=r[j];d=c;c=b;b=b+(rotateArg<<rotate|rotateArg>>>32-rotate)|0;a=tmp}h0=h0+a|0;h1=h1+b|0;h2=h2+c|0;h3=h3+d|0}return new Uint8Array([h0&255,h0>>8&255,h0>>16&255,h0>>>24&255,h1&255,h1>>8&255,h1>>16&255,h1>>>24&255,h2&255,h2>>8&255,h2>>16&255,h2>>>24&255,h3&255,h3>>8&255,h3>>16&255,h3>>>24&255])}return hash}();var Word64=function Word64Closure(){function Word64(highInteger,lowInteger){this.high=highInteger|0;this.low=lowInteger|0} +Word64.prototype={and:function Word64_and(word){this.high&=word.high;this.low&=word.low},xor:function Word64_xor(word){this.high^=word.high;this.low^=word.low},or:function Word64_or(word){this.high|=word.high;this.low|=word.low},shiftRight:function Word64_shiftRight(places){if(places>=32){this.low=this.high>>>places-32|0;this.high=0}else{this.low=this.low>>>places|this.high<<32-places;this.high=this.high>>>places|0}},shiftLeft:function Word64_shiftLeft(places){if(places>=32){this.high=this.low<<places- +32;this.low=0}else{this.high=this.high<<places|this.low>>>32-places;this.low=this.low<<places}},rotateRight:function Word64_rotateRight(places){var low,high;if(places&32){high=this.low;low=this.high}else{low=this.low;high=this.high}places&=31;this.low=low>>>places|high<<32-places;this.high=high>>>places|low<<32-places},not:function Word64_not(){this.high=~this.high;this.low=~this.low},add:function Word64_add(word){var lowAdd=(this.low>>>0)+(word.low>>>0);var highAdd=(this.high>>>0)+(word.high>>>0); +if(lowAdd>4294967295)highAdd+=1;this.low=lowAdd|0;this.high=highAdd|0},copyTo:function Word64_copyTo(bytes,offset){bytes[offset]=this.high>>>24&255;bytes[offset+1]=this.high>>16&255;bytes[offset+2]=this.high>>8&255;bytes[offset+3]=this.high&255;bytes[offset+4]=this.low>>>24&255;bytes[offset+5]=this.low>>16&255;bytes[offset+6]=this.low>>8&255;bytes[offset+7]=this.low&255},assign:function Word64_assign(word){this.high=word.high;this.low=word.low}};return Word64}();var calculateSHA256=function calculateSHA256Closure(){function rotr(x, +n){return x>>>n|x<<32-n}function ch(x,y,z){return x&y^~x&z}function maj(x,y,z){return x&y^x&z^y&z}function sigma(x){return rotr(x,2)^rotr(x,13)^rotr(x,22)}function sigmaPrime(x){return rotr(x,6)^rotr(x,11)^rotr(x,25)}function littleSigma(x){return rotr(x,7)^rotr(x,18)^x>>>3}function littleSigmaPrime(x){return rotr(x,17)^rotr(x,19)^x>>>10}var k=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103, +3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187, +3204031479,3329325298];function hash(data,offset,length){var h0=1779033703,h1=3144134277,h2=1013904242,h3=2773480762,h4=1359893119,h5=2600822924,h6=528734635,h7=1541459225;var paddedLength=Math.ceil((length+9)/64)*64;var padded=new Uint8Array(paddedLength);var i,j,n;for(i=0;i<length;++i)padded[i]=data[offset++];padded[i++]=128;n=paddedLength-8;while(i<n)padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=length>>>29&255;padded[i++]=length>>21&255;padded[i++]=length>>13&255;padded[i++]= +length>>5&255;padded[i++]=length<<3&255;var w=new Uint32Array(64);for(i=0;i<paddedLength;){for(j=0;j<16;++j){w[j]=padded[i]<<24|padded[i+1]<<16|padded[i+2]<<8|padded[i+3];i+=4}for(j=16;j<64;++j)w[j]=littleSigmaPrime(w[j-2])+w[j-7]+littleSigma(w[j-15])+w[j-16]|0;var a=h0,b=h1,c=h2,d=h3,e=h4,f=h5,g=h6,h=h7,t1,t2;for(j=0;j<64;++j){t1=h+sigmaPrime(e)+ch(e,f,g)+k[j]+w[j];t2=sigma(a)+maj(a,b,c);h=g;g=f;f=e;e=d+t1|0;d=c;c=b;b=a;a=t1+t2|0}h0=h0+a|0;h1=h1+b|0;h2=h2+c|0;h3=h3+d|0;h4=h4+e|0;h5=h5+f|0;h6=h6+ +g|0;h7=h7+h|0}return new Uint8Array([h0>>24&255,h0>>16&255,h0>>8&255,h0&255,h1>>24&255,h1>>16&255,h1>>8&255,h1&255,h2>>24&255,h2>>16&255,h2>>8&255,h2&255,h3>>24&255,h3>>16&255,h3>>8&255,h3&255,h4>>24&255,h4>>16&255,h4>>8&255,h4&255,h5>>24&255,h5>>16&255,h5>>8&255,h5&255,h6>>24&255,h6>>16&255,h6>>8&255,h6&255,h7>>24&255,h7>>16&255,h7>>8&255,h7&255])}return hash}();var calculateSHA512=function calculateSHA512Closure(){function ch(result,x,y,z,tmp){result.assign(x);result.and(y);tmp.assign(x);tmp.not(); +tmp.and(z);result.xor(tmp)}function maj(result,x,y,z,tmp){result.assign(x);result.and(y);tmp.assign(x);tmp.and(z);result.xor(tmp);tmp.assign(y);tmp.and(z);result.xor(tmp)}function sigma(result,x,tmp){result.assign(x);result.rotateRight(28);tmp.assign(x);tmp.rotateRight(34);result.xor(tmp);tmp.assign(x);tmp.rotateRight(39);result.xor(tmp)}function sigmaPrime(result,x,tmp){result.assign(x);result.rotateRight(14);tmp.assign(x);tmp.rotateRight(18);result.xor(tmp);tmp.assign(x);tmp.rotateRight(41);result.xor(tmp)} +function littleSigma(result,x,tmp){result.assign(x);result.rotateRight(1);tmp.assign(x);tmp.rotateRight(8);result.xor(tmp);tmp.assign(x);tmp.shiftRight(7);result.xor(tmp)}function littleSigmaPrime(result,x,tmp){result.assign(x);result.rotateRight(19);tmp.assign(x);tmp.rotateRight(61);result.xor(tmp);tmp.assign(x);tmp.shiftRight(6);result.xor(tmp)}var k=[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163, +4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628, +2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372, +1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616, +1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614, +3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)]; +function hash(data,offset,length,mode384){mode384=!!mode384;var h0,h1,h2,h3,h4,h5,h6,h7;if(!mode384){h0=new Word64(1779033703,4089235720);h1=new Word64(3144134277,2227873595);h2=new Word64(1013904242,4271175723);h3=new Word64(2773480762,1595750129);h4=new Word64(1359893119,2917565137);h5=new Word64(2600822924,725511199);h6=new Word64(528734635,4215389547);h7=new Word64(1541459225,327033209)}else{h0=new Word64(3418070365,3238371032);h1=new Word64(1654270250,914150663);h2=new Word64(2438529370,812702999); +h3=new Word64(355462360,4144912697);h4=new Word64(1731405415,4290775857);h5=new Word64(2394180231,1750603025);h6=new Word64(3675008525,1694076839);h7=new Word64(1203062813,3204075428)}var paddedLength=Math.ceil((length+17)/128)*128;var padded=new Uint8Array(paddedLength);var i,j,n;for(i=0;i<length;++i)padded[i]=data[offset++];padded[i++]=128;n=paddedLength-16;while(i<n)padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]=0;padded[i++]= +0;padded[i++]=0;padded[i++]=0;padded[i++]=length>>>29&255;padded[i++]=length>>21&255;padded[i++]=length>>13&255;padded[i++]=length>>5&255;padded[i++]=length<<3&255;var w=new Array(80);for(i=0;i<80;i++)w[i]=new Word64(0,0);var a=new Word64(0,0),b=new Word64(0,0),c=new Word64(0,0);var d=new Word64(0,0),e=new Word64(0,0),f=new Word64(0,0);var g=new Word64(0,0),h=new Word64(0,0);var t1=new Word64(0,0),t2=new Word64(0,0);var tmp1=new Word64(0,0),tmp2=new Word64(0,0),tmp3;for(i=0;i<paddedLength;){for(j= +0;j<16;++j){w[j].high=padded[i]<<24|padded[i+1]<<16|padded[i+2]<<8|padded[i+3];w[j].low=padded[i+4]<<24|padded[i+5]<<16|padded[i+6]<<8|padded[i+7];i+=8}for(j=16;j<80;++j){tmp3=w[j];littleSigmaPrime(tmp3,w[j-2],tmp2);tmp3.add(w[j-7]);littleSigma(tmp1,w[j-15],tmp2);tmp3.add(tmp1);tmp3.add(w[j-16])}a.assign(h0);b.assign(h1);c.assign(h2);d.assign(h3);e.assign(h4);f.assign(h5);g.assign(h6);h.assign(h7);for(j=0;j<80;++j){t1.assign(h);sigmaPrime(tmp1,e,tmp2);t1.add(tmp1);ch(tmp1,e,f,g,tmp2);t1.add(tmp1); +t1.add(k[j]);t1.add(w[j]);sigma(t2,a,tmp2);maj(tmp1,a,b,c,tmp2);t2.add(tmp1);tmp3=h;h=g;g=f;f=e;d.add(t1);e=d;d=c;c=b;b=a;tmp3.assign(t1);tmp3.add(t2);a=tmp3}h0.add(a);h1.add(b);h2.add(c);h3.add(d);h4.add(e);h5.add(f);h6.add(g);h7.add(h)}var result;if(!mode384){result=new Uint8Array(64);h0.copyTo(result,0);h1.copyTo(result,8);h2.copyTo(result,16);h3.copyTo(result,24);h4.copyTo(result,32);h5.copyTo(result,40);h6.copyTo(result,48);h7.copyTo(result,56)}else{result=new Uint8Array(48);h0.copyTo(result, +0);h1.copyTo(result,8);h2.copyTo(result,16);h3.copyTo(result,24);h4.copyTo(result,32);h5.copyTo(result,40)}return result}return hash}();var calculateSHA384=function calculateSHA384Closure(){function hash(data,offset,length){return calculateSHA512(data,offset,length,true)}return hash}();var NullCipher=function NullCipherClosure(){function NullCipher(){}NullCipher.prototype={decryptBlock:function NullCipher_decryptBlock(data){return data}};return NullCipher}();var AES128Cipher=function AES128CipherClosure(){var rcon= +new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97, +194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]);var s=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130, +201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219, +224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]);var inv_s=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50, +166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27, +252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]);var mixCol=new Uint8Array(256);for(var i=0;i<256;i++)if(i<128)mixCol[i]=i<<1;else mixCol[i]=i<<1^27;var mix=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995, +1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787, +1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884, +101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733, +2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566, +3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469, +4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);function expandKey128(cipherKey){var b=176,result=new Uint8Array(b);result.set(cipherKey);for(var j=16,i=1;j<b;++i){var t1=result[j-3],t2=result[j-2],t3=result[j-1],t4=result[j-4];t1=s[t1];t2=s[t2];t3=s[t3];t4=s[t4];t1=t1^rcon[i];for(var n=0;n<4;++n){result[j]=t1^=result[j-16];j++;result[j]=t2^=result[j-16];j++;result[j]=t3^=result[j-16];j++;result[j]=t4^=result[j-16];j++}}return result} +function decrypt128(input,key){var state=new Uint8Array(16);state.set(input);var i,j,k;var t,u,v;for(j=0,k=160;j<16;++j,++k)state[j]^=key[k];for(i=9;i>=1;--i){t=state[13];state[13]=state[9];state[9]=state[5];state[5]=state[1];state[1]=t;t=state[14];u=state[10];state[14]=state[6];state[10]=state[2];state[6]=t;state[2]=u;t=state[15];u=state[11];v=state[7];state[15]=state[3];state[11]=t;state[7]=u;state[3]=v;for(j=0;j<16;++j)state[j]=inv_s[state[j]];for(j=0,k=i*16;j<16;++j,++k)state[j]^=key[k];for(j= +0;j<16;j+=4){var s0=mix[state[j]],s1=mix[state[j+1]],s2=mix[state[j+2]],s3=mix[state[j+3]];t=s0^s1>>>8^s1<<24^s2>>>16^s2<<16^s3>>>24^s3<<8;state[j]=t>>>24&255;state[j+1]=t>>16&255;state[j+2]=t>>8&255;state[j+3]=t&255}}t=state[13];state[13]=state[9];state[9]=state[5];state[5]=state[1];state[1]=t;t=state[14];u=state[10];state[14]=state[6];state[10]=state[2];state[6]=t;state[2]=u;t=state[15];u=state[11];v=state[7];state[15]=state[3];state[11]=t;state[7]=u;state[3]=v;for(j=0;j<16;++j){state[j]=inv_s[state[j]]; +state[j]^=key[j]}return state}function encrypt128(input,key){var t,u,v,k;var state=new Uint8Array(16);state.set(input);for(j=0;j<16;++j)state[j]^=key[j];for(i=1;i<10;i++){for(j=0;j<16;++j)state[j]=s[state[j]];v=state[1];state[1]=state[5];state[5]=state[9];state[9]=state[13];state[13]=v;v=state[2];u=state[6];state[2]=state[10];state[6]=state[14];state[10]=v;state[14]=u;v=state[3];u=state[7];t=state[11];state[3]=state[15];state[7]=v;state[11]=u;state[15]=t;for(var j=0;j<16;j+=4){var s0=state[j+0],s1= +state[j+1];var s2=state[j+2],s3=state[j+3];t=s0^s1^s2^s3;state[j+0]^=t^mixCol[s0^s1];state[j+1]^=t^mixCol[s1^s2];state[j+2]^=t^mixCol[s2^s3];state[j+3]^=t^mixCol[s3^s0]}for(j=0,k=i*16;j<16;++j,++k)state[j]^=key[k]}for(j=0;j<16;++j)state[j]=s[state[j]];v=state[1];state[1]=state[5];state[5]=state[9];state[9]=state[13];state[13]=v;v=state[2];u=state[6];state[2]=state[10];state[6]=state[14];state[10]=v;state[14]=u;v=state[3];u=state[7];t=state[11];state[3]=state[15];state[7]=v;state[11]=u;state[15]=t; +for(j=0,k=160;j<16;++j,++k)state[j]^=key[k];return state}function AES128Cipher(key){this.key=expandKey128(key);this.buffer=new Uint8Array(16);this.bufferPosition=0}function decryptBlock2(data,finalize){var i,j,ii,sourceLength=data.length,buffer=this.buffer,bufferLength=this.bufferPosition,result=[],iv=this.iv;for(i=0;i<sourceLength;++i){buffer[bufferLength]=data[i];++bufferLength;if(bufferLength<16)continue;var plain=decrypt128(buffer,this.key);for(j=0;j<16;++j)plain[j]^=iv[j];iv=buffer;result.push(plain); +buffer=new Uint8Array(16);bufferLength=0}this.buffer=buffer;this.bufferLength=bufferLength;this.iv=iv;if(result.length===0)return new Uint8Array([]);var outputLength=16*result.length;if(finalize){var lastBlock=result[result.length-1];var psLen=lastBlock[15];if(psLen<=16){for(i=15,ii=16-psLen;i>=ii;--i)if(lastBlock[i]!==psLen){psLen=0;break}outputLength-=psLen;result[result.length-1]=lastBlock.subarray(0,16-psLen)}}var output=new Uint8Array(outputLength);for(i=0,j=0,ii=result.length;i<ii;++i,j+=16)output.set(result[i], +j);return output}AES128Cipher.prototype={decryptBlock:function AES128Cipher_decryptBlock(data,finalize){var i,sourceLength=data.length;var buffer=this.buffer,bufferLength=this.bufferPosition;for(i=0;bufferLength<16&&i<sourceLength;++i,++bufferLength)buffer[bufferLength]=data[i];if(bufferLength<16){this.bufferLength=bufferLength;return new Uint8Array([])}this.iv=buffer;this.buffer=new Uint8Array(16);this.bufferLength=0;this.decryptBlock=decryptBlock2;return this.decryptBlock(data.subarray(16),finalize)}, +encrypt:function AES128Cipher_encrypt(data,iv){var i,j,ii,sourceLength=data.length,buffer=this.buffer,bufferLength=this.bufferPosition,result=[];if(!iv)iv=new Uint8Array(16);for(i=0;i<sourceLength;++i){buffer[bufferLength]=data[i];++bufferLength;if(bufferLength<16)continue;for(j=0;j<16;++j)buffer[j]^=iv[j];var cipher=encrypt128(buffer,this.key);iv=cipher;result.push(cipher);buffer=new Uint8Array(16);bufferLength=0}this.buffer=buffer;this.bufferLength=bufferLength;this.iv=iv;if(result.length===0)return new Uint8Array([]); +var outputLength=16*result.length;var output=new Uint8Array(outputLength);for(i=0,j=0,ii=result.length;i<ii;++i,j+=16)output.set(result[i],j);return output}};return AES128Cipher}();var AES256Cipher=function AES256CipherClosure(){var rcon=new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151, +53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108, +216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]);var s=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57, +74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155, +30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]);var inv_s=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184, +179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105, +20,99,85,33,12,125]);var mixCol=new Uint8Array(256);for(var i=0;i<256;i++)if(i<128)mixCol[i]=i<<1;else mixCol[i]=i<<1^27;var mix=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512, +3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366, +1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980, +1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302, +3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843, +1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);function expandKey256(cipherKey){var b=240,result=new Uint8Array(b);var r=1;result.set(cipherKey);for(var j=32,i=1;j<b;++i){if(j%32===16){t1=s[t1]; +t2=s[t2];t3=s[t3];t4=s[t4]}else if(j%32===0){var t1=result[j-3],t2=result[j-2],t3=result[j-1],t4=result[j-4];t1=s[t1];t2=s[t2];t3=s[t3];t4=s[t4];t1=t1^r;if((r<<=1)>=256)r=(r^27)&255}for(var n=0;n<4;++n){result[j]=t1^=result[j-32];j++;result[j]=t2^=result[j-32];j++;result[j]=t3^=result[j-32];j++;result[j]=t4^=result[j-32];j++}}return result}function decrypt256(input,key){var state=new Uint8Array(16);state.set(input);var i,j,k;var t,u,v;for(j=0,k=224;j<16;++j,++k)state[j]^=key[k];for(i=13;i>=1;--i){t= +state[13];state[13]=state[9];state[9]=state[5];state[5]=state[1];state[1]=t;t=state[14];u=state[10];state[14]=state[6];state[10]=state[2];state[6]=t;state[2]=u;t=state[15];u=state[11];v=state[7];state[15]=state[3];state[11]=t;state[7]=u;state[3]=v;for(j=0;j<16;++j)state[j]=inv_s[state[j]];for(j=0,k=i*16;j<16;++j,++k)state[j]^=key[k];for(j=0;j<16;j+=4){var s0=mix[state[j]],s1=mix[state[j+1]],s2=mix[state[j+2]],s3=mix[state[j+3]];t=s0^s1>>>8^s1<<24^s2>>>16^s2<<16^s3>>>24^s3<<8;state[j]=t>>>24&255;state[j+ +1]=t>>16&255;state[j+2]=t>>8&255;state[j+3]=t&255}}t=state[13];state[13]=state[9];state[9]=state[5];state[5]=state[1];state[1]=t;t=state[14];u=state[10];state[14]=state[6];state[10]=state[2];state[6]=t;state[2]=u;t=state[15];u=state[11];v=state[7];state[15]=state[3];state[11]=t;state[7]=u;state[3]=v;for(j=0;j<16;++j){state[j]=inv_s[state[j]];state[j]^=key[j]}return state}function encrypt256(input,key){var t,u,v,k;var state=new Uint8Array(16);state.set(input);for(j=0;j<16;++j)state[j]^=key[j];for(i= +1;i<14;i++){for(j=0;j<16;++j)state[j]=s[state[j]];v=state[1];state[1]=state[5];state[5]=state[9];state[9]=state[13];state[13]=v;v=state[2];u=state[6];state[2]=state[10];state[6]=state[14];state[10]=v;state[14]=u;v=state[3];u=state[7];t=state[11];state[3]=state[15];state[7]=v;state[11]=u;state[15]=t;for(var j=0;j<16;j+=4){var s0=state[j+0],s1=state[j+1];var s2=state[j+2],s3=state[j+3];t=s0^s1^s2^s3;state[j+0]^=t^mixCol[s0^s1];state[j+1]^=t^mixCol[s1^s2];state[j+2]^=t^mixCol[s2^s3];state[j+3]^=t^mixCol[s3^ +s0]}for(j=0,k=i*16;j<16;++j,++k)state[j]^=key[k]}for(j=0;j<16;++j)state[j]=s[state[j]];v=state[1];state[1]=state[5];state[5]=state[9];state[9]=state[13];state[13]=v;v=state[2];u=state[6];state[2]=state[10];state[6]=state[14];state[10]=v;state[14]=u;v=state[3];u=state[7];t=state[11];state[3]=state[15];state[7]=v;state[11]=u;state[15]=t;for(j=0,k=224;j<16;++j,++k)state[j]^=key[k];return state}function AES256Cipher(key){this.key=expandKey256(key);this.buffer=new Uint8Array(16);this.bufferPosition=0} +function decryptBlock2(data,finalize){var i,j,ii,sourceLength=data.length,buffer=this.buffer,bufferLength=this.bufferPosition,result=[],iv=this.iv;for(i=0;i<sourceLength;++i){buffer[bufferLength]=data[i];++bufferLength;if(bufferLength<16)continue;var plain=decrypt256(buffer,this.key);for(j=0;j<16;++j)plain[j]^=iv[j];iv=buffer;result.push(plain);buffer=new Uint8Array(16);bufferLength=0}this.buffer=buffer;this.bufferLength=bufferLength;this.iv=iv;if(result.length===0)return new Uint8Array([]);var outputLength= +16*result.length;if(finalize){var lastBlock=result[result.length-1];var psLen=lastBlock[15];if(psLen<=16){for(i=15,ii=16-psLen;i>=ii;--i)if(lastBlock[i]!==psLen){psLen=0;break}outputLength-=psLen;result[result.length-1]=lastBlock.subarray(0,16-psLen)}}var output=new Uint8Array(outputLength);for(i=0,j=0,ii=result.length;i<ii;++i,j+=16)output.set(result[i],j);return output}AES256Cipher.prototype={decryptBlock:function AES256Cipher_decryptBlock(data,finalize,iv){var i,sourceLength=data.length;var buffer= +this.buffer,bufferLength=this.bufferPosition;if(iv)this.iv=iv;else{for(i=0;bufferLength<16&&i<sourceLength;++i,++bufferLength)buffer[bufferLength]=data[i];if(bufferLength<16){this.bufferLength=bufferLength;return new Uint8Array([])}this.iv=buffer;data=data.subarray(16)}this.buffer=new Uint8Array(16);this.bufferLength=0;this.decryptBlock=decryptBlock2;return this.decryptBlock(data,finalize)},encrypt:function AES256Cipher_encrypt(data,iv){var i,j,ii,sourceLength=data.length,buffer=this.buffer,bufferLength= +this.bufferPosition,result=[];if(!iv)iv=new Uint8Array(16);for(i=0;i<sourceLength;++i){buffer[bufferLength]=data[i];++bufferLength;if(bufferLength<16)continue;for(j=0;j<16;++j)buffer[j]^=iv[j];var cipher=encrypt256(buffer,this.key);this.iv=cipher;result.push(cipher);buffer=new Uint8Array(16);bufferLength=0}this.buffer=buffer;this.bufferLength=bufferLength;this.iv=iv;if(result.length===0)return new Uint8Array([]);var outputLength=16*result.length;var output=new Uint8Array(outputLength);for(i=0,j=0, +ii=result.length;i<ii;++i,j+=16)output.set(result[i],j);return output}};return AES256Cipher}();var PDF17=function PDF17Closure(){function compareByteArrays(array1,array2){if(array1.length!==array2.length)return false;for(var i=0;i<array1.length;i++)if(array1[i]!==array2[i])return false;return true}function PDF17(){}PDF17.prototype={checkOwnerPassword:function PDF17_checkOwnerPassword(password,ownerValidationSalt,userBytes,ownerPassword){var hashData=new Uint8Array(password.length+56);hashData.set(password, +0);hashData.set(ownerValidationSalt,password.length);hashData.set(userBytes,password.length+ownerValidationSalt.length);var result=calculateSHA256(hashData,0,hashData.length);return compareByteArrays(result,ownerPassword)},checkUserPassword:function PDF17_checkUserPassword(password,userValidationSalt,userPassword){var hashData=new Uint8Array(password.length+8);hashData.set(password,0);hashData.set(userValidationSalt,password.length);var result=calculateSHA256(hashData,0,hashData.length);return compareByteArrays(result, +userPassword)},getOwnerKey:function PDF17_getOwnerKey(password,ownerKeySalt,userBytes,ownerEncryption){var hashData=new Uint8Array(password.length+56);hashData.set(password,0);hashData.set(ownerKeySalt,password.length);hashData.set(userBytes,password.length+ownerKeySalt.length);var key=calculateSHA256(hashData,0,hashData.length);var cipher=new AES256Cipher(key);return cipher.decryptBlock(ownerEncryption,false,new Uint8Array(16))},getUserKey:function PDF17_getUserKey(password,userKeySalt,userEncryption){var hashData= +new Uint8Array(password.length+8);hashData.set(password,0);hashData.set(userKeySalt,password.length);var key=calculateSHA256(hashData,0,hashData.length);var cipher=new AES256Cipher(key);return cipher.decryptBlock(userEncryption,false,new Uint8Array(16))}};return PDF17}();var PDF20=function PDF20Closure(){function concatArrays(array1,array2){var t=new Uint8Array(array1.length+array2.length);t.set(array1,0);t.set(array2,array1.length);return t}function calculatePDF20Hash(password,input,userBytes){var k= +calculateSHA256(input,0,input.length).subarray(0,32);var e=[0];var i=0;while(i<64||e[e.length-1]>i-32){var arrayLength=password.length+k.length+userBytes.length;var k1=new Uint8Array(arrayLength*64);var array=concatArrays(password,k);array=concatArrays(array,userBytes);for(var j=0,pos=0;j<64;j++,pos+=arrayLength)k1.set(array,pos);var cipher=new AES128Cipher(k.subarray(0,16));e=cipher.encrypt(k1,k.subarray(16,32));var remainder=0;for(var z=0;z<16;z++){remainder*=256%3;remainder%=3;remainder+=(e[z]>>> +0)%3;remainder%=3}if(remainder===0)k=calculateSHA256(e,0,e.length);else if(remainder===1)k=calculateSHA384(e,0,e.length);else if(remainder===2)k=calculateSHA512(e,0,e.length);i++}return k.subarray(0,32)}function PDF20(){}function compareByteArrays(array1,array2){if(array1.length!==array2.length)return false;for(var i=0;i<array1.length;i++)if(array1[i]!==array2[i])return false;return true}PDF20.prototype={hash:function PDF20_hash(password,concatBytes,userBytes){return calculatePDF20Hash(password,concatBytes, +userBytes)},checkOwnerPassword:function PDF20_checkOwnerPassword(password,ownerValidationSalt,userBytes,ownerPassword){var hashData=new Uint8Array(password.length+56);hashData.set(password,0);hashData.set(ownerValidationSalt,password.length);hashData.set(userBytes,password.length+ownerValidationSalt.length);var result=calculatePDF20Hash(password,hashData,userBytes);return compareByteArrays(result,ownerPassword)},checkUserPassword:function PDF20_checkUserPassword(password,userValidationSalt,userPassword){var hashData= +new Uint8Array(password.length+8);hashData.set(password,0);hashData.set(userValidationSalt,password.length);var result=calculatePDF20Hash(password,hashData,[]);return compareByteArrays(result,userPassword)},getOwnerKey:function PDF20_getOwnerKey(password,ownerKeySalt,userBytes,ownerEncryption){var hashData=new Uint8Array(password.length+56);hashData.set(password,0);hashData.set(ownerKeySalt,password.length);hashData.set(userBytes,password.length+ownerKeySalt.length);var key=calculatePDF20Hash(password, +hashData,userBytes);var cipher=new AES256Cipher(key);return cipher.decryptBlock(ownerEncryption,false,new Uint8Array(16))},getUserKey:function PDF20_getUserKey(password,userKeySalt,userEncryption){var hashData=new Uint8Array(password.length+8);hashData.set(password,0);hashData.set(userKeySalt,password.length);var key=calculatePDF20Hash(password,hashData,[]);var cipher=new AES256Cipher(key);return cipher.decryptBlock(userEncryption,false,new Uint8Array(16))}};return PDF20}();var CipherTransform=function CipherTransformClosure(){function CipherTransform(stringCipherConstructor, +streamCipherConstructor){this.stringCipherConstructor=stringCipherConstructor;this.streamCipherConstructor=streamCipherConstructor}CipherTransform.prototype={createStream:function CipherTransform_createStream(stream,length){var cipher=new this.streamCipherConstructor;return new DecryptStream(stream,length,function cipherTransformDecryptStream(data,finalize){return cipher.decryptBlock(data,finalize)})},decryptString:function CipherTransform_decryptString(s){var cipher=new this.stringCipherConstructor; +var data=stringToBytes(s);data=cipher.decryptBlock(data,true);return bytesToString(data)}};return CipherTransform}();var CipherTransformFactory=function CipherTransformFactoryClosure(){var defaultPasswordBytes=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function createEncryptionKey20(revision,password,ownerPassword,ownerValidationSalt,ownerKeySalt,uBytes,userPassword,userValidationSalt,userKeySalt,ownerEncryption,userEncryption, +perms){if(password){var passwordLength=Math.min(127,password.length);password=password.subarray(0,passwordLength)}else password=[];var pdfAlgorithm;if(revision===6)pdfAlgorithm=new PDF20;else pdfAlgorithm=new PDF17;if(pdfAlgorithm)if(pdfAlgorithm.checkUserPassword(password,userValidationSalt,userPassword))return pdfAlgorithm.getUserKey(password,userKeySalt,userEncryption);else if(pdfAlgorithm.checkOwnerPassword(password,ownerValidationSalt,uBytes,ownerPassword))return pdfAlgorithm.getOwnerKey(password, +ownerKeySalt,uBytes,ownerEncryption);return null}function prepareKeyData(fileId,password,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata){var hashDataSize=40+ownerPassword.length+fileId.length;var hashData=new Uint8Array(hashDataSize),i=0,j,n;if(password){n=Math.min(32,password.length);for(;i<n;++i)hashData[i]=password[i]}j=0;while(i<32)hashData[i++]=defaultPasswordBytes[j++];for(j=0,n=ownerPassword.length;j<n;++j)hashData[i++]=ownerPassword[j];hashData[i++]=flags&255;hashData[i++]= +flags>>8&255;hashData[i++]=flags>>16&255;hashData[i++]=flags>>>24&255;for(j=0,n=fileId.length;j<n;++j)hashData[i++]=fileId[j];if(revision>=4&&!encryptMetadata){hashData[i++]=255;hashData[i++]=255;hashData[i++]=255;hashData[i++]=255}var hash=calculateMD5(hashData,0,i);var keyLengthInBytes=keyLength>>3;if(revision>=3)for(j=0;j<50;++j)hash=calculateMD5(hash,0,keyLengthInBytes);var encryptionKey=hash.subarray(0,keyLengthInBytes);var cipher,checkData;if(revision>=3){for(i=0;i<32;++i)hashData[i]=defaultPasswordBytes[i]; +for(j=0,n=fileId.length;j<n;++j)hashData[i++]=fileId[j];cipher=new ARCFourCipher(encryptionKey);checkData=cipher.encryptBlock(calculateMD5(hashData,0,i));n=encryptionKey.length;var derivedKey=new Uint8Array(n),k;for(j=1;j<=19;++j){for(k=0;k<n;++k)derivedKey[k]=encryptionKey[k]^j;cipher=new ARCFourCipher(derivedKey);checkData=cipher.encryptBlock(checkData)}for(j=0,n=checkData.length;j<n;++j)if(userPassword[j]!==checkData[j])return null}else{cipher=new ARCFourCipher(encryptionKey);checkData=cipher.encryptBlock(defaultPasswordBytes); +for(j=0,n=checkData.length;j<n;++j)if(userPassword[j]!==checkData[j])return null}return encryptionKey}function decodeUserPassword(password,ownerPassword,revision,keyLength){var hashData=new Uint8Array(32),i=0,j,n;n=Math.min(32,password.length);for(;i<n;++i)hashData[i]=password[i];j=0;while(i<32)hashData[i++]=defaultPasswordBytes[j++];var hash=calculateMD5(hashData,0,i);var keyLengthInBytes=keyLength>>3;if(revision>=3)for(j=0;j<50;++j)hash=calculateMD5(hash,0,hash.length);var cipher,userPassword;if(revision>= +3){userPassword=ownerPassword;var derivedKey=new Uint8Array(keyLengthInBytes),k;for(j=19;j>=0;j--){for(k=0;k<keyLengthInBytes;++k)derivedKey[k]=hash[k]^j;cipher=new ARCFourCipher(derivedKey);userPassword=cipher.encryptBlock(userPassword)}}else{cipher=new ARCFourCipher(hash.subarray(0,keyLengthInBytes));userPassword=cipher.encryptBlock(ownerPassword)}return userPassword}var identityName=Name.get("Identity");function CipherTransformFactory(dict,fileId,password){var filter=dict.get("Filter");if(!isName(filter)|| +filter.name!=="Standard")error("unknown encryption method");this.dict=dict;var algorithm=dict.get("V");if(!isInt(algorithm)||algorithm!==1&&algorithm!==2&&algorithm!==4&&algorithm!==5)error("unsupported encryption algorithm");this.algorithm=algorithm;var keyLength=dict.get("Length")||40;if(!isInt(keyLength)||keyLength<40||keyLength%8!==0)error("invalid key length");var ownerPassword=stringToBytes(dict.get("O")).subarray(0,32);var userPassword=stringToBytes(dict.get("U")).subarray(0,32);var flags= +dict.get("P");var revision=dict.get("R");var encryptMetadata=(algorithm===4||algorithm===5)&&dict.get("EncryptMetadata")!==false;this.encryptMetadata=encryptMetadata;var fileIdBytes=stringToBytes(fileId);var passwordBytes;if(password)passwordBytes=stringToBytes(password);var encryptionKey;if(algorithm!==5)encryptionKey=prepareKeyData(fileIdBytes,passwordBytes,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata);else{var ownerValidationSalt=stringToBytes(dict.get("O")).subarray(32, +40);var ownerKeySalt=stringToBytes(dict.get("O")).subarray(40,48);var uBytes=stringToBytes(dict.get("U")).subarray(0,48);var userValidationSalt=stringToBytes(dict.get("U")).subarray(32,40);var userKeySalt=stringToBytes(dict.get("U")).subarray(40,48);var ownerEncryption=stringToBytes(dict.get("OE"));var userEncryption=stringToBytes(dict.get("UE"));var perms=stringToBytes(dict.get("Perms"));encryptionKey=createEncryptionKey20(revision,passwordBytes,ownerPassword,ownerValidationSalt,ownerKeySalt,uBytes, +userPassword,userValidationSalt,userKeySalt,ownerEncryption,userEncryption,perms)}if(!encryptionKey&&!password)throw new PasswordException("No password given",PasswordResponses.NEED_PASSWORD);else if(!encryptionKey&&password){var decodedPassword=decodeUserPassword(passwordBytes,ownerPassword,revision,keyLength);encryptionKey=prepareKeyData(fileIdBytes,decodedPassword,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata)}if(!encryptionKey)throw new PasswordException("Incorrect Password", +PasswordResponses.INCORRECT_PASSWORD);this.encryptionKey=encryptionKey;if(algorithm>=4){this.cf=dict.get("CF");this.stmf=dict.get("StmF")||identityName;this.strf=dict.get("StrF")||identityName;this.eff=dict.get("EFF")||this.strf}}function buildObjectKey(num,gen,encryptionKey,isAes){var key=new Uint8Array(encryptionKey.length+9),i,n;for(i=0,n=encryptionKey.length;i<n;++i)key[i]=encryptionKey[i];key[i++]=num&255;key[i++]=num>>8&255;key[i++]=num>>16&255;key[i++]=gen&255;key[i++]=gen>>8&255;if(isAes){key[i++]= +115;key[i++]=65;key[i++]=108;key[i++]=84}var hash=calculateMD5(key,0,i);return hash.subarray(0,Math.min(encryptionKey.length+5,16))}function buildCipherConstructor(cf,name,num,gen,key){var cryptFilter=cf.get(name.name);var cfm;if(cryptFilter!==null&&cryptFilter!==undefined)cfm=cryptFilter.get("CFM");if(!cfm||cfm.name==="None")return function cipherTransformFactoryBuildCipherConstructorNone(){return new NullCipher};if("V2"===cfm.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new ARCFourCipher(buildObjectKey(num, +gen,key,false))};if("AESV2"===cfm.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new AES128Cipher(buildObjectKey(num,gen,key,true))};if("AESV3"===cfm.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new AES256Cipher(key)};error("Unknown crypto method")}CipherTransformFactory.prototype={createCipherTransform:function CipherTransformFactory_createCipherTransform(num,gen){if(this.algorithm===4||this.algorithm===5)return new CipherTransform(buildCipherConstructor(this.cf, +this.stmf,num,gen,this.encryptionKey),buildCipherConstructor(this.cf,this.strf,num,gen,this.encryptionKey));var key=buildObjectKey(num,gen,this.encryptionKey,false);var cipherConstructor=function buildCipherCipherConstructor(){return new ARCFourCipher(key)};return new CipherTransform(cipherConstructor,cipherConstructor)}};return CipherTransformFactory}();var PatternType={FUNCTION_BASED:1,AXIAL:2,RADIAL:3,FREE_FORM_MESH:4,LATTICE_FORM_MESH:5,COONS_PATCH_MESH:6,TENSOR_PATCH_MESH:7};var Pattern=function PatternClosure(){function Pattern(){error("should not call Pattern constructor")} +Pattern.prototype={getPattern:function Pattern_getPattern(ctx){error("Should not call Pattern.getStyle: "+ctx)}};Pattern.parseShading=function Pattern_parseShading(shading,matrix,xref,res){var dict=isStream(shading)?shading.dict:shading;var type=dict.get("ShadingType");switch(type){case PatternType.AXIAL:case PatternType.RADIAL:return new Shadings.RadialAxial(dict,matrix,xref,res);case PatternType.FREE_FORM_MESH:case PatternType.LATTICE_FORM_MESH:case PatternType.COONS_PATCH_MESH:case PatternType.TENSOR_PATCH_MESH:return new Shadings.Mesh(shading, +matrix,xref,res);default:UnsupportedManager.notify(UNSUPPORTED_FEATURES.shadingPattern);return new Shadings.Dummy}};return Pattern}();var Shadings={};Shadings.SMALL_NUMBER=.01;Shadings.RadialAxial=function RadialAxialClosure(){function RadialAxial(dict,matrix,xref,res){this.matrix=matrix;this.coordsArr=dict.get("Coords");this.shadingType=dict.get("ShadingType");this.type="Pattern";var cs=dict.get("ColorSpace","CS");cs=ColorSpace.parse(cs,xref,res);this.cs=cs;var t0=0,t1=1;if(dict.has("Domain")){var domainArr= +dict.get("Domain");t0=domainArr[0];t1=domainArr[1]}var extendStart=false,extendEnd=false;if(dict.has("Extend")){var extendArr=dict.get("Extend");extendStart=extendArr[0];extendEnd=extendArr[1]}if(this.shadingType===PatternType.RADIAL&&(!extendStart||!extendEnd)){var x1=this.coordsArr[0];var y1=this.coordsArr[1];var r1=this.coordsArr[2];var x2=this.coordsArr[3];var y2=this.coordsArr[4];var r2=this.coordsArr[5];var distance=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));if(r1<=r2+distance&&r2<=r1+distance)warn("Unsupported radial gradient.")}this.extendStart= +extendStart;this.extendEnd=extendEnd;var fnObj=dict.get("Function");var fn=PDFFunction.parseArray(xref,fnObj);var diff=t1-t0;var step=diff/10;var colorStops=this.colorStops=[];if(t0>=t1||step<=0){info("Bad shading domain.");return}var color=new Float32Array(cs.numComps),ratio=new Float32Array(1);var rgbColor;for(var i=t0;i<=t1;i+=step){ratio[0]=i;fn(ratio,0,color,0);rgbColor=cs.getRgb(color,0);var cssColor=Util.makeCssRgb(rgbColor);colorStops.push([(i-t0)/diff,cssColor])}var background="transparent"; +if(dict.has("Background")){rgbColor=cs.getRgb(dict.get("Background"),0);background=Util.makeCssRgb(rgbColor)}if(!extendStart){colorStops.unshift([0,background]);colorStops[1][0]+=Shadings.SMALL_NUMBER}if(!extendEnd){colorStops[colorStops.length-1][0]-=Shadings.SMALL_NUMBER;colorStops.push([1,background])}this.colorStops=colorStops}RadialAxial.prototype={getIR:function RadialAxial_getIR(){var coordsArr=this.coordsArr;var shadingType=this.shadingType;var type,p0,p1,r0,r1;if(shadingType===PatternType.AXIAL){p0= +[coordsArr[0],coordsArr[1]];p1=[coordsArr[2],coordsArr[3]];r0=null;r1=null;type="axial"}else if(shadingType===PatternType.RADIAL){p0=[coordsArr[0],coordsArr[1]];p1=[coordsArr[3],coordsArr[4]];r0=coordsArr[2];r1=coordsArr[5];type="radial"}else error("getPattern type unknown: "+shadingType);var matrix=this.matrix;if(matrix){p0=Util.applyTransform(p0,matrix);p1=Util.applyTransform(p1,matrix)}return["RadialAxial",type,this.colorStops,p0,p1,r0,r1]}};return RadialAxial}();Shadings.Mesh=function MeshClosure(){function MeshStreamReader(stream, +context){this.stream=stream;this.context=context;this.buffer=0;this.bufferLength=0;var numComps=context.numComps;this.tmpCompsBuf=new Float32Array(numComps);var csNumComps=context.colorSpace;this.tmpCsCompsBuf=context.colorFn?new Float32Array(csNumComps):this.tmpCompsBuf}MeshStreamReader.prototype={get hasData(){if(this.stream.end)return this.stream.pos<this.stream.end;if(this.bufferLength>0)return true;var nextByte=this.stream.getByte();if(nextByte<0)return false;this.buffer=nextByte;this.bufferLength= +8;return true},readBits:function MeshStreamReader_readBits(n){var buffer=this.buffer;var bufferLength=this.bufferLength;if(n===32){if(bufferLength===0)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;buffer=buffer<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var nextByte=this.stream.getByte();this.buffer=nextByte&(1<<bufferLength)-1;return(buffer<<8-bufferLength|(nextByte&255)>>bufferLength)>>>0}if(n===8&& +bufferLength===0)return this.stream.getByte();while(bufferLength<n){buffer=buffer<<8|this.stream.getByte();bufferLength+=8}bufferLength-=n;this.bufferLength=bufferLength;this.buffer=buffer&(1<<bufferLength)-1;return buffer>>bufferLength},align:function MeshStreamReader_align(){this.buffer=0;this.bufferLength=0},readFlag:function MeshStreamReader_readFlag(){return this.readBits(this.context.bitsPerFlag)},readCoordinate:function MeshStreamReader_readCoordinate(){var bitsPerCoordinate=this.context.bitsPerCoordinate; +var xi=this.readBits(bitsPerCoordinate);var yi=this.readBits(bitsPerCoordinate);var decode=this.context.decode;var scale=bitsPerCoordinate<32?1/((1<<bitsPerCoordinate)-1):2.3283064365386963E-10;return[xi*scale*(decode[1]-decode[0])+decode[0],yi*scale*(decode[3]-decode[2])+decode[2]]},readComponents:function MeshStreamReader_readComponents(){var numComps=this.context.numComps;var bitsPerComponent=this.context.bitsPerComponent;var scale=bitsPerComponent<32?1/((1<<bitsPerComponent)-1):2.3283064365386963E-10; +var decode=this.context.decode;var components=this.tmpCompsBuf;for(var i=0,j=4;i<numComps;i++,j+=2){var ci=this.readBits(bitsPerComponent);components[i]=ci*scale*(decode[j+1]-decode[j])+decode[j]}var color=this.tmpCsCompsBuf;if(this.context.colorFn)this.context.colorFn(components,0,color,0);return this.context.colorSpace.getRgb(color,0)}};function decodeType4Shading(mesh,reader){var coords=mesh.coords;var colors=mesh.colors;var operators=[];var ps=[];var verticesLeft=0;while(reader.hasData){var f= +reader.readFlag();var coord=reader.readCoordinate();var color=reader.readComponents();if(verticesLeft===0){assert(0<=f&&f<=2,"Unknown type4 flag");switch(f){case 0:verticesLeft=3;break;case 1:ps.push(ps[ps.length-2],ps[ps.length-1]);verticesLeft=1;break;case 2:ps.push(ps[ps.length-3],ps[ps.length-1]);verticesLeft=1;break}operators.push(f)}ps.push(coords.length);coords.push(coord);colors.push(color);verticesLeft--;reader.align()}var psPacked=new Int32Array(ps);mesh.figures.push({type:"triangles",coords:psPacked, +colors:psPacked})}function decodeType5Shading(mesh,reader,verticesPerRow){var coords=mesh.coords;var colors=mesh.colors;var ps=[];while(reader.hasData){var coord=reader.readCoordinate();var color=reader.readComponents();ps.push(coords.length);coords.push(coord);colors.push(color)}var psPacked=new Int32Array(ps);mesh.figures.push({type:"lattice",coords:psPacked,colors:psPacked,verticesPerRow:verticesPerRow})}var MIN_SPLIT_PATCH_CHUNKS_AMOUNT=3;var MAX_SPLIT_PATCH_CHUNKS_AMOUNT=20;var TRIANGLE_DENSITY= +20;var getB=function getBClosure(){function buildB(count){var lut=[];for(var i=0;i<=count;i++){var t=i/count,t_=1-t;lut.push(new Float32Array([t_*t_*t_,3*t*t_*t_,3*t*t*t_,t*t*t]))}return lut}var cache=[];return function getB(count){if(!cache[count])cache[count]=buildB(count);return cache[count]}}();function buildFigureFromPatch(mesh,index){var figure=mesh.figures[index];assert(figure.type==="patch","Unexpected patch mesh figure");var coords=mesh.coords,colors=mesh.colors;var pi=figure.coords;var ci= +figure.colors;var figureMinX=Math.min(coords[pi[0]][0],coords[pi[3]][0],coords[pi[12]][0],coords[pi[15]][0]);var figureMinY=Math.min(coords[pi[0]][1],coords[pi[3]][1],coords[pi[12]][1],coords[pi[15]][1]);var figureMaxX=Math.max(coords[pi[0]][0],coords[pi[3]][0],coords[pi[12]][0],coords[pi[15]][0]);var figureMaxY=Math.max(coords[pi[0]][1],coords[pi[3]][1],coords[pi[12]][1],coords[pi[15]][1]);var splitXBy=Math.ceil((figureMaxX-figureMinX)*TRIANGLE_DENSITY/(mesh.bounds[2]-mesh.bounds[0]));splitXBy=Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, +Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT,splitXBy));var splitYBy=Math.ceil((figureMaxY-figureMinY)*TRIANGLE_DENSITY/(mesh.bounds[3]-mesh.bounds[1]));splitYBy=Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT,Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT,splitYBy));var verticesPerRow=splitXBy+1;var figureCoords=new Int32Array((splitYBy+1)*verticesPerRow);var figureColors=new Int32Array((splitYBy+1)*verticesPerRow);var k=0;var cl=new Uint8Array(3),cr=new Uint8Array(3);var c0=colors[ci[0]],c1=colors[ci[1]],c2=colors[ci[2]], +c3=colors[ci[3]];var bRow=getB(splitYBy),bCol=getB(splitXBy);for(var row=0;row<=splitYBy;row++){cl[0]=(c0[0]*(splitYBy-row)+c2[0]*row)/splitYBy|0;cl[1]=(c0[1]*(splitYBy-row)+c2[1]*row)/splitYBy|0;cl[2]=(c0[2]*(splitYBy-row)+c2[2]*row)/splitYBy|0;cr[0]=(c1[0]*(splitYBy-row)+c3[0]*row)/splitYBy|0;cr[1]=(c1[1]*(splitYBy-row)+c3[1]*row)/splitYBy|0;cr[2]=(c1[2]*(splitYBy-row)+c3[2]*row)/splitYBy|0;for(var col=0;col<=splitXBy;col++,k++){if((row===0||row===splitYBy)&&(col===0||col===splitXBy))continue;var x= +0,y=0;var q=0;for(var i=0;i<=3;i++)for(var j=0;j<=3;j++,q++){var m=bRow[row][i]*bCol[col][j];x+=coords[pi[q]][0]*m;y+=coords[pi[q]][1]*m}figureCoords[k]=coords.length;coords.push([x,y]);figureColors[k]=colors.length;var newColor=new Uint8Array(3);newColor[0]=(cl[0]*(splitXBy-col)+cr[0]*col)/splitXBy|0;newColor[1]=(cl[1]*(splitXBy-col)+cr[1]*col)/splitXBy|0;newColor[2]=(cl[2]*(splitXBy-col)+cr[2]*col)/splitXBy|0;colors.push(newColor)}}figureCoords[0]=pi[0];figureColors[0]=ci[0];figureCoords[splitXBy]= +pi[3];figureColors[splitXBy]=ci[1];figureCoords[verticesPerRow*splitYBy]=pi[12];figureColors[verticesPerRow*splitYBy]=ci[2];figureCoords[verticesPerRow*splitYBy+splitXBy]=pi[15];figureColors[verticesPerRow*splitYBy+splitXBy]=ci[3];mesh.figures[index]={type:"lattice",coords:figureCoords,colors:figureColors,verticesPerRow:verticesPerRow}}function decodeType6Shading(mesh,reader){var coords=mesh.coords;var colors=mesh.colors;var ps=new Int32Array(16);var cs=new Int32Array(4);while(reader.hasData){var f= +reader.readFlag();assert(0<=f&&f<=3,"Unknown type6 flag");var i,ii;var pi=coords.length;for(i=0,ii=f!==0?8:12;i<ii;i++)coords.push(reader.readCoordinate());var ci=colors.length;for(i=0,ii=f!==0?2:4;i<ii;i++)colors.push(reader.readComponents());var tmp1,tmp2,tmp3,tmp4;switch(f){case 0:ps[12]=pi+3;ps[13]=pi+4;ps[14]=pi+5;ps[15]=pi+6;ps[8]=pi+2;ps[11]=pi+7;ps[4]=pi+1;ps[7]=pi+8;ps[0]=pi;ps[1]=pi+11;ps[2]=pi+10;ps[3]=pi+9;cs[2]=ci+1;cs[3]=ci+2;cs[0]=ci;cs[1]=ci+3;break;case 1:tmp1=ps[12];tmp2=ps[13]; +tmp3=ps[14];tmp4=ps[15];ps[12]=pi+5;ps[13]=pi+4;ps[14]=pi+3;ps[15]=pi+2;ps[8]=pi+6;ps[11]=pi+1;ps[4]=pi+7;ps[7]=pi;ps[0]=tmp1;ps[1]=tmp2;ps[2]=tmp3;ps[3]=tmp4;tmp1=cs[2];tmp2=cs[3];cs[2]=ci+1;cs[3]=ci;cs[0]=tmp1;cs[1]=tmp2;break;case 2:ps[12]=ps[15];ps[13]=pi+7;ps[14]=pi+6;ps[15]=pi+5;ps[8]=ps[11];ps[11]=pi+4;ps[4]=ps[7];ps[7]=pi+3;ps[0]=ps[3];ps[1]=pi;ps[2]=pi+1;ps[3]=pi+2;cs[2]=cs[3];cs[3]=ci+1;cs[0]=cs[1];cs[1]=ci;break;case 3:ps[12]=ps[0];ps[13]=ps[1];ps[14]=ps[2];ps[15]=ps[3];ps[8]=pi;ps[11]= +pi+7;ps[4]=pi+1;ps[7]=pi+6;ps[0]=pi+2;ps[1]=pi+3;ps[2]=pi+4;ps[3]=pi+5;cs[2]=cs[0];cs[3]=cs[1];cs[0]=ci;cs[1]=ci+1;break}ps[5]=coords.length;coords.push([(-4*coords[ps[0]][0]-coords[ps[15]][0]+6*(coords[ps[4]][0]+coords[ps[1]][0])-2*(coords[ps[12]][0]+coords[ps[3]][0])+3*(coords[ps[13]][0]+coords[ps[7]][0]))/9,(-4*coords[ps[0]][1]-coords[ps[15]][1]+6*(coords[ps[4]][1]+coords[ps[1]][1])-2*(coords[ps[12]][1]+coords[ps[3]][1])+3*(coords[ps[13]][1]+coords[ps[7]][1]))/9]);ps[6]=coords.length;coords.push([(-4* +coords[ps[3]][0]-coords[ps[12]][0]+6*(coords[ps[2]][0]+coords[ps[7]][0])-2*(coords[ps[0]][0]+coords[ps[15]][0])+3*(coords[ps[4]][0]+coords[ps[14]][0]))/9,(-4*coords[ps[3]][1]-coords[ps[12]][1]+6*(coords[ps[2]][1]+coords[ps[7]][1])-2*(coords[ps[0]][1]+coords[ps[15]][1])+3*(coords[ps[4]][1]+coords[ps[14]][1]))/9]);ps[9]=coords.length;coords.push([(-4*coords[ps[12]][0]-coords[ps[3]][0]+6*(coords[ps[8]][0]+coords[ps[13]][0])-2*(coords[ps[0]][0]+coords[ps[15]][0])+3*(coords[ps[11]][0]+coords[ps[1]][0]))/ +9,(-4*coords[ps[12]][1]-coords[ps[3]][1]+6*(coords[ps[8]][1]+coords[ps[13]][1])-2*(coords[ps[0]][1]+coords[ps[15]][1])+3*(coords[ps[11]][1]+coords[ps[1]][1]))/9]);ps[10]=coords.length;coords.push([(-4*coords[ps[15]][0]-coords[ps[0]][0]+6*(coords[ps[11]][0]+coords[ps[14]][0])-2*(coords[ps[12]][0]+coords[ps[3]][0])+3*(coords[ps[2]][0]+coords[ps[8]][0]))/9,(-4*coords[ps[15]][1]-coords[ps[0]][1]+6*(coords[ps[11]][1]+coords[ps[14]][1])-2*(coords[ps[12]][1]+coords[ps[3]][1])+3*(coords[ps[2]][1]+coords[ps[8]][1]))/ +9]);mesh.figures.push({type:"patch",coords:new Int32Array(ps),colors:new Int32Array(cs)})}}function decodeType7Shading(mesh,reader){var coords=mesh.coords;var colors=mesh.colors;var ps=new Int32Array(16);var cs=new Int32Array(4);while(reader.hasData){var f=reader.readFlag();assert(0<=f&&f<=3,"Unknown type7 flag");var i,ii;var pi=coords.length;for(i=0,ii=f!==0?12:16;i<ii;i++)coords.push(reader.readCoordinate());var ci=colors.length;for(i=0,ii=f!==0?2:4;i<ii;i++)colors.push(reader.readComponents()); +var tmp1,tmp2,tmp3,tmp4;switch(f){case 0:ps[12]=pi+3;ps[13]=pi+4;ps[14]=pi+5;ps[15]=pi+6;ps[8]=pi+2;ps[9]=pi+13;ps[10]=pi+14;ps[11]=pi+7;ps[4]=pi+1;ps[5]=pi+12;ps[6]=pi+15;ps[7]=pi+8;ps[0]=pi;ps[1]=pi+11;ps[2]=pi+10;ps[3]=pi+9;cs[2]=ci+1;cs[3]=ci+2;cs[0]=ci;cs[1]=ci+3;break;case 1:tmp1=ps[12];tmp2=ps[13];tmp3=ps[14];tmp4=ps[15];ps[12]=pi+5;ps[13]=pi+4;ps[14]=pi+3;ps[15]=pi+2;ps[8]=pi+6;ps[9]=pi+11;ps[10]=pi+10;ps[11]=pi+1;ps[4]=pi+7;ps[5]=pi+8;ps[6]=pi+9;ps[7]=pi;ps[0]=tmp1;ps[1]=tmp2;ps[2]=tmp3; +ps[3]=tmp4;tmp1=cs[2];tmp2=cs[3];cs[2]=ci+1;cs[3]=ci;cs[0]=tmp1;cs[1]=tmp2;break;case 2:ps[12]=ps[15];ps[13]=pi+7;ps[14]=pi+6;ps[15]=pi+5;ps[8]=ps[11];ps[9]=pi+8;ps[10]=pi+11;ps[11]=pi+4;ps[4]=ps[7];ps[5]=pi+9;ps[6]=pi+10;ps[7]=pi+3;ps[0]=ps[3];ps[1]=pi;ps[2]=pi+1;ps[3]=pi+2;cs[2]=cs[3];cs[3]=ci+1;cs[0]=cs[1];cs[1]=ci;break;case 3:ps[12]=ps[0];ps[13]=ps[1];ps[14]=ps[2];ps[15]=ps[3];ps[8]=pi;ps[9]=pi+9;ps[10]=pi+8;ps[11]=pi+7;ps[4]=pi+1;ps[5]=pi+10;ps[6]=pi+11;ps[7]=pi+6;ps[0]=pi+2;ps[1]=pi+3;ps[2]= +pi+4;ps[3]=pi+5;cs[2]=cs[0];cs[3]=cs[1];cs[0]=ci;cs[1]=ci+1;break}mesh.figures.push({type:"patch",coords:new Int32Array(ps),colors:new Int32Array(cs)})}}function updateBounds(mesh){var minX=mesh.coords[0][0],minY=mesh.coords[0][1],maxX=minX,maxY=minY;for(var i=1,ii=mesh.coords.length;i<ii;i++){var x=mesh.coords[i][0],y=mesh.coords[i][1];minX=minX>x?x:minX;minY=minY>y?y:minY;maxX=maxX<x?x:maxX;maxY=maxY<y?y:maxY}mesh.bounds=[minX,minY,maxX,maxY]}function packData(mesh){var i,ii,j,jj;var coords=mesh.coords; +var coordsPacked=new Float32Array(coords.length*2);for(i=0,j=0,ii=coords.length;i<ii;i++){var xy=coords[i];coordsPacked[j++]=xy[0];coordsPacked[j++]=xy[1]}mesh.coords=coordsPacked;var colors=mesh.colors;var colorsPacked=new Uint8Array(colors.length*3);for(i=0,j=0,ii=colors.length;i<ii;i++){var c=colors[i];colorsPacked[j++]=c[0];colorsPacked[j++]=c[1];colorsPacked[j++]=c[2]}mesh.colors=colorsPacked;var figures=mesh.figures;for(i=0,ii=figures.length;i<ii;i++){var figure=figures[i],ps=figure.coords, +cs=figure.colors;for(j=0,jj=ps.length;j<jj;j++){ps[j]*=2;cs[j]*=3}}}function Mesh(stream,matrix,xref,res){assert(isStream(stream),"Mesh data is not a stream");var dict=stream.dict;this.matrix=matrix;this.shadingType=dict.get("ShadingType");this.type="Pattern";this.bbox=dict.get("BBox");var cs=dict.get("ColorSpace","CS");cs=ColorSpace.parse(cs,xref,res);this.cs=cs;this.background=dict.has("Background")?cs.getRgb(dict.get("Background"),0):null;var fnObj=dict.get("Function");var fn=fnObj?PDFFunction.parseArray(xref, +fnObj):null;this.coords=[];this.colors=[];this.figures=[];var decodeContext={bitsPerCoordinate:dict.get("BitsPerCoordinate"),bitsPerComponent:dict.get("BitsPerComponent"),bitsPerFlag:dict.get("BitsPerFlag"),decode:dict.get("Decode"),colorFn:fn,colorSpace:cs,numComps:fn?1:cs.numComps};var reader=new MeshStreamReader(stream,decodeContext);var patchMesh=false;switch(this.shadingType){case PatternType.FREE_FORM_MESH:decodeType4Shading(this,reader);break;case PatternType.LATTICE_FORM_MESH:var verticesPerRow= +dict.get("VerticesPerRow")|0;assert(verticesPerRow>=2,"Invalid VerticesPerRow");decodeType5Shading(this,reader,verticesPerRow);break;case PatternType.COONS_PATCH_MESH:decodeType6Shading(this,reader);patchMesh=true;break;case PatternType.TENSOR_PATCH_MESH:decodeType7Shading(this,reader);patchMesh=true;break;default:error("Unsupported mesh type.");break}if(patchMesh){updateBounds(this);for(var i=0,ii=this.figures.length;i<ii;i++)buildFigureFromPatch(this,i)}updateBounds(this);packData(this)}Mesh.prototype= +{getIR:function Mesh_getIR(){return["Mesh",this.shadingType,this.coords,this.colors,this.figures,this.bounds,this.matrix,this.bbox,this.background]}};return Mesh}();Shadings.Dummy=function DummyClosure(){function Dummy(){this.type="Pattern"}Dummy.prototype={getIR:function Dummy_getIR(){return["Dummy"]}};return Dummy}();function getTilingPatternIR(operatorList,dict,args){var matrix=dict.get("Matrix");var bbox=dict.get("BBox");var xstep=dict.get("XStep");var ystep=dict.get("YStep");var paintType=dict.get("PaintType"); +var tilingType=dict.get("TilingType");return["TilingPattern",args,operatorList,matrix,bbox,xstep,ystep,paintType,tilingType]}var PartialEvaluator=function PartialEvaluatorClosure(){function PartialEvaluator(pdfManager,xref,handler,pageIndex,uniquePrefix,idCounters,fontCache){this.pdfManager=pdfManager;this.xref=xref;this.handler=handler;this.pageIndex=pageIndex;this.uniquePrefix=uniquePrefix;this.idCounters=idCounters;this.fontCache=fontCache}var TIME_SLOT_DURATION_MS=20;var CHECK_TIME_EVERY=100; +function TimeSlotManager(){this.reset()}TimeSlotManager.prototype={check:function TimeSlotManager_check(){if(++this.checked<CHECK_TIME_EVERY)return false;this.checked=0;return this.endTime<=Date.now()},reset:function TimeSlotManager_reset(){this.endTime=Date.now()+TIME_SLOT_DURATION_MS;this.checked=0}};var deferred=Promise.resolve();var TILING_PATTERN=1,SHADING_PATTERN=2;PartialEvaluator.prototype={hasBlendModes:function PartialEvaluator_hasBlendModes(resources){if(!isDict(resources))return false; +var processed=Object.create(null);if(resources.objId)processed[resources.objId]=true;var nodes=[resources];while(nodes.length){var key;var node=nodes.shift();var graphicStates=node.get("ExtGState");if(isDict(graphicStates)){graphicStates=graphicStates.getAll();for(key in graphicStates){var graphicState=graphicStates[key];var bm=graphicState["BM"];if(isName(bm)&&bm.name!=="Normal")return true}}var xObjects=node.get("XObject");if(!isDict(xObjects))continue;xObjects=xObjects.getAll();for(key in xObjects){var xObject= +xObjects[key];if(!isStream(xObject))continue;if(xObject.dict.objId){if(processed[xObject.dict.objId])continue;processed[xObject.dict.objId]=true}var xResources=xObject.dict.get("Resources");if(isDict(xResources)&&(!xResources.objId||!processed[xResources.objId])){nodes.push(xResources);if(xResources.objId)processed[xResources.objId]=true}}}return false},buildFormXObject:function PartialEvaluator_buildFormXObject(resources,xobj,smask,operatorList,initialState){var matrix=xobj.dict.get("Matrix");var bbox= +xobj.dict.get("BBox");var group=xobj.dict.get("Group");if(group){var groupOptions={matrix:matrix,bbox:bbox,smask:smask,isolated:false,knockout:false};var groupSubtype=group.get("S");var colorSpace;if(isName(groupSubtype)&&groupSubtype.name==="Transparency"){groupOptions.isolated=group.get("I")||false;groupOptions.knockout=group.get("K")||false;colorSpace=group.has("CS")?ColorSpace.parse(group.get("CS"),this.xref,resources):null}if(smask&&smask.backdrop){colorSpace=colorSpace||ColorSpace.singletons.rgb; +smask.backdrop=colorSpace.getRgb(smask.backdrop,0)}operatorList.addOp(OPS.beginGroup,[groupOptions])}operatorList.addOp(OPS.paintFormXObjectBegin,[matrix,bbox]);return this.getOperatorList(xobj,xobj.dict.get("Resources")||resources,operatorList,initialState).then(function(){operatorList.addOp(OPS.paintFormXObjectEnd,[]);if(group)operatorList.addOp(OPS.endGroup,[groupOptions])})},buildPaintImageXObject:function PartialEvaluator_buildPaintImageXObject(resources,image,inline,operatorList,cacheKey,cache){var self= +this;var dict=image.dict;var w=dict.get("Width","W");var h=dict.get("Height","H");if(!(w&&isNum(w))||!(h&&isNum(h))){warn("Image dimensions are missing, or not numbers.");return}if(PDFJS.maxImageSize!==-1&&w*h>PDFJS.maxImageSize){warn("Image exceeded maximum allowed size and was removed.");return}var imageMask=dict.get("ImageMask","IM")||false;var imgData,args;if(imageMask){var width=dict.get("Width","W");var height=dict.get("Height","H");var bitStrideLength=width+7>>3;var imgArray=image.getBytes(bitStrideLength* +height);var decode=dict.get("Decode","D");var inverseDecode=!!decode&&decode[0]>0;imgData=PDFImage.createMask(imgArray,width,height,image instanceof DecodeStream,inverseDecode);imgData.cached=true;args=[imgData];operatorList.addOp(OPS.paintImageMaskXObject,args);if(cacheKey){cache.key=cacheKey;cache.fn=OPS.paintImageMaskXObject;cache.args=args}return}var softMask=dict.get("SMask","SM")||false;var mask=dict.get("Mask")||false;var SMALL_IMAGE_DIMENSIONS=200;if(inline&&!softMask&&!mask&&!(image instanceof +JpegStream)&&w+h<SMALL_IMAGE_DIMENSIONS){var imageObj=new PDFImage(this.xref,resources,image,inline,null,null);imgData=imageObj.createImageData(true);operatorList.addOp(OPS.paintInlineImageXObject,[imgData]);return}var uniquePrefix=this.uniquePrefix||"";var objId="img_"+uniquePrefix+ ++this.idCounters.obj;operatorList.addDependency(objId);args=[objId,w,h];if(!softMask&&!mask&&image instanceof JpegStream&&image.isNativelySupported(this.xref,resources)){operatorList.addOp(OPS.paintJpegXObject,args); +this.handler.send("obj",[objId,this.pageIndex,"JpegStream",image.getIR()]);return}PDFImage.buildImage(self.handler,self.xref,resources,image,inline).then(function(imageObj){var imgData=imageObj.createImageData(false);self.handler.send("obj",[objId,self.pageIndex,"Image",imgData],[imgData.data.buffer])}).then(null,function(reason){warn("Unable to decode image: "+reason);self.handler.send("obj",[objId,self.pageIndex,"Image",null])});operatorList.addOp(OPS.paintImageXObject,args);if(cacheKey){cache.key= +cacheKey;cache.fn=OPS.paintImageXObject;cache.args=args}},handleSMask:function PartialEvaluator_handleSmask(smask,resources,operatorList,stateManager){var smaskContent=smask.get("G");var smaskOptions={subtype:smask.get("S").name,backdrop:smask.get("BC")};return this.buildFormXObject(resources,smaskContent,smaskOptions,operatorList,stateManager.state.clone())},handleTilingType:function PartialEvaluator_handleTilingType(fn,args,resources,pattern,patternDict,operatorList){var tilingOpList=new OperatorList; +return this.getOperatorList(pattern,patternDict.get("Resources")||resources,tilingOpList).then(function(){operatorList.addDependencies(tilingOpList.dependencies);operatorList.addOp(fn,getTilingPatternIR({fnArray:tilingOpList.fnArray,argsArray:tilingOpList.argsArray},patternDict,args))})},handleSetFont:function PartialEvaluator_handleSetFont(resources,fontArgs,fontRef,operatorList,state){var fontName;if(fontArgs){fontArgs=fontArgs.slice();fontName=fontArgs[0].name}var self=this;return this.loadFont(fontName, +fontRef,this.xref,resources).then(function(translated){if(!translated.font.isType3Font)return translated;return translated.loadType3Data(self,resources,operatorList).then(function(){return translated})}).then(function(translated){state.font=translated.font;translated.send(self.handler);return translated.loadedName})},handleText:function PartialEvaluator_handleText(chars,state){var font=state.font;var glyphs=font.charsToGlyphs(chars);var isAddToPathSet=!!(state.textRenderingMode&TextRenderingMode.ADD_TO_PATH_FLAG); +if(font.data&&(isAddToPathSet||PDFJS.disableFontFace)){var buildPath=function(fontChar){if(!font.renderer.hasBuiltPath(fontChar)){var path=font.renderer.getPathJs(fontChar);this.handler.send("commonobj",[font.loadedName+"_path_"+fontChar,"FontPath",path])}}.bind(this);for(var i=0,ii=glyphs.length;i<ii;i++){var glyph=glyphs[i];if(glyph===null)continue;buildPath(glyph.fontChar);var accent=glyph.accent;if(accent&&accent.fontChar)buildPath(accent.fontChar)}}return glyphs},setGState:function PartialEvaluator_setGState(resources, +gState,operatorList,xref,stateManager){var gStateObj=[];var gStateMap=gState.map;var self=this;var promise=Promise.resolve();for(var key in gStateMap){var value=gStateMap[key];switch(key){case "Type":break;case "LW":case "LC":case "LJ":case "ML":case "D":case "RI":case "FL":case "CA":case "ca":gStateObj.push([key,value]);break;case "Font":promise=promise.then(function(){return self.handleSetFont(resources,null,value[0],operatorList,stateManager.state).then(function(loadedName){operatorList.addDependency(loadedName); +gStateObj.push([key,[loadedName,value[1]]])})});break;case "BM":gStateObj.push([key,value]);break;case "SMask":if(isName(value)&&value.name==="None"){gStateObj.push([key,false]);break}var dict=xref.fetchIfRef(value);if(isDict(dict)){promise=promise.then(function(){return self.handleSMask(dict,resources,operatorList,stateManager)});gStateObj.push([key,true])}else warn("Unsupported SMask type");break;case "OP":case "op":case "OPM":case "BG":case "BG2":case "UCR":case "UCR2":case "TR":case "TR2":case "HT":case "SM":case "SA":case "AIS":case "TK":info("graphic state operator "+ +key);break;default:info("Unknown graphic state operator "+key);break}}return promise.then(function(){if(gStateObj.length>=0)operatorList.addOp(OPS.setGState,[gStateObj])})},loadFont:function PartialEvaluator_loadFont(fontName,font,xref,resources){function errorFont(){return Promise.resolve(new TranslatedFont("g_font_error",new ErrorFont("Font "+fontName+" is not available"),font))}var fontRef;if(font){assert(isRef(font));fontRef=font}else{var fontRes=resources.get("Font");if(fontRes)fontRef=fontRes.getRaw(fontName); +else{warn("fontRes not available");return errorFont()}}if(!fontRef){warn("fontRef not available");return errorFont()}if(this.fontCache.has(fontRef))return this.fontCache.get(fontRef);font=xref.fetchIfRef(fontRef);if(!isDict(font))return errorFont();if(font.translated)return font.translated;var fontCapability=createPromiseCapability();var preEvaluatedFont=this.preEvaluateFont(font,xref);var descriptor=preEvaluatedFont.descriptor;var fontID=fontRef.num+"_"+fontRef.gen;if(isDict(descriptor)){if(!descriptor.fontAliases)descriptor.fontAliases= +Object.create(null);var fontAliases=descriptor.fontAliases;var hash=preEvaluatedFont.hash;if(fontAliases[hash]){var aliasFontRef=fontAliases[hash].aliasRef;if(aliasFontRef&&this.fontCache.has(aliasFontRef)){this.fontCache.putAlias(fontRef,aliasFontRef);return this.fontCache.get(fontRef)}}if(!fontAliases[hash])fontAliases[hash]={fontID:Font.getFontID()};fontAliases[hash].aliasRef=fontRef;fontID=fontAliases[hash].fontID}var fontRefIsDict=isDict(fontRef);if(!fontRefIsDict)this.fontCache.put(fontRef, +fontCapability.promise);font.loadedName="g_font_"+(fontRefIsDict?fontName.replace(/\W/g,""):fontID);font.translated=fontCapability.promise;var translatedPromise;try{translatedPromise=Promise.resolve(this.translateFont(preEvaluatedFont,xref))}catch(e){translatedPromise=Promise.reject(e)}translatedPromise.then(function(translatedFont){if(translatedFont.fontType!==undefined){var xrefFontStats=xref.stats.fontTypes;xrefFontStats[translatedFont.fontType]=true}fontCapability.resolve(new TranslatedFont(font.loadedName, +translatedFont,font))},function(reason){UnsupportedManager.notify(UNSUPPORTED_FEATURES.font);try{var descriptor=preEvaluatedFont.descriptor;var fontFile3=descriptor&&descriptor.get("FontFile3");var subtype=fontFile3&&fontFile3.get("Subtype");var fontType=getFontType(preEvaluatedFont.type,subtype&&subtype.name);var xrefFontStats=xref.stats.fontTypes;xrefFontStats[fontType]=true}catch(ex){}fontCapability.resolve(new TranslatedFont(font.loadedName,new ErrorFont(reason instanceof Error?reason.message: +reason),font))});return fontCapability.promise},buildPath:function PartialEvaluator_buildPath(operatorList,fn,args){var lastIndex=operatorList.length-1;if(!args)args=[];if(lastIndex<0||operatorList.fnArray[lastIndex]!==OPS.constructPath)operatorList.addOp(OPS.constructPath,[[fn],args]);else{var opArgs=operatorList.argsArray[lastIndex];opArgs[0].push(fn);Array.prototype.push.apply(opArgs[1],args)}},handleColorN:function PartialEvaluator_handleColorN(operatorList,fn,args,cs,patterns,resources,xref){var patternName= +args[args.length-1];var pattern;if(isName(patternName)&&(pattern=patterns.get(patternName.name))){var dict=isStream(pattern)?pattern.dict:pattern;var typeNum=dict.get("PatternType");if(typeNum===TILING_PATTERN){var color=cs.base?cs.base.getRgb(args,0):null;return this.handleTilingType(fn,color,resources,pattern,dict,operatorList)}else if(typeNum===SHADING_PATTERN){var shading=dict.get("Shading");var matrix=dict.get("Matrix");pattern=Pattern.parseShading(shading,matrix,xref,resources);operatorList.addOp(fn, +pattern.getIR());return Promise.resolve()}else return Promise.reject("Unknown PatternType: "+typeNum)}operatorList.addOp(fn,args);return Promise.resolve()},getOperatorList:function PartialEvaluator_getOperatorList(stream,resources,operatorList,initialState){var self=this;var xref=this.xref;var imageCache={};assert(operatorList);resources=resources||Dict.empty;var xobjs=resources.get("XObject")||Dict.empty;var patterns=resources.get("Pattern")||Dict.empty;var stateManager=new StateManager(initialState|| +new EvalState);var preprocessor=new EvaluatorPreprocessor(stream,xref,stateManager);var timeSlotManager=new TimeSlotManager;return new Promise(function next(resolve,reject){timeSlotManager.reset();var stop,operation={},i,ii,cs;while(!(stop=timeSlotManager.check())){operation.args=null;if(!preprocessor.read(operation))break;var args=operation.args;var fn=operation.fn;switch(fn|0){case OPS.paintXObject:if(args[0].code)break;var name=args[0].name;if(imageCache.key===name){operatorList.addOp(imageCache.fn, +imageCache.args);args=null;continue}var xobj=xobjs.get(name);if(xobj){assert(isStream(xobj),"XObject should be a stream");var type=xobj.dict.get("Subtype");assert(isName(type),"XObject should have a Name subtype");if(type.name==="Form"){stateManager.save();return self.buildFormXObject(resources,xobj,null,operatorList,stateManager.state.clone()).then(function(){stateManager.restore();next(resolve,reject)},reject)}else if(type.name==="Image"){self.buildPaintImageXObject(resources,xobj,false,operatorList, +name,imageCache);args=null;continue}else if(type.name==="PS"){info("Ignored XObject subtype PS");continue}else error("Unhandled XObject subtype "+type.name)}break;case OPS.setFont:var fontSize=args[1];return self.handleSetFont(resources,args,null,operatorList,stateManager.state).then(function(loadedName){operatorList.addDependency(loadedName);operatorList.addOp(OPS.setFont,[loadedName,fontSize]);next(resolve,reject)},reject);case OPS.endInlineImage:var cacheKey=args[0].cacheKey;if(cacheKey&&imageCache.key=== +cacheKey){operatorList.addOp(imageCache.fn,imageCache.args);args=null;continue}self.buildPaintImageXObject(resources,args[0],true,operatorList,cacheKey,imageCache);args=null;continue;case OPS.showText:args[0]=self.handleText(args[0],stateManager.state);break;case OPS.showSpacedText:var arr=args[0];var combinedGlyphs=[];var arrLength=arr.length;for(i=0;i<arrLength;++i){var arrItem=arr[i];if(isString(arrItem))Array.prototype.push.apply(combinedGlyphs,self.handleText(arrItem,stateManager.state));else if(isNum(arrItem))combinedGlyphs.push(arrItem)}args[0]= +combinedGlyphs;fn=OPS.showText;break;case OPS.nextLineShowText:operatorList.addOp(OPS.nextLine);args[0]=self.handleText(args[0],stateManager.state);fn=OPS.showText;break;case OPS.nextLineSetSpacingShowText:operatorList.addOp(OPS.nextLine);operatorList.addOp(OPS.setWordSpacing,[args.shift()]);operatorList.addOp(OPS.setCharSpacing,[args.shift()]);args[0]=self.handleText(args[0],stateManager.state);fn=OPS.showText;break;case OPS.setTextRenderingMode:stateManager.state.textRenderingMode=args[0];break; +case OPS.setFillColorSpace:stateManager.state.fillColorSpace=ColorSpace.parse(args[0],xref,resources);continue;case OPS.setStrokeColorSpace:stateManager.state.strokeColorSpace=ColorSpace.parse(args[0],xref,resources);continue;case OPS.setFillColor:cs=stateManager.state.fillColorSpace;args=cs.getRgb(args,0);fn=OPS.setFillRGBColor;break;case OPS.setStrokeColor:cs=stateManager.state.strokeColorSpace;args=cs.getRgb(args,0);fn=OPS.setStrokeRGBColor;break;case OPS.setFillGray:stateManager.state.fillColorSpace= +ColorSpace.singletons.gray;args=ColorSpace.singletons.gray.getRgb(args,0);fn=OPS.setFillRGBColor;break;case OPS.setStrokeGray:stateManager.state.strokeColorSpace=ColorSpace.singletons.gray;args=ColorSpace.singletons.gray.getRgb(args,0);fn=OPS.setStrokeRGBColor;break;case OPS.setFillCMYKColor:stateManager.state.fillColorSpace=ColorSpace.singletons.cmyk;args=ColorSpace.singletons.cmyk.getRgb(args,0);fn=OPS.setFillRGBColor;break;case OPS.setStrokeCMYKColor:stateManager.state.strokeColorSpace=ColorSpace.singletons.cmyk; +args=ColorSpace.singletons.cmyk.getRgb(args,0);fn=OPS.setStrokeRGBColor;break;case OPS.setFillRGBColor:stateManager.state.fillColorSpace=ColorSpace.singletons.rgb;args=ColorSpace.singletons.rgb.getRgb(args,0);break;case OPS.setStrokeRGBColor:stateManager.state.strokeColorSpace=ColorSpace.singletons.rgb;args=ColorSpace.singletons.rgb.getRgb(args,0);break;case OPS.setFillColorN:cs=stateManager.state.fillColorSpace;if(cs.name==="Pattern")return self.handleColorN(operatorList,OPS.setFillColorN,args,cs, +patterns,resources,xref).then(function(){next(resolve,reject)},reject);args=cs.getRgb(args,0);fn=OPS.setFillRGBColor;break;case OPS.setStrokeColorN:cs=stateManager.state.strokeColorSpace;if(cs.name==="Pattern")return self.handleColorN(operatorList,OPS.setStrokeColorN,args,cs,patterns,resources,xref).then(function(){next(resolve,reject)},reject);args=cs.getRgb(args,0);fn=OPS.setStrokeRGBColor;break;case OPS.shadingFill:var shadingRes=resources.get("Shading");if(!shadingRes)error("No shading resource found"); +var shading=shadingRes.get(args[0].name);if(!shading)error("No shading object found");var shadingFill=Pattern.parseShading(shading,null,xref,resources);var patternIR=shadingFill.getIR();args=[patternIR];fn=OPS.shadingFill;break;case OPS.setGState:var dictName=args[0];var extGState=resources.get("ExtGState");if(!isDict(extGState)||!extGState.has(dictName.name))break;var gState=extGState.get(dictName.name);return self.setGState(resources,gState,operatorList,xref,stateManager).then(function(){next(resolve, +reject)},reject);case OPS.moveTo:case OPS.lineTo:case OPS.curveTo:case OPS.curveTo2:case OPS.curveTo3:case OPS.closePath:self.buildPath(operatorList,fn,args);continue;case OPS.rectangle:self.buildPath(operatorList,fn,args);continue}operatorList.addOp(fn,args)}if(stop){deferred.then(function(){next(resolve,reject)});return}for(i=0,ii=preprocessor.savedStatesDepth;i<ii;i++)operatorList.addOp(OPS.restore,[]);resolve()})},getTextContent:function PartialEvaluator_getTextContent(stream,resources,stateManager){stateManager= +stateManager||new StateManager(new TextState);var textContent={items:[],styles:Object.create(null)};var bidiTexts=textContent.items;var SPACE_FACTOR=.35;var MULTI_SPACE_FACTOR=1.5;var self=this;var xref=this.xref;resources=xref.fetchIfRef(resources)||Dict.empty;var xobjs=null;var xobjsCache={};var preprocessor=new EvaluatorPreprocessor(stream,xref,stateManager);var textState;function newTextChunk(){var font=textState.font;if(!(font.loadedName in textContent.styles))textContent.styles[font.loadedName]= +{fontFamily:font.fallbackName,ascent:font.ascent,descent:font.descent,vertical:font.vertical};return{str:[],dir:null,width:0,height:0,transform:null,fontName:font.loadedName}}function runBidi(textChunk){var str=textChunk.str.join("");var bidiResult=PDFJS.bidi(str,-1,textState.font.vertical);textChunk.str=bidiResult.str;textChunk.dir=bidiResult.dir;return textChunk}function handleSetFont(fontName,fontRef){return self.loadFont(fontName,fontRef,xref,resources).then(function(translated){textState.font= +translated.font;textState.fontMatrix=translated.font.fontMatrix||FONT_IDENTITY_MATRIX})}function buildTextGeometry(chars,textChunk){var font=textState.font;textChunk=textChunk||newTextChunk();if(!textChunk.transform){var tsm=[textState.fontSize*textState.textHScale,0,0,textState.fontSize,0,textState.textRise];var trm=textChunk.transform=Util.transform(textState.ctm,Util.transform(textState.textMatrix,tsm));if(!font.vertical)textChunk.height=Math.sqrt(trm[2]*trm[2]+trm[3]*trm[3]);else textChunk.width= +Math.sqrt(trm[0]*trm[0]+trm[1]*trm[1])}var width=0;var height=0;var glyphs=font.charsToGlyphs(chars);var defaultVMetrics=font.defaultVMetrics;for(var i=0;i<glyphs.length;i++){var glyph=glyphs[i];if(!glyph){width+=textState.wordSpacing*textState.textHScale;continue}var vMetricX=null;var vMetricY=null;var glyphWidth=null;if(font.vertical)if(glyph.vmetric){glyphWidth=glyph.vmetric[0];vMetricX=glyph.vmetric[1];vMetricY=glyph.vmetric[2]}else{glyphWidth=glyph.width;vMetricX=glyph.width*.5;vMetricY=defaultVMetrics[2]}else glyphWidth= +glyph.width;var glyphUnicode=glyph.unicode;if(NormalizedUnicodes[glyphUnicode]!==undefined)glyphUnicode=NormalizedUnicodes[glyphUnicode];glyphUnicode=reverseIfRtl(glyphUnicode);var tx=0;var ty=0;if(!font.vertical){var w0=glyphWidth*textState.fontMatrix[0];tx=(w0*textState.fontSize+textState.charSpacing)*textState.textHScale;width+=tx}else{var w1=glyphWidth*textState.fontMatrix[0];ty=w1*textState.fontSize+textState.charSpacing;height+=ty}textState.translateTextMatrix(tx,ty);textChunk.str.push(glyphUnicode)};var a= +textState.textLineMatrix[0];var b=textState.textLineMatrix[1];var scaleLineX=Math.sqrt(a*a+b*b);a=textState.ctm[0];b=textState.ctm[1];var scaleCtmX=Math.sqrt(a*a+b*b);if(!font.vertical)textChunk.width+=width*scaleCtmX*scaleLineX;else textChunk.height+=Math.abs(height*scaleCtmX*scaleLineX);return textChunk}var timeSlotManager=new TimeSlotManager;return new Promise(function next(resolve,reject){timeSlotManager.reset();var stop,operation={},args=[];while(!(stop=timeSlotManager.check())){args.length= +0;operation.args=args;if(!preprocessor.read(operation))break;textState=stateManager.state;var fn=operation.fn;args=operation.args;switch(fn|0){case OPS.setFont:textState.fontSize=args[1];return handleSetFont(args[0].name).then(function(){next(resolve,reject)},reject);case OPS.setTextRise:textState.textRise=args[0];break;case OPS.setHScale:textState.textHScale=args[0]/100;break;case OPS.setLeading:textState.leading=args[0];break;case OPS.moveText:textState.translateTextLineMatrix(args[0],args[1]); +textState.textMatrix=textState.textLineMatrix.slice();break;case OPS.setLeadingMoveText:textState.leading=-args[1];textState.translateTextLineMatrix(args[0],args[1]);textState.textMatrix=textState.textLineMatrix.slice();break;case OPS.nextLine:textState.carriageReturn();break;case OPS.setTextMatrix:textState.setTextMatrix(args[0],args[1],args[2],args[3],args[4],args[5]);textState.setTextLineMatrix(args[0],args[1],args[2],args[3],args[4],args[5]);break;case OPS.setCharSpacing:textState.charSpacing= +args[0];break;case OPS.setWordSpacing:textState.wordSpacing=args[0];break;case OPS.beginText:textState.textMatrix=IDENTITY_MATRIX.slice();textState.textLineMatrix=IDENTITY_MATRIX.slice();break;case OPS.showSpacedText:var items=args[0];var textChunk=newTextChunk();var offset;for(var j=0,jj=items.length;j<jj;j++)if(typeof items[j]==="string")buildTextGeometry(items[j],textChunk);else{var val=items[j]/1E3;if(!textState.font.vertical){offset=-val*textState.fontSize*textState.textHScale*textState.textMatrix[0]; +textState.translateTextMatrix(offset,0);textChunk.width+=offset}else{offset=-val*textState.fontSize*textState.textMatrix[3];textState.translateTextMatrix(0,offset);textChunk.height+=offset}if(items[j]<0&&textState.font.spaceWidth>0){var fakeSpaces=-items[j]/textState.font.spaceWidth;if(fakeSpaces>MULTI_SPACE_FACTOR){fakeSpaces=Math.round(fakeSpaces);while(fakeSpaces--)textChunk.str.push(" ")}else if(fakeSpaces>SPACE_FACTOR)textChunk.str.push(" ")}}bidiTexts.push(runBidi(textChunk));break;case OPS.showText:bidiTexts.push(runBidi(buildTextGeometry(args[0]))); +break;case OPS.nextLineShowText:textState.carriageReturn();bidiTexts.push(runBidi(buildTextGeometry(args[0])));break;case OPS.nextLineSetSpacingShowText:textState.wordSpacing=args[0];textState.charSpacing=args[1];textState.carriageReturn();bidiTexts.push(runBidi(buildTextGeometry(args[2])));break;case OPS.paintXObject:if(args[0].code)break;if(!xobjs)xobjs=resources.get("XObject")||Dict.empty;var name=args[0].name;if(xobjsCache.key===name){if(xobjsCache.texts){Util.appendToArray(bidiTexts,xobjsCache.texts.items); +Util.extendObj(textContent.styles,xobjsCache.texts.styles)}break}var xobj=xobjs.get(name);if(!xobj)break;assert(isStream(xobj),"XObject should be a stream");var type=xobj.dict.get("Subtype");assert(isName(type),"XObject should have a Name subtype");if("Form"!==type.name){xobjsCache.key=name;xobjsCache.texts=null;break}stateManager.save();var matrix=xobj.dict.get("Matrix");if(isArray(matrix)&&matrix.length===6)stateManager.transform(matrix);return self.getTextContent(xobj,xobj.dict.get("Resources")|| +resources,stateManager).then(function(formTextContent){Util.appendToArray(bidiTexts,formTextContent.items);Util.extendObj(textContent.styles,formTextContent.styles);stateManager.restore();xobjsCache.key=name;xobjsCache.texts=formTextContent;next(resolve,reject)},reject);case OPS.setGState:var dictName=args[0];var extGState=resources.get("ExtGState");if(!isDict(extGState)||!extGState.has(dictName.name))break;var gsStateMap=extGState.get(dictName.name);var gsStateFont=null;for(var key in gsStateMap)if(key=== +"Font"){assert(!gsStateFont);gsStateFont=gsStateMap[key]}if(gsStateFont){textState.fontSize=gsStateFont[1];return handleSetFont(gsStateFont[0]).then(function(){next(resolve,reject)},reject)}break}}if(stop){deferred.then(function(){next(resolve,reject)});return}resolve(textContent)})},extractDataStructures:function partialEvaluatorExtractDataStructures(dict,baseDict,xref,properties){var toUnicode=dict.get("ToUnicode")||baseDict.get("ToUnicode");if(toUnicode)properties.toUnicode=this.readToUnicode(toUnicode); +if(properties.composite){var cidSystemInfo=dict.get("CIDSystemInfo");if(isDict(cidSystemInfo))properties.cidSystemInfo={registry:cidSystemInfo.get("Registry"),ordering:cidSystemInfo.get("Ordering"),supplement:cidSystemInfo.get("Supplement")};var cidToGidMap=dict.get("CIDToGIDMap");if(isStream(cidToGidMap))properties.cidToGidMap=this.readCidToGidMap(cidToGidMap)}var differences=[];var baseEncodingName=null;var encoding;if(dict.has("Encoding")){encoding=dict.get("Encoding");if(isDict(encoding)){baseEncodingName= +encoding.get("BaseEncoding");baseEncodingName=isName(baseEncodingName)?baseEncodingName.name:null;if(encoding.has("Differences")){var diffEncoding=encoding.get("Differences");var index=0;for(var j=0,jj=diffEncoding.length;j<jj;j++){var data=diffEncoding[j];if(isNum(data))index=data;else differences[index++]=data.name}}}else if(isName(encoding))baseEncodingName=encoding.name;else error("Encoding is not a Name nor a Dict");if(baseEncodingName!=="MacRomanEncoding"&&baseEncodingName!=="MacExpertEncoding"&& +baseEncodingName!=="WinAnsiEncoding")baseEncodingName=null}if(baseEncodingName)properties.defaultEncoding=Encodings[baseEncodingName].slice();else{encoding=properties.type==="TrueType"?Encodings.WinAnsiEncoding:Encodings.StandardEncoding;if(!!(properties.flags&FontFlags.Symbolic)){encoding=Encodings.MacRomanEncoding;if(!properties.file)if(/Symbol/i.test(properties.name))encoding=Encodings.SymbolSetEncoding;else if(/Dingbats/i.test(properties.name))encoding=Encodings.ZapfDingbatsEncoding}properties.defaultEncoding= +encoding}properties.differences=differences;properties.baseEncodingName=baseEncodingName;properties.dict=dict},readToUnicode:function PartialEvaluator_readToUnicode(toUnicode){var cmap,cmapObj=toUnicode;if(isName(cmapObj)){cmap=CMapFactory.create(cmapObj,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null).getMap();return new ToUnicodeMap(cmap)}else if(isStream(cmapObj)){cmap=CMapFactory.create(cmapObj,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null).getMap();cmap.forEach(function(token,i){var str= +[];for(var k=0;k<token.length;k+=2){var w1=token.charCodeAt(k)<<8|token.charCodeAt(k+1);if((w1&63488)!==55296){str.push(w1);continue}k+=2;var w2=token.charCodeAt(k)<<8|token.charCodeAt(k+1);str.push(((w1&1023)<<10)+(w2&1023)+65536)}cmap[i]=String.fromCharCode.apply(String,str)});return new ToUnicodeMap(cmap)}return null},readCidToGidMap:function PartialEvaluator_readCidToGidMap(cidToGidStream){var glyphsData=cidToGidStream.getBytes();var result=[];for(var j=0,jj=glyphsData.length;j<jj;j++){var glyphID= +glyphsData[j++]<<8|glyphsData[j];if(glyphID===0)continue;var code=j>>1;result[code]=glyphID}return result},extractWidths:function PartialEvaluator_extractWidths(dict,xref,descriptor,properties){var glyphsWidths=[];var defaultWidth=0;var glyphsVMetrics=[];var defaultVMetrics;var i,ii,j,jj,start,code,widths;if(properties.composite){defaultWidth=dict.get("DW")||1E3;widths=dict.get("W");if(widths)for(i=0,ii=widths.length;i<ii;i++){start=widths[i++];code=xref.fetchIfRef(widths[i]);if(isArray(code))for(j= +0,jj=code.length;j<jj;j++)glyphsWidths[start++]=code[j];else{var width=widths[++i];for(j=start;j<=code;j++)glyphsWidths[j]=width}}if(properties.vertical){var vmetrics=dict.get("DW2")||[880,-1E3];defaultVMetrics=[vmetrics[1],defaultWidth*.5,vmetrics[0]];vmetrics=dict.get("W2");if(vmetrics)for(i=0,ii=vmetrics.length;i<ii;i++){start=vmetrics[i++];code=xref.fetchIfRef(vmetrics[i]);if(isArray(code))for(j=0,jj=code.length;j<jj;j++)glyphsVMetrics[start++]=[code[j++],code[j++],code[j]];else{var vmetric=[vmetrics[++i], +vmetrics[++i],vmetrics[++i]];for(j=start;j<=code;j++)glyphsVMetrics[j]=vmetric}}}}else{var firstChar=properties.firstChar;widths=dict.get("Widths");if(widths){j=firstChar;for(i=0,ii=widths.length;i<ii;i++)glyphsWidths[j++]=widths[i];defaultWidth=parseFloat(descriptor.get("MissingWidth"))||0}else{var baseFontName=dict.get("BaseFont");if(isName(baseFontName)){var metrics=this.getBaseFontMetrics(baseFontName.name);glyphsWidths=this.buildCharCodeToWidth(metrics.widths,properties);defaultWidth=metrics.defaultWidth}}}var isMonospace= +true;var firstWidth=defaultWidth;for(var glyph in glyphsWidths){var glyphWidth=glyphsWidths[glyph];if(!glyphWidth)continue;if(!firstWidth){firstWidth=glyphWidth;continue}if(firstWidth!==glyphWidth){isMonospace=false;break}}if(isMonospace)properties.flags|=FontFlags.FixedPitch;properties.defaultWidth=defaultWidth;properties.widths=glyphsWidths;properties.defaultVMetrics=defaultVMetrics;properties.vmetrics=glyphsVMetrics},isSerifFont:function PartialEvaluator_isSerifFont(baseFontName){var fontNameWoStyle= +baseFontName.split("-")[0];return fontNameWoStyle in serifFonts||fontNameWoStyle.search(/serif/gi)!==-1},getBaseFontMetrics:function PartialEvaluator_getBaseFontMetrics(name){var defaultWidth=0;var widths=[];var monospace=false;var lookupName=stdFontMap[name]||name;if(!(lookupName in Metrics))if(this.isSerifFont(name))lookupName="Times-Roman";else lookupName="Helvetica";var glyphWidths=Metrics[lookupName];if(isNum(glyphWidths)){defaultWidth=glyphWidths;monospace=true}else widths=glyphWidths;return{defaultWidth:defaultWidth, +monospace:monospace,widths:widths}},buildCharCodeToWidth:function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName,properties){var widths=Object.create(null);var differences=properties.differences;var encoding=properties.defaultEncoding;for(var charCode=0;charCode<256;charCode++){if(charCode in differences&&widthsByGlyphName[differences[charCode]]){widths[charCode]=widthsByGlyphName[differences[charCode]];continue}if(charCode in encoding&&widthsByGlyphName[encoding[charCode]]){widths[charCode]= +widthsByGlyphName[encoding[charCode]];continue}}return widths},preEvaluateFont:function PartialEvaluator_preEvaluateFont(dict,xref){var baseDict=dict;var type=dict.get("Subtype");assert(isName(type),"invalid font Subtype");var composite=false;var uint8array;if(type.name==="Type0"){var df=dict.get("DescendantFonts");if(!df)error("Descendant fonts are not specified");dict=isArray(df)?xref.fetchIfRef(df[0]):df;type=dict.get("Subtype");assert(isName(type),"invalid font Subtype");composite=true}var descriptor= +dict.get("FontDescriptor");if(descriptor){var hash=new MurmurHash3_64;var encoding=baseDict.getRaw("Encoding");if(isName(encoding))hash.update(encoding.name);else if(isRef(encoding))hash.update(encoding.num+"_"+encoding.gen);var toUnicode=dict.get("ToUnicode")||baseDict.get("ToUnicode");if(isStream(toUnicode)){var stream=toUnicode.str||toUnicode;uint8array=stream.buffer?new Uint8Array(stream.buffer.buffer,0,stream.bufferLength):new Uint8Array(stream.bytes.buffer,stream.start,stream.end-stream.start); +hash.update(uint8array)}else if(isName(toUnicode))hash.update(toUnicode.name);var widths=dict.get("Widths")||baseDict.get("Widths");if(widths){uint8array=new Uint8Array((new Uint32Array(widths)).buffer);hash.update(uint8array)}}return{descriptor:descriptor,dict:dict,baseDict:baseDict,composite:composite,type:type.name,hash:hash?hash.hexdigest():""}},translateFont:function PartialEvaluator_translateFont(preEvaluatedFont,xref){var baseDict=preEvaluatedFont.baseDict;var dict=preEvaluatedFont.dict;var composite= +preEvaluatedFont.composite;var descriptor=preEvaluatedFont.descriptor;var type=preEvaluatedFont.type;var maxCharIndex=composite?65535:255;var properties;if(!descriptor)if(type==="Type3"){descriptor=new Dict(null);descriptor.set("FontName",Name.get(type))}else{var baseFontName=dict.get("BaseFont");if(!isName(baseFontName))error("Base font is not specified");baseFontName=baseFontName.name.replace(/[,_]/g,"-");var metrics=this.getBaseFontMetrics(baseFontName);var fontNameWoStyle=baseFontName.split("-")[0]; +var flags=(this.isSerifFont(fontNameWoStyle)?FontFlags.Serif:0)|(metrics.monospace?FontFlags.FixedPitch:0)|(symbolsFonts[fontNameWoStyle]?FontFlags.Symbolic:FontFlags.Nonsymbolic);properties={type:type,name:baseFontName,widths:metrics.widths,defaultWidth:metrics.defaultWidth,flags:flags,firstChar:0,lastChar:maxCharIndex};this.extractDataStructures(dict,dict,xref,properties);properties.widths=this.buildCharCodeToWidth(metrics.widths,properties);return new Font(baseFontName,null,properties)}var firstChar= +dict.get("FirstChar")||0;var lastChar=dict.get("LastChar")||maxCharIndex;var fontName=descriptor.get("FontName");var baseFont=dict.get("BaseFont");if(isString(fontName))fontName=Name.get(fontName);if(isString(baseFont))baseFont=Name.get(baseFont);if(type!=="Type3"){var fontNameStr=fontName&&fontName.name;var baseFontStr=baseFont&&baseFont.name;if(fontNameStr!==baseFontStr){info("The FontDescriptor's FontName is \""+fontNameStr+'" but should be the same as the Font\'s BaseFont "'+baseFontStr+'"'); +if(fontNameStr&&baseFontStr&&baseFontStr.indexOf(fontNameStr)===0)fontName=baseFont}}fontName=fontName||baseFont;assert(isName(fontName),"invalid font name");var fontFile=descriptor.get("FontFile","FontFile2","FontFile3");if(fontFile)if(fontFile.dict){var subtype=fontFile.dict.get("Subtype");if(subtype)subtype=subtype.name;var length1=fontFile.dict.get("Length1");var length2=fontFile.dict.get("Length2")}properties={type:type,name:fontName.name,subtype:subtype,file:fontFile,length1:length1,length2:length2, +loadedName:baseDict.loadedName,composite:composite,wideChars:composite,fixedPitch:false,fontMatrix:dict.get("FontMatrix")||FONT_IDENTITY_MATRIX,firstChar:firstChar||0,lastChar:lastChar||maxCharIndex,bbox:descriptor.get("FontBBox"),ascent:descriptor.get("Ascent"),descent:descriptor.get("Descent"),xHeight:descriptor.get("XHeight"),capHeight:descriptor.get("CapHeight"),flags:descriptor.get("Flags"),italicAngle:descriptor.get("ItalicAngle"),coded:false};if(composite){var cidEncoding=baseDict.get("Encoding"); +if(isName(cidEncoding))properties.cidEncoding=cidEncoding.name;properties.cMap=CMapFactory.create(cidEncoding,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null);properties.vertical=properties.cMap.vertical}this.extractDataStructures(dict,baseDict,xref,properties);this.extractWidths(dict,xref,descriptor,properties);if(type==="Type3")properties.isType3Font=true;return new Font(fontName.name,fontFile,properties)}};return PartialEvaluator}();var TranslatedFont=function TranslatedFontClosure(){function TranslatedFont(loadedName, +font,dict){this.loadedName=loadedName;this.font=font;this.dict=dict;this.type3Loaded=null;this.sent=false}TranslatedFont.prototype={send:function(handler){if(this.sent)return;var fontData=this.font.exportData();handler.send("commonobj",[this.loadedName,"Font",fontData]);this.sent=true},loadType3Data:function(evaluator,resources,parentOperatorList){assert(this.font.isType3Font);if(this.type3Loaded)return this.type3Loaded;var translatedFont=this.font;var loadCharProcsPromise=Promise.resolve();var charProcs= +this.dict.get("CharProcs").getAll();var fontResources=this.dict.get("Resources")||resources;var charProcKeys=Object.keys(charProcs);var charProcOperatorList={};for(var i=0,n=charProcKeys.length;i<n;++i)loadCharProcsPromise=loadCharProcsPromise.then(function(key){var glyphStream=charProcs[key];var operatorList=new OperatorList;return evaluator.getOperatorList(glyphStream,fontResources,operatorList).then(function(){charProcOperatorList[key]=operatorList.getIR();parentOperatorList.addDependencies(operatorList.dependencies)}, +function(reason){warn('Type3 font resource "'+key+'" is not available');var operatorList=new OperatorList;charProcOperatorList[key]=operatorList.getIR()})}.bind(this,charProcKeys[i]));this.type3Loaded=loadCharProcsPromise.then(function(){translatedFont.charProcOperatorList=charProcOperatorList});return this.type3Loaded}};return TranslatedFont}();var OperatorList=function OperatorListClosure(){var CHUNK_SIZE=1E3;var CHUNK_SIZE_ABOUT=CHUNK_SIZE-5;function getTransfers(queue){var transfers=[];var fnArray= +queue.fnArray,argsArray=queue.argsArray;for(var i=0,ii=queue.length;i<ii;i++)switch(fnArray[i]){case OPS.paintInlineImageXObject:case OPS.paintInlineImageXObjectGroup:case OPS.paintImageMaskXObject:var arg=argsArray[i][0];if(!arg.cached)transfers.push(arg.data.buffer);break}return transfers}function OperatorList(intent,messageHandler,pageIndex){this.messageHandler=messageHandler;this.fnArray=[];this.argsArray=[];this.dependencies={};this.pageIndex=pageIndex;this.intent=intent}OperatorList.prototype= +{get length(){return this.argsArray.length},addOp:function(fn,args){this.fnArray.push(fn);this.argsArray.push(args);if(this.messageHandler)if(this.fnArray.length>=CHUNK_SIZE)this.flush();else if(this.fnArray.length>=CHUNK_SIZE_ABOUT&&(fn===OPS.restore||fn===OPS.endText))this.flush()},addDependency:function(dependency){if(dependency in this.dependencies)return;this.dependencies[dependency]=true;this.addOp(OPS.dependency,[dependency])},addDependencies:function(dependencies){for(var key in dependencies)this.addDependency(key)}, +addOpList:function(opList){Util.extendObj(this.dependencies,opList.dependencies);for(var i=0,ii=opList.length;i<ii;i++)this.addOp(opList.fnArray[i],opList.argsArray[i])},getIR:function(){return{fnArray:this.fnArray,argsArray:this.argsArray,length:this.length}},flush:function(lastChunk){if(this.intent!=="oplist")(new QueueOptimizer).optimize(this);var transfers=getTransfers(this);this.messageHandler.send("RenderPageChunk",{operatorList:{fnArray:this.fnArray,argsArray:this.argsArray,lastChunk:lastChunk, +length:this.length},pageIndex:this.pageIndex,intent:this.intent},transfers);this.dependencies={};this.fnArray.length=0;this.argsArray.length=0}};return OperatorList}();var StateManager=function StateManagerClosure(){function StateManager(initialState){this.state=initialState;this.stateStack=[]}StateManager.prototype={save:function(){var old=this.state;this.stateStack.push(this.state);this.state=old.clone()},restore:function(){var prev=this.stateStack.pop();if(prev)this.state=prev},transform:function(args){this.state.ctm= +Util.transform(this.state.ctm,args)}};return StateManager}();var TextState=function TextStateClosure(){function TextState(){this.ctm=new Float32Array(IDENTITY_MATRIX);this.fontSize=0;this.font=null;this.fontMatrix=FONT_IDENTITY_MATRIX;this.textMatrix=IDENTITY_MATRIX.slice();this.textLineMatrix=IDENTITY_MATRIX.slice();this.charSpacing=0;this.wordSpacing=0;this.leading=0;this.textHScale=1;this.textRise=0}TextState.prototype={setTextMatrix:function TextState_setTextMatrix(a,b,c,d,e,f){var m=this.textMatrix; +m[0]=a;m[1]=b;m[2]=c;m[3]=d;m[4]=e;m[5]=f},setTextLineMatrix:function TextState_setTextMatrix(a,b,c,d,e,f){var m=this.textLineMatrix;m[0]=a;m[1]=b;m[2]=c;m[3]=d;m[4]=e;m[5]=f},translateTextMatrix:function TextState_translateTextMatrix(x,y){var m=this.textMatrix;m[4]=m[0]*x+m[2]*y+m[4];m[5]=m[1]*x+m[3]*y+m[5]},translateTextLineMatrix:function TextState_translateTextMatrix(x,y){var m=this.textLineMatrix;m[4]=m[0]*x+m[2]*y+m[4];m[5]=m[1]*x+m[3]*y+m[5]},calcRenderMatrix:function TextState_calcRendeMatrix(ctm){var tsm= +[this.fontSize*this.textHScale,0,0,this.fontSize,0,this.textRise];return Util.transform(ctm,Util.transform(this.textMatrix,tsm))},carriageReturn:function TextState_carriageReturn(){this.translateTextLineMatrix(0,-this.leading);this.textMatrix=this.textLineMatrix.slice()},clone:function TextState_clone(){var clone=Object.create(this);clone.textMatrix=this.textMatrix.slice();clone.textLineMatrix=this.textLineMatrix.slice();clone.fontMatrix=this.fontMatrix.slice();return clone}};return TextState}(); +var EvalState=function EvalStateClosure(){function EvalState(){this.ctm=new Float32Array(IDENTITY_MATRIX);this.font=null;this.textRenderingMode=TextRenderingMode.FILL;this.fillColorSpace=ColorSpace.singletons.gray;this.strokeColorSpace=ColorSpace.singletons.gray}EvalState.prototype={clone:function CanvasExtraState_clone(){return Object.create(this)}};return EvalState}();var EvaluatorPreprocessor=function EvaluatorPreprocessorClosure(){var OP_MAP={w:{id:OPS.setLineWidth,numArgs:1,variableArgs:false}, +J:{id:OPS.setLineCap,numArgs:1,variableArgs:false},j:{id:OPS.setLineJoin,numArgs:1,variableArgs:false},M:{id:OPS.setMiterLimit,numArgs:1,variableArgs:false},d:{id:OPS.setDash,numArgs:2,variableArgs:false},ri:{id:OPS.setRenderingIntent,numArgs:1,variableArgs:false},i:{id:OPS.setFlatness,numArgs:1,variableArgs:false},gs:{id:OPS.setGState,numArgs:1,variableArgs:false},q:{id:OPS.save,numArgs:0,variableArgs:false},Q:{id:OPS.restore,numArgs:0,variableArgs:false},cm:{id:OPS.transform,numArgs:6,variableArgs:false}, +m:{id:OPS.moveTo,numArgs:2,variableArgs:false},l:{id:OPS.lineTo,numArgs:2,variableArgs:false},c:{id:OPS.curveTo,numArgs:6,variableArgs:false},v:{id:OPS.curveTo2,numArgs:4,variableArgs:false},y:{id:OPS.curveTo3,numArgs:4,variableArgs:false},h:{id:OPS.closePath,numArgs:0,variableArgs:false},re:{id:OPS.rectangle,numArgs:4,variableArgs:false},S:{id:OPS.stroke,numArgs:0,variableArgs:false},s:{id:OPS.closeStroke,numArgs:0,variableArgs:false},f:{id:OPS.fill,numArgs:0,variableArgs:false},F:{id:OPS.fill,numArgs:0, +variableArgs:false},"f*":{id:OPS.eoFill,numArgs:0,variableArgs:false},B:{id:OPS.fillStroke,numArgs:0,variableArgs:false},"B*":{id:OPS.eoFillStroke,numArgs:0,variableArgs:false},b:{id:OPS.closeFillStroke,numArgs:0,variableArgs:false},"b*":{id:OPS.closeEOFillStroke,numArgs:0,variableArgs:false},n:{id:OPS.endPath,numArgs:0,variableArgs:false},W:{id:OPS.clip,numArgs:0,variableArgs:false},"W*":{id:OPS.eoClip,numArgs:0,variableArgs:false},BT:{id:OPS.beginText,numArgs:0,variableArgs:false},ET:{id:OPS.endText, +numArgs:0,variableArgs:false},Tc:{id:OPS.setCharSpacing,numArgs:1,variableArgs:false},Tw:{id:OPS.setWordSpacing,numArgs:1,variableArgs:false},Tz:{id:OPS.setHScale,numArgs:1,variableArgs:false},TL:{id:OPS.setLeading,numArgs:1,variableArgs:false},Tf:{id:OPS.setFont,numArgs:2,variableArgs:false},Tr:{id:OPS.setTextRenderingMode,numArgs:1,variableArgs:false},Ts:{id:OPS.setTextRise,numArgs:1,variableArgs:false},Td:{id:OPS.moveText,numArgs:2,variableArgs:false},TD:{id:OPS.setLeadingMoveText,numArgs:2,variableArgs:false}, +Tm:{id:OPS.setTextMatrix,numArgs:6,variableArgs:false},"T*":{id:OPS.nextLine,numArgs:0,variableArgs:false},Tj:{id:OPS.showText,numArgs:1,variableArgs:false},TJ:{id:OPS.showSpacedText,numArgs:1,variableArgs:false},"'":{id:OPS.nextLineShowText,numArgs:1,variableArgs:false},'"':{id:OPS.nextLineSetSpacingShowText,numArgs:3,variableArgs:false},d0:{id:OPS.setCharWidth,numArgs:2,variableArgs:false},d1:{id:OPS.setCharWidthAndBounds,numArgs:6,variableArgs:false},CS:{id:OPS.setStrokeColorSpace,numArgs:1,variableArgs:false}, +cs:{id:OPS.setFillColorSpace,numArgs:1,variableArgs:false},SC:{id:OPS.setStrokeColor,numArgs:4,variableArgs:true},SCN:{id:OPS.setStrokeColorN,numArgs:33,variableArgs:true},sc:{id:OPS.setFillColor,numArgs:4,variableArgs:true},scn:{id:OPS.setFillColorN,numArgs:33,variableArgs:true},G:{id:OPS.setStrokeGray,numArgs:1,variableArgs:false},g:{id:OPS.setFillGray,numArgs:1,variableArgs:false},RG:{id:OPS.setStrokeRGBColor,numArgs:3,variableArgs:false},rg:{id:OPS.setFillRGBColor,numArgs:3,variableArgs:false}, +K:{id:OPS.setStrokeCMYKColor,numArgs:4,variableArgs:false},k:{id:OPS.setFillCMYKColor,numArgs:4,variableArgs:false},sh:{id:OPS.shadingFill,numArgs:1,variableArgs:false},BI:{id:OPS.beginInlineImage,numArgs:0,variableArgs:false},ID:{id:OPS.beginImageData,numArgs:0,variableArgs:false},EI:{id:OPS.endInlineImage,numArgs:1,variableArgs:false},Do:{id:OPS.paintXObject,numArgs:1,variableArgs:false},MP:{id:OPS.markPoint,numArgs:1,variableArgs:false},DP:{id:OPS.markPointProps,numArgs:2,variableArgs:false},BMC:{id:OPS.beginMarkedContent, +numArgs:1,variableArgs:false},BDC:{id:OPS.beginMarkedContentProps,numArgs:2,variableArgs:false},EMC:{id:OPS.endMarkedContent,numArgs:0,variableArgs:false},BX:{id:OPS.beginCompat,numArgs:0,variableArgs:false},EX:{id:OPS.endCompat,numArgs:0,variableArgs:false},BM:null,BD:null,"true":null,fa:null,fal:null,fals:null,"false":null,nu:null,nul:null,"null":null};function EvaluatorPreprocessor(stream,xref,stateManager){this.parser=new Parser(new Lexer(stream,OP_MAP),false,xref);this.stateManager=stateManager; +this.nonProcessedArgs=[]}EvaluatorPreprocessor.prototype={get savedStatesDepth(){return this.stateManager.stateStack.length},read:function EvaluatorPreprocessor_read(operation){var args=operation.args;while(true){var obj=this.parser.getObj();if(isCmd(obj)){var cmd=obj.cmd;var opSpec=OP_MAP[cmd];if(!opSpec){warn('Unknown command "'+cmd+'"');continue}var fn=opSpec.id;var numArgs=opSpec.numArgs;var argsLength=args!==null?args.length:0;if(!opSpec.variableArgs){if(argsLength!==numArgs){var nonProcessedArgs= +this.nonProcessedArgs;while(argsLength>numArgs){nonProcessedArgs.push(args.shift());argsLength--}while(argsLength<numArgs&&nonProcessedArgs.length!==0){if(!args)args=[];args.unshift(nonProcessedArgs.pop());argsLength++}}if(argsLength<numArgs){info("Command "+fn+": because expected "+numArgs+" args, but received "+argsLength+" args; skipping");args=null;continue}}else if(argsLength>numArgs)info("Command "+fn+": expected [0,"+numArgs+"] args, but received "+argsLength+" args");this.preprocessCommand(fn, +args);operation.fn=fn;operation.args=args;return true}else{if(isEOF(obj))return false;if(obj!==null){if(!args)args=[];args.push(obj instanceof Dict?obj.getAll():obj);assert(args.length<=33,"Too many arguments")}}}},preprocessCommand:function EvaluatorPreprocessor_preprocessCommand(fn,args){switch(fn|0){case OPS.save:this.stateManager.save();break;case OPS.restore:this.stateManager.restore();break;case OPS.transform:this.stateManager.transform(args);break}}};return EvaluatorPreprocessor}();var QueueOptimizer= +function QueueOptimizerClosure(){function addState(parentState,pattern,fn){var state=parentState;for(var i=0,ii=pattern.length-1;i<ii;i++){var item=pattern[i];state=state[item]||(state[item]=[])}state[pattern[pattern.length-1]]=fn}function handlePaintSolidColorImageMask(iFirstSave,count,fnArray,argsArray){var iFirstPIMXO=iFirstSave+2;for(var i=0;i<count;i++){var arg=argsArray[iFirstPIMXO+4*i];var imageMask=arg.length===1&&arg[0];if(imageMask&&imageMask.width===1&&imageMask.height===1&&(!imageMask.data.length|| +imageMask.data.length===1&&imageMask.data[0]===0)){fnArray[iFirstPIMXO+4*i]=OPS.paintSolidColorImageMask;continue}break}return count-i}var InitialState=[];addState(InitialState,[OPS.save,OPS.transform,OPS.paintInlineImageXObject,OPS.restore],function foundInlineImageGroup(context){var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK=10;var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK=200;var MAX_WIDTH=1E3;var IMAGE_PADDING=1;var fnArray=context.fnArray,argsArray=context.argsArray;var curr=context.iCurr;var iFirstSave=curr- +3;var iFirstTransform=curr-2;var iFirstPIIXO=curr-1;var i=iFirstSave+4;var ii=fnArray.length;while(i+3<ii){if(fnArray[i]!==OPS.save||fnArray[i+1]!==OPS.transform||fnArray[i+2]!==OPS.paintInlineImageXObject||fnArray[i+3]!==OPS.restore)break;i+=4}var count=Math.min((i-iFirstSave)/4,MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);if(count<MIN_IMAGES_IN_INLINE_IMAGES_BLOCK)return i;var maxX=0;var map=[],maxLineHeight=0;var currentX=IMAGE_PADDING,currentY=IMAGE_PADDING;var q;for(q=0;q<count;q++){var transform=argsArray[iFirstTransform+ +(q<<2)];var img=argsArray[iFirstPIIXO+(q<<2)][0];if(currentX+img.width>MAX_WIDTH){maxX=Math.max(maxX,currentX);currentY+=maxLineHeight+2*IMAGE_PADDING;currentX=0;maxLineHeight=0}map.push({transform:transform,x:currentX,y:currentY,w:img.width,h:img.height});currentX+=img.width+2*IMAGE_PADDING;maxLineHeight=Math.max(maxLineHeight,img.height)}var imgWidth=Math.max(maxX,currentX)+IMAGE_PADDING;var imgHeight=currentY+maxLineHeight+IMAGE_PADDING;var imgData=new Uint8Array(imgWidth*imgHeight*4);var imgRowSize= +imgWidth<<2;for(q=0;q<count;q++){var data=argsArray[iFirstPIIXO+(q<<2)][0].data;var rowSize=map[q].w<<2;var dataOffset=0;var offset=map[q].x+map[q].y*imgWidth<<2;imgData.set(data.subarray(0,rowSize),offset-imgRowSize);for(var k=0,kk=map[q].h;k<kk;k++){imgData.set(data.subarray(dataOffset,dataOffset+rowSize),offset);dataOffset+=rowSize;offset+=imgRowSize}imgData.set(data.subarray(dataOffset-rowSize,dataOffset),offset);while(offset>=0){data[offset-4]=data[offset];data[offset-3]=data[offset+1];data[offset- +2]=data[offset+2];data[offset-1]=data[offset+3];data[offset+rowSize]=data[offset+rowSize-4];data[offset+rowSize+1]=data[offset+rowSize-3];data[offset+rowSize+2]=data[offset+rowSize-2];data[offset+rowSize+3]=data[offset+rowSize-1];offset-=imgRowSize}}fnArray.splice(iFirstSave,count*4,OPS.paintInlineImageXObjectGroup);argsArray.splice(iFirstSave,count*4,[{width:imgWidth,height:imgHeight,kind:ImageKind.RGBA_32BPP,data:imgData},map]);return iFirstSave+1});addState(InitialState,[OPS.save,OPS.transform, +OPS.paintImageMaskXObject,OPS.restore],function foundImageMaskGroup(context){var MIN_IMAGES_IN_MASKS_BLOCK=10;var MAX_IMAGES_IN_MASKS_BLOCK=100;var MAX_SAME_IMAGES_IN_MASKS_BLOCK=1E3;var fnArray=context.fnArray,argsArray=context.argsArray;var curr=context.iCurr;var iFirstSave=curr-3;var iFirstTransform=curr-2;var iFirstPIMXO=curr-1;var i=iFirstSave+4;var ii=fnArray.length;while(i+3<ii){if(fnArray[i]!==OPS.save||fnArray[i+1]!==OPS.transform||fnArray[i+2]!==OPS.paintImageMaskXObject||fnArray[i+3]!== +OPS.restore)break;i+=4}var count=(i-iFirstSave)/4;count=handlePaintSolidColorImageMask(iFirstSave,count,fnArray,argsArray);if(count<MIN_IMAGES_IN_MASKS_BLOCK)return i;var q;var isSameImage=false;var iTransform,transformArgs;var firstPIMXOArg0=argsArray[iFirstPIMXO][0];if(argsArray[iFirstTransform][1]===0&&argsArray[iFirstTransform][2]===0){isSameImage=true;var firstTransformArg0=argsArray[iFirstTransform][0];var firstTransformArg3=argsArray[iFirstTransform][3];iTransform=iFirstTransform+4;var iPIMXO= +iFirstPIMXO+4;for(q=1;q<count;q++,iTransform+=4,iPIMXO+=4){transformArgs=argsArray[iTransform];if(argsArray[iPIMXO][0]!==firstPIMXOArg0||transformArgs[0]!==firstTransformArg0||transformArgs[1]!==0||transformArgs[2]!==0||transformArgs[3]!==firstTransformArg3){if(q<MIN_IMAGES_IN_MASKS_BLOCK)isSameImage=false;else count=q;break}}}if(isSameImage){count=Math.min(count,MAX_SAME_IMAGES_IN_MASKS_BLOCK);var positions=new Float32Array(count*2);iTransform=iFirstTransform;for(q=0;q<count;q++,iTransform+=4){transformArgs= +argsArray[iTransform];positions[q<<1]=transformArgs[4];positions[(q<<1)+1]=transformArgs[5]}fnArray.splice(iFirstSave,count*4,OPS.paintImageMaskXObjectRepeat);argsArray.splice(iFirstSave,count*4,[firstPIMXOArg0,firstTransformArg0,firstTransformArg3,positions])}else{count=Math.min(count,MAX_IMAGES_IN_MASKS_BLOCK);var images=[];for(q=0;q<count;q++){transformArgs=argsArray[iFirstTransform+(q<<2)];var maskParams=argsArray[iFirstPIMXO+(q<<2)][0];images.push({data:maskParams.data,width:maskParams.width, +height:maskParams.height,transform:transformArgs})}fnArray.splice(iFirstSave,count*4,OPS.paintImageMaskXObjectGroup);argsArray.splice(iFirstSave,count*4,[images])}return iFirstSave+1});addState(InitialState,[OPS.save,OPS.transform,OPS.paintImageXObject,OPS.restore],function(context){var MIN_IMAGES_IN_BLOCK=3;var MAX_IMAGES_IN_BLOCK=1E3;var fnArray=context.fnArray,argsArray=context.argsArray;var curr=context.iCurr;var iFirstSave=curr-3;var iFirstTransform=curr-2;var iFirstPIXO=curr-1;var iFirstRestore= +curr;if(argsArray[iFirstTransform][1]!==0||argsArray[iFirstTransform][2]!==0)return iFirstRestore+1;var firstPIXOArg0=argsArray[iFirstPIXO][0];var firstTransformArg0=argsArray[iFirstTransform][0];var firstTransformArg3=argsArray[iFirstTransform][3];var i=iFirstSave+4;var ii=fnArray.length;while(i+3<ii){if(fnArray[i]!==OPS.save||fnArray[i+1]!==OPS.transform||fnArray[i+2]!==OPS.paintImageXObject||fnArray[i+3]!==OPS.restore)break;if(argsArray[i+1][0]!==firstTransformArg0||argsArray[i+1][1]!==0||argsArray[i+ +1][2]!==0||argsArray[i+1][3]!==firstTransformArg3)break;if(argsArray[i+2][0]!==firstPIXOArg0)break;i+=4}var count=Math.min((i-iFirstSave)/4,MAX_IMAGES_IN_BLOCK);if(count<MIN_IMAGES_IN_BLOCK)return i;var positions=new Float32Array(count*2);var iTransform=iFirstTransform;for(var q=0;q<count;q++,iTransform+=4){var transformArgs=argsArray[iTransform];positions[q<<1]=transformArgs[4];positions[(q<<1)+1]=transformArgs[5]}var args=[firstPIXOArg0,firstTransformArg0,firstTransformArg3,positions];fnArray.splice(iFirstSave, +count*4,OPS.paintImageXObjectRepeat);argsArray.splice(iFirstSave,count*4,args);return iFirstSave+1});addState(InitialState,[OPS.beginText,OPS.setFont,OPS.setTextMatrix,OPS.showText,OPS.endText],function(context){var MIN_CHARS_IN_BLOCK=3;var MAX_CHARS_IN_BLOCK=1E3;var fnArray=context.fnArray,argsArray=context.argsArray;var curr=context.iCurr;var iFirstBeginText=curr-4;var iFirstSetFont=curr-3;var iFirstSetTextMatrix=curr-2;var iFirstShowText=curr-1;var iFirstEndText=curr;var firstSetFontArg0=argsArray[iFirstSetFont][0]; +var firstSetFontArg1=argsArray[iFirstSetFont][1];var i=iFirstBeginText+5;var ii=fnArray.length;while(i+4<ii){if(fnArray[i]!==OPS.beginText||fnArray[i+1]!==OPS.setFont||fnArray[i+2]!==OPS.setTextMatrix||fnArray[i+3]!==OPS.showText||fnArray[i+4]!==OPS.endText)break;if(argsArray[i+1][0]!==firstSetFontArg0||argsArray[i+1][1]!==firstSetFontArg1)break;i+=5}var count=Math.min((i-iFirstBeginText)/5,MAX_CHARS_IN_BLOCK);if(count<MIN_CHARS_IN_BLOCK)return i;var iFirst=iFirstBeginText;if(iFirstBeginText>=4&& +fnArray[iFirstBeginText-4]===fnArray[iFirstSetFont]&&fnArray[iFirstBeginText-3]===fnArray[iFirstSetTextMatrix]&&fnArray[iFirstBeginText-2]===fnArray[iFirstShowText]&&fnArray[iFirstBeginText-1]===fnArray[iFirstEndText]&&argsArray[iFirstBeginText-4][0]===firstSetFontArg0&&argsArray[iFirstBeginText-4][1]===firstSetFontArg1){count++;iFirst-=5}var iEndText=iFirst+4;for(var q=1;q<count;q++){fnArray.splice(iEndText,3);argsArray.splice(iEndText,3);iEndText+=2}return iEndText+1});function QueueOptimizer(){} +QueueOptimizer.prototype={optimize:function QueueOptimizer_optimize(queue){var fnArray=queue.fnArray,argsArray=queue.argsArray;var context={iCurr:0,fnArray:fnArray,argsArray:argsArray};var state;var i=0,ii=fnArray.length;while(i<ii){state=(state||InitialState)[fnArray[i]];if(typeof state==="function"){context.iCurr=i;i=state(context);state=undefined;ii=context.fnArray.length}else i++}}};return QueueOptimizer}();var BUILT_IN_CMAPS=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2", +"78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4", +"Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V", +"H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H", +"UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H", +"UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"];var CMap=function CMapClosure(){function CMap(builtInCMap){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.vertical=false;this.useCMap=null;this.builtInCMap=builtInCMap}CMap.prototype={addCodespaceRange:function(n,low,high){this.codespaceRanges[n-1].push(low, +high);this.numCodespaceRanges++},mapCidRange:function(low,high,dstLow){while(low<=high)this._map[low++]=dstLow++},mapBfRange:function(low,high,dstLow){var lastByte=dstLow.length-1;while(low<=high){this._map[low++]=dstLow;dstLow=dstLow.substr(0,lastByte)+String.fromCharCode(dstLow.charCodeAt(lastByte)+1)}},mapBfRangeToArray:function(low,high,array){var i=0,ii=array.length;while(low<=high&&i<ii){this._map[low]=array[i++];++low}},mapOne:function(src,dst){this._map[src]=dst},lookup:function(code){return this._map[code]}, +contains:function(code){return this._map[code]!==undefined},forEach:function(callback){var map=this._map;var length=map.length;var i;if(length<=65536)for(i=0;i<length;i++){if(map[i]!==undefined)callback(i,map[i])}else for(i in this._map)callback(i,map[i])},charCodeOf:function(value){return this._map.indexOf(value)},getMap:function(){return this._map},readCharCode:function(str,offset,out){var c=0;var codespaceRanges=this.codespaceRanges;var codespaceRangesLen=this.codespaceRanges.length;for(var n= +0;n<codespaceRangesLen;n++){c=(c<<8|str.charCodeAt(offset+n))>>>0;var codespaceRange=codespaceRanges[n];for(var k=0,kk=codespaceRange.length;k<kk;){var low=codespaceRange[k++];var high=codespaceRange[k++];if(c>=low&&c<=high){out.charcode=c;out.length=n+1;return}}}out.charcode=0;out.length=1}};return CMap}();var IdentityCMap=function IdentityCMapClosure(){function IdentityCMap(vertical,n){CMap.call(this);this.vertical=vertical;this.addCodespaceRange(n,0,65535)}Util.inherit(IdentityCMap,CMap,{});IdentityCMap.prototype= +{addCodespaceRange:CMap.prototype.addCodespaceRange,mapCidRange:function(low,high,dstLow){error("should not call mapCidRange")},mapBfRange:function(low,high,dstLow){error("should not call mapBfRange")},mapBfRangeToArray:function(low,high,array){error("should not call mapBfRangeToArray")},mapOne:function(src,dst){error("should not call mapCidOne")},lookup:function(code){return isInt(code)&&code<=65535?code:undefined},contains:function(code){return isInt(code)&&code<=65535},forEach:function(callback){for(var i= +0;i<=65535;i++)callback(i,i)},charCodeOf:function(value){return isInt(value)&&value<=65535?value:-1},getMap:function(){var map=new Array(65536);for(var i=0;i<=65535;i++)map[i]=i;return map},readCharCode:CMap.prototype.readCharCode};return IdentityCMap}();var BinaryCMapReader=function BinaryCMapReaderClosure(){function fetchBinaryData(url){var nonBinaryRequest=PDFJS.disableWorker;var request=new XMLHttpRequest;request.open("GET",url,false);if(!nonBinaryRequest)try{request.responseType="arraybuffer"; +nonBinaryRequest=request.responseType!=="arraybuffer"}catch(e){nonBinaryRequest=true}if(nonBinaryRequest&&request.overrideMimeType)request.overrideMimeType("text/plain; charset=x-user-defined");request.send(null);if(nonBinaryRequest?!request.responseText:!request.response)error("Unable to get binary cMap at: "+url);if(nonBinaryRequest){var data=Array.prototype.map.call(request.responseText,function(ch){return ch.charCodeAt(0)&255});return new Uint8Array(data)}return new Uint8Array(request.response)} +function hexToInt(a,size){var n=0;for(var i=0;i<=size;i++)n=n<<8|a[i];return n>>>0}function hexToStr(a,size){if(size===1)return String.fromCharCode(a[0],a[1]);if(size===3)return String.fromCharCode(a[0],a[1],a[2],a[3]);return String.fromCharCode.apply(null,a.subarray(0,size+1))}function addHex(a,b,size){var c=0;for(var i=size;i>=0;i--){c+=a[i]+b[i];a[i]=c&255;c>>=8}}function incHex(a,size){var c=1;for(var i=size;i>=0&&c>0;i--){c+=a[i];a[i]=c&255;c>>=8}}var MAX_NUM_SIZE=16;var MAX_ENCODED_NUM_SIZE= +19;function BinaryCMapStream(data){this.buffer=data;this.pos=0;this.end=data.length;this.tmpBuf=new Uint8Array(MAX_ENCODED_NUM_SIZE)}BinaryCMapStream.prototype={readByte:function(){if(this.pos>=this.end)return-1;return this.buffer[this.pos++]},readNumber:function(){var n=0;var last;do{var b=this.readByte();if(b<0)error("unexpected EOF in bcmap");last=!(b&128);n=n<<7|b&127}while(!last);return n},readSigned:function(){var n=this.readNumber();return n&1?~(n>>>1):n>>>1},readHex:function(num,size){num.set(this.buffer.subarray(this.pos, +this.pos+size+1));this.pos+=size+1},readHexNumber:function(num,size){var last;var stack=this.tmpBuf,sp=0;do{var b=this.readByte();if(b<0)error("unexpected EOF in bcmap");last=!(b&128);stack[sp++]=b&127}while(!last);var i=size,buffer=0,bufferSize=0;while(i>=0){while(bufferSize<8&&stack.length>0){buffer=stack[--sp]<<bufferSize|buffer;bufferSize+=7}num[i]=buffer&255;i--;buffer>>=8;bufferSize-=8}},readHexSigned:function(num,size){this.readHexNumber(num,size);var sign=num[size]&1?255:0;var c=0;for(var i= +0;i<=size;i++){c=(c&1)<<8|num[i];num[i]=c>>1^sign}},readString:function(){var len=this.readNumber();var s="";for(var i=0;i<len;i++)s+=String.fromCharCode(this.readNumber());return s}};function processBinaryCMap(url,cMap,extend){var data=fetchBinaryData(url);var stream=new BinaryCMapStream(data);var header=stream.readByte();cMap.vertical=!!(header&1);var useCMap=null;var start=new Uint8Array(MAX_NUM_SIZE);var end=new Uint8Array(MAX_NUM_SIZE);var char=new Uint8Array(MAX_NUM_SIZE);var charCode=new Uint8Array(MAX_NUM_SIZE); +var tmp=new Uint8Array(MAX_NUM_SIZE);var code;var b;while((b=stream.readByte())>=0){var type=b>>5;if(type===7){switch(b&31){case 0:stream.readString();break;case 1:useCMap=stream.readString();break}continue}var sequence=!!(b&16);var dataSize=b&15;assert(dataSize+1<=MAX_NUM_SIZE);var ucs2DataSize=1;var subitemsCount=stream.readNumber();var i;switch(type){case 0:stream.readHex(start,dataSize);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);cMap.addCodespaceRange(dataSize+1,hexToInt(start, +dataSize),hexToInt(end,dataSize));for(i=1;i<subitemsCount;i++){incHex(end,dataSize);stream.readHexNumber(start,dataSize);addHex(start,end,dataSize);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);cMap.addCodespaceRange(dataSize+1,hexToInt(start,dataSize),hexToInt(end,dataSize))}break;case 1:stream.readHex(start,dataSize);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);code=stream.readNumber();for(i=1;i<subitemsCount;i++){incHex(end,dataSize);stream.readHexNumber(start, +dataSize);addHex(start,end,dataSize);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);code=stream.readNumber()}break;case 2:stream.readHex(char,dataSize);code=stream.readNumber();cMap.mapOne(hexToInt(char,dataSize),code);for(i=1;i<subitemsCount;i++){incHex(char,dataSize);if(!sequence){stream.readHexNumber(tmp,dataSize);addHex(char,tmp,dataSize)}code=stream.readSigned()+(code+1);cMap.mapOne(hexToInt(char,dataSize),code)}break;case 3:stream.readHex(start,dataSize);stream.readHexNumber(end, +dataSize);addHex(end,start,dataSize);code=stream.readNumber();cMap.mapCidRange(hexToInt(start,dataSize),hexToInt(end,dataSize),code);for(i=1;i<subitemsCount;i++){incHex(end,dataSize);if(!sequence){stream.readHexNumber(start,dataSize);addHex(start,end,dataSize)}else start.set(end);stream.readHexNumber(end,dataSize);addHex(end,start,dataSize);code=stream.readNumber();cMap.mapCidRange(hexToInt(start,dataSize),hexToInt(end,dataSize),code)}break;case 4:stream.readHex(char,ucs2DataSize);stream.readHex(charCode, +dataSize);cMap.mapOne(hexToInt(char,ucs2DataSize),hexToStr(charCode,dataSize));for(i=1;i<subitemsCount;i++){incHex(char,ucs2DataSize);if(!sequence){stream.readHexNumber(tmp,ucs2DataSize);addHex(char,tmp,ucs2DataSize)}incHex(charCode,dataSize);stream.readHexSigned(tmp,dataSize);addHex(charCode,tmp,dataSize);cMap.mapOne(hexToInt(char,ucs2DataSize),hexToStr(charCode,dataSize))}break;case 5:stream.readHex(start,ucs2DataSize);stream.readHexNumber(end,ucs2DataSize);addHex(end,start,ucs2DataSize);stream.readHex(charCode, +dataSize);cMap.mapBfRange(hexToInt(start,ucs2DataSize),hexToInt(end,ucs2DataSize),hexToStr(charCode,dataSize));for(i=1;i<subitemsCount;i++){incHex(end,ucs2DataSize);if(!sequence){stream.readHexNumber(start,ucs2DataSize);addHex(start,end,ucs2DataSize)}else start.set(end);stream.readHexNumber(end,ucs2DataSize);addHex(end,start,ucs2DataSize);stream.readHex(charCode,dataSize);cMap.mapBfRange(hexToInt(start,ucs2DataSize),hexToInt(end,ucs2DataSize),hexToStr(charCode,dataSize))}break;default:error("Unknown type: "+ +type);break}}if(useCMap)extend(useCMap);return cMap}function BinaryCMapReader(){}BinaryCMapReader.prototype={read:processBinaryCMap};return BinaryCMapReader}();var CMapFactory=function CMapFactoryClosure(){function strToInt(str){var a=0;for(var i=0;i<str.length;i++)a=a<<8|str.charCodeAt(i);return a>>>0}function expectString(obj){if(!isString(obj))error("Malformed CMap: expected string.")}function expectInt(obj){if(!isInt(obj))error("Malformed CMap: expected int.")}function parseBfChar(cMap,lexer){while(true){var obj= +lexer.getObj();if(isEOF(obj))break;if(isCmd(obj,"endbfchar"))return;expectString(obj);var src=strToInt(obj);obj=lexer.getObj();expectString(obj);var dst=obj;cMap.mapOne(src,dst)}}function parseBfRange(cMap,lexer){while(true){var obj=lexer.getObj();if(isEOF(obj))break;if(isCmd(obj,"endbfrange"))return;expectString(obj);var low=strToInt(obj);obj=lexer.getObj();expectString(obj);var high=strToInt(obj);obj=lexer.getObj();if(isInt(obj)||isString(obj)){var dstLow=isInt(obj)?String.fromCharCode(obj):obj; +cMap.mapBfRange(low,high,dstLow)}else if(isCmd(obj,"[")){obj=lexer.getObj();var array=[];while(!isCmd(obj,"]")&&!isEOF(obj)){array.push(obj);obj=lexer.getObj()}cMap.mapBfRangeToArray(low,high,array)}else break}error("Invalid bf range.")}function parseCidChar(cMap,lexer){while(true){var obj=lexer.getObj();if(isEOF(obj))break;if(isCmd(obj,"endcidchar"))return;expectString(obj);var src=strToInt(obj);obj=lexer.getObj();expectInt(obj);var dst=obj;cMap.mapOne(src,dst)}}function parseCidRange(cMap,lexer){while(true){var obj= +lexer.getObj();if(isEOF(obj))break;if(isCmd(obj,"endcidrange"))return;expectString(obj);var low=strToInt(obj);obj=lexer.getObj();expectString(obj);var high=strToInt(obj);obj=lexer.getObj();expectInt(obj);var dstLow=obj;cMap.mapCidRange(low,high,dstLow)}}function parseCodespaceRange(cMap,lexer){while(true){var obj=lexer.getObj();if(isEOF(obj))break;if(isCmd(obj,"endcodespacerange"))return;if(!isString(obj))break;var low=strToInt(obj);obj=lexer.getObj();if(!isString(obj))break;var high=strToInt(obj); +cMap.addCodespaceRange(obj.length,low,high)}error("Invalid codespace range.")}function parseWMode(cMap,lexer){var obj=lexer.getObj();if(isInt(obj))cMap.vertical=!!obj}function parseCMap(cMap,lexer,builtInCMapParams,useCMap){var previous;var embededUseCMap;objLoop:while(true){var obj=lexer.getObj();if(isEOF(obj))break;else if(isName(obj)){if(obj.name==="WMode")parseWMode(cMap,lexer);previous=obj}else if(isCmd(obj))switch(obj.cmd){case "endcmap":break objLoop;case "usecmap":if(isName(previous))embededUseCMap= +previous.name;break;case "begincodespacerange":parseCodespaceRange(cMap,lexer);break;case "beginbfchar":parseBfChar(cMap,lexer);break;case "begincidchar":parseCidChar(cMap,lexer);break;case "beginbfrange":parseBfRange(cMap,lexer);break;case "begincidrange":parseCidRange(cMap,lexer);break}}if(!useCMap&&embededUseCMap)useCMap=embededUseCMap;if(useCMap)extendCMap(cMap,builtInCMapParams,useCMap)}function extendCMap(cMap,builtInCMapParams,useCMap){cMap.useCMap=createBuiltInCMap(useCMap,builtInCMapParams); +if(cMap.numCodespaceRanges===0){var useCodespaceRanges=cMap.useCMap.codespaceRanges;for(var i=0;i<useCodespaceRanges.length;i++)cMap.codespaceRanges[i]=useCodespaceRanges[i].slice();cMap.numCodespaceRanges=cMap.useCMap.numCodespaceRanges}cMap.useCMap.forEach(function(key,value){if(!cMap.contains(key))cMap.mapOne(key,cMap.useCMap.lookup(key))})}function parseBinaryCMap(name,builtInCMapParams){var url=builtInCMapParams.url+name+".bcmap";var cMap=new CMap(true);(new BinaryCMapReader).read(url,cMap,function(useCMap){extendCMap(cMap, +builtInCMapParams,useCMap)});return cMap}function createBuiltInCMap(name,builtInCMapParams){if(name==="Identity-H")return new IdentityCMap(false,2);else if(name==="Identity-V")return new IdentityCMap(true,2);if(BUILT_IN_CMAPS.indexOf(name)===-1)error("Unknown cMap name: "+name);assert(builtInCMapParams,"built-in cMap parameters are not provided");if(builtInCMapParams.packed)return parseBinaryCMap(name,builtInCMapParams);var request=new XMLHttpRequest;var url=builtInCMapParams.url+name;request.open("GET", +url,false);request.send(null);if(!request.responseText)error("Unable to get cMap at: "+url);var cMap=new CMap(true);var lexer=new Lexer(new StringStream(request.responseText));parseCMap(cMap,lexer,builtInCMapParams,null);return cMap}return{create:function(encoding,builtInCMapParams,useCMap){if(isName(encoding))return createBuiltInCMap(encoding.name,builtInCMapParams);else if(isStream(encoding)){var cMap=new CMap;var lexer=new Lexer(encoding);try{parseCMap(cMap,lexer,builtInCMapParams,useCMap)}catch(e){warn("Invalid CMap data. "+ +e)}return cMap}error("Encoding required.")}}}();var PRIVATE_USE_OFFSET_START=57344;var PRIVATE_USE_OFFSET_END=63743;var SKIP_PRIVATE_USE_RANGE_F000_TO_F01F=false;var PDF_GLYPH_SPACE_UNITS=1E3;var HINTING_ENABLED=false;var SEAC_ANALYSIS_ENABLED=false;var FontFlags={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144};var Encodings={ExpertEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior", +"dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary", +"onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths", +"onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall", +"Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],MacExpertEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall", +"Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth", +"threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior", +"centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior", +"Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior", +"fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall"],MacRomanEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand", +"quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y", +"z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark", +"acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction", +"currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"],StandardEncoding:["","","","","","","","","","","","","","","","","","","","","","","", +"","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft", +"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase", +"quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],WinAnsiEncoding:["","","","","","","","","","","","","","","","", +"","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum", +"underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet", +"zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex", +"Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex", +"udieresis","yacute","thorn","ydieresis"],SymbolSetEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon", +"Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","", +"","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset", +"intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt", +"bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt"],ZapfDingbatsEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19", +"a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85", +"a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166", +"a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191"]};var stdFontMap={"ArialNarrow":"Helvetica","ArialNarrow-Bold":"Helvetica-Bold","ArialNarrow-BoldItalic":"Helvetica-BoldOblique","ArialNarrow-Italic":"Helvetica-Oblique","ArialBlack":"Helvetica","ArialBlack-Bold":"Helvetica-Bold","ArialBlack-BoldItalic":"Helvetica-BoldOblique", +"ArialBlack-Italic":"Helvetica-Oblique","Arial":"Helvetica","Arial-Bold":"Helvetica-Bold","Arial-BoldItalic":"Helvetica-BoldOblique","Arial-Italic":"Helvetica-Oblique","Arial-BoldItalicMT":"Helvetica-BoldOblique","Arial-BoldMT":"Helvetica-Bold","Arial-ItalicMT":"Helvetica-Oblique","ArialMT":"Helvetica","Courier-Bold":"Courier-Bold","Courier-BoldItalic":"Courier-BoldOblique","Courier-Italic":"Courier-Oblique","CourierNew":"Courier","CourierNew-Bold":"Courier-Bold","CourierNew-BoldItalic":"Courier-BoldOblique", +"CourierNew-Italic":"Courier-Oblique","CourierNewPS-BoldItalicMT":"Courier-BoldOblique","CourierNewPS-BoldMT":"Courier-Bold","CourierNewPS-ItalicMT":"Courier-Oblique","CourierNewPSMT":"Courier","Helvetica-Bold":"Helvetica-Bold","Helvetica-BoldItalic":"Helvetica-BoldOblique","Helvetica-Italic":"Helvetica-Oblique","Symbol-Bold":"Symbol","Symbol-BoldItalic":"Symbol","Symbol-Italic":"Symbol","TimesNewRoman":"Times-Roman","TimesNewRoman-Bold":"Times-Bold","TimesNewRoman-BoldItalic":"Times-BoldItalic", +"TimesNewRoman-Italic":"Times-Italic","TimesNewRomanPS":"Times-Roman","TimesNewRomanPS-Bold":"Times-Bold","TimesNewRomanPS-BoldItalic":"Times-BoldItalic","TimesNewRomanPS-BoldItalicMT":"Times-BoldItalic","TimesNewRomanPS-BoldMT":"Times-Bold","TimesNewRomanPS-Italic":"Times-Italic","TimesNewRomanPS-ItalicMT":"Times-Italic","TimesNewRomanPSMT":"Times-Roman","TimesNewRomanPSMT-Bold":"Times-Bold","TimesNewRomanPSMT-BoldItalic":"Times-BoldItalic","TimesNewRomanPSMT-Italic":"Times-Italic"};var nonStdFontMap= +{"ComicSansMS":"Comic Sans MS","ComicSansMS-Bold":"Comic Sans MS-Bold","ComicSansMS-BoldItalic":"Comic Sans MS-BoldItalic","ComicSansMS-Italic":"Comic Sans MS-Italic","LucidaConsole":"Courier","LucidaConsole-Bold":"Courier-Bold","LucidaConsole-BoldItalic":"Courier-BoldOblique","LucidaConsole-Italic":"Courier-Oblique","MS-Gothic":"MS Gothic","MS-Gothic-Bold":"MS Gothic-Bold","MS-Gothic-BoldItalic":"MS Gothic-BoldItalic","MS-Gothic-Italic":"MS Gothic-Italic","MS-Mincho":"MS Mincho","MS-Mincho-Bold":"MS Mincho-Bold", +"MS-Mincho-BoldItalic":"MS Mincho-BoldItalic","MS-Mincho-Italic":"MS Mincho-Italic","MS-PGothic":"MS PGothic","MS-PGothic-Bold":"MS PGothic-Bold","MS-PGothic-BoldItalic":"MS PGothic-BoldItalic","MS-PGothic-Italic":"MS PGothic-Italic","MS-PMincho":"MS PMincho","MS-PMincho-Bold":"MS PMincho-Bold","MS-PMincho-BoldItalic":"MS PMincho-BoldItalic","MS-PMincho-Italic":"MS PMincho-Italic"};var serifFonts={"Adobe Jenson":true,"Adobe Text":true,"Albertus":true,"Aldus":true,"Alexandria":true,"Algerian":true, +"American Typewriter":true,"Antiqua":true,"Apex":true,"Arno":true,"Aster":true,"Aurora":true,"Baskerville":true,"Bell":true,"Bembo":true,"Bembo Schoolbook":true,"Benguiat":true,"Berkeley Old Style":true,"Bernhard Modern":true,"Berthold City":true,"Bodoni":true,"Bauer Bodoni":true,"Book Antiqua":true,"Bookman":true,"Bordeaux Roman":true,"Californian FB":true,"Calisto":true,"Calvert":true,"Capitals":true,"Cambria":true,"Cartier":true,"Caslon":true,"Catull":true,"Centaur":true,"Century Old Style":true, +"Century Schoolbook":true,"Chaparral":true,"Charis SIL":true,"Cheltenham":true,"Cholla Slab":true,"Clarendon":true,"Clearface":true,"Cochin":true,"Colonna":true,"Computer Modern":true,"Concrete Roman":true,"Constantia":true,"Cooper Black":true,"Corona":true,"Ecotype":true,"Egyptienne":true,"Elephant":true,"Excelsior":true,"Fairfield":true,"FF Scala":true,"Folkard":true,"Footlight":true,"FreeSerif":true,"Friz Quadrata":true,"Garamond":true,"Gentium":true,"Georgia":true,"Gloucester":true,"Goudy Old Style":true, +"Goudy Schoolbook":true,"Goudy Pro Font":true,"Granjon":true,"Guardian Egyptian":true,"Heather":true,"Hercules":true,"High Tower Text":true,"Hiroshige":true,"Hoefler Text":true,"Humana Serif":true,"Imprint":true,"Ionic No. 5":true,"Janson":true,"Joanna":true,"Korinna":true,"Lexicon":true,"Liberation Serif":true,"Linux Libertine":true,"Literaturnaya":true,"Lucida":true,"Lucida Bright":true,"Melior":true,"Memphis":true,"Miller":true,"Minion":true,"Modern":true,"Mona Lisa":true,"Mrs Eaves":true,"MS Serif":true, +"Museo Slab":true,"New York":true,"Nimbus Roman":true,"NPS Rawlinson Roadway":true,"Palatino":true,"Perpetua":true,"Plantin":true,"Plantin Schoolbook":true,"Playbill":true,"Poor Richard":true,"Rawlinson Roadway":true,"Renault":true,"Requiem":true,"Rockwell":true,"Roman":true,"Rotis Serif":true,"Sabon":true,"Scala":true,"Seagull":true,"Sistina":true,"Souvenir":true,"STIX":true,"Stone Informal":true,"Stone Serif":true,"Sylfaen":true,"Times":true,"Trajan":true,"Trinit\u00e9":true,"Trump Mediaeval":true, +"Utopia":true,"Vale Type":true,"Bitstream Vera":true,"Vera Serif":true,"Versailles":true,"Wanted":true,"Weiss":true,"Wide Latin":true,"Windsor":true,"XITS":true};var symbolsFonts={"Dingbats":true,"Symbol":true,"ZapfDingbats":true};var GlyphMapForStandardFonts={2:10,3:32,4:33,5:34,6:35,7:36,8:37,9:38,10:39,11:40,12:41,13:42,14:43,15:44,16:45,17:46,18:47,19:48,20:49,21:50,22:51,23:52,24:53,25:54,26:55,27:56,28:57,29:58,30:894,31:60,32:61,33:62,34:63,35:64,36:65,37:66,38:67,39:68,40:69,41:70,42:71,43:72, +44:73,45:74,46:75,47:76,48:77,49:78,50:79,51:80,52:81,53:82,54:83,55:84,56:85,57:86,58:87,59:88,60:89,61:90,62:91,63:92,64:93,65:94,66:95,67:96,68:97,69:98,70:99,71:100,72:101,73:102,74:103,75:104,76:105,77:106,78:107,79:108,80:109,81:110,82:111,83:112,84:113,85:114,86:115,87:116,88:117,89:118,90:119,91:120,92:121,93:122,94:123,95:124,96:125,97:126,98:196,99:197,100:199,101:201,102:209,103:214,104:220,105:225,106:224,107:226,108:228,109:227,110:229,111:231,112:233,113:232,114:234,115:235,116:237, +117:236,118:238,119:239,120:241,121:243,122:242,123:244,124:246,125:245,126:250,127:249,128:251,129:252,130:8224,131:176,132:162,133:163,134:167,135:8226,136:182,137:223,138:174,139:169,140:8482,141:180,142:168,143:8800,144:198,145:216,146:8734,147:177,148:8804,149:8805,150:165,151:181,152:8706,153:8721,154:8719,156:8747,157:170,158:186,159:8486,160:230,161:248,162:191,163:161,164:172,165:8730,166:402,167:8776,168:8710,169:171,170:187,171:8230,210:218,223:711,224:321,225:322,227:353,229:382,234:253, +252:263,253:268,254:269,258:258,260:260,261:261,265:280,266:281,268:283,269:313,275:323,276:324,278:328,284:345,285:346,286:347,292:367,295:377,296:378,298:380,305:963,306:964,307:966,308:8215,309:8252,310:8319,311:8359,312:8592,313:8593,337:9552,493:1039,494:1040,705:1524,706:8362,710:64288,711:64298,759:1617,761:1776,763:1778,775:1652,777:1764,778:1780,779:1781,780:1782,782:771,783:64726,786:8363,788:8532,790:768,791:769,792:768,795:803,797:64336,798:64337,799:64342,800:64343,801:64344,802:64345, +803:64362,804:64363,805:64364,2424:7821,2425:7822,2426:7823,2427:7824,2428:7825,2429:7826,2430:7827,2433:7682,2678:8045,2679:8046,2830:1552,2838:686,2840:751,2842:753,2843:754,2844:755,2846:757,2856:767,2857:848,2858:849,2862:853,2863:854,2864:855,2865:861,2866:862,2906:7460,2908:7462,2909:7463,2910:7464,2912:7466,2913:7467,2914:7468,2916:7470,2917:7471,2918:7472,2920:7474,2921:7475,2922:7476,2924:7478,2925:7479,2926:7480,2928:7482,2929:7483,2930:7484,2932:7486,2933:7487,2934:7488,2936:7490,2937:7491, +2938:7492,2940:7494,2941:7495,2942:7496,2944:7498,2946:7500,2948:7502,2950:7504,2951:7505,2952:7506,2954:7508,2955:7509,2956:7510,2958:7512,2959:7513,2960:7514,2962:7516,2963:7517,2964:7518,2966:7520,2967:7521,2968:7522,2970:7524,2971:7525,2972:7526,2974:7528,2975:7529,2976:7530,2978:1537,2979:1538,2980:1539,2982:1549,2983:1551,2984:1552,2986:1554,2987:1555,2988:1556,2990:1623,2991:1624,2995:1775,2999:1791,3002:64290,3003:64291,3004:64292,3006:64294,3007:64295,3008:64296,3011:1900,3014:8223,3015:8244, +3017:7532,3018:7533,3019:7534,3075:7590,3076:7591,3079:7594,3080:7595,3083:7598,3084:7599,3087:7602,3088:7603,3091:7606,3092:7607,3095:7610,3096:7611,3099:7614,3100:7615,3103:7618,3104:7619,3107:8337,3108:8338,3116:1884,3119:1885,3120:1885,3123:1886,3124:1886,3127:1887,3128:1887,3131:1888,3132:1888,3135:1889,3136:1889,3139:1890,3140:1890,3143:1891,3144:1891,3147:1892,3148:1892,3153:580,3154:581,3157:584,3158:585,3161:588,3162:589,3165:891,3166:892,3169:1274,3170:1275,3173:1278,3174:1279,3181:7622, +3182:7623,3282:11799,3316:578,3379:42785,3393:1159,3416:8377};var SpecialPUASymbols={63721:169,63193:169,63720:174,63194:174,63722:8482,63195:8482,63729:9127,63730:9128,63731:9129,63740:9131,63741:9132,63742:9133,63726:9121,63727:9122,63728:9123,63737:9124,63738:9125,63739:9126,63723:9115,63724:9116,63725:9117,63734:9118,63735:9119,63736:9120};function mapSpecialUnicodeValues(code){if(code>=65520&&code<=65535)return 0;else if(code>=62976&&code<=63743)return SpecialPUASymbols[code]||code;return code} +var UnicodeRanges=[{"begin":0,"end":127},{"begin":128,"end":255},{"begin":256,"end":383},{"begin":384,"end":591},{"begin":592,"end":687},{"begin":688,"end":767},{"begin":768,"end":879},{"begin":880,"end":1023},{"begin":11392,"end":11519},{"begin":1024,"end":1279},{"begin":1328,"end":1423},{"begin":1424,"end":1535},{"begin":42240,"end":42559},{"begin":1536,"end":1791},{"begin":1984,"end":2047},{"begin":2304,"end":2431},{"begin":2432,"end":2559},{"begin":2560,"end":2687},{"begin":2688,"end":2815},{"begin":2816, +"end":2943},{"begin":2944,"end":3071},{"begin":3072,"end":3199},{"begin":3200,"end":3327},{"begin":3328,"end":3455},{"begin":3584,"end":3711},{"begin":3712,"end":3839},{"begin":4256,"end":4351},{"begin":6912,"end":7039},{"begin":4352,"end":4607},{"begin":7680,"end":7935},{"begin":7936,"end":8191},{"begin":8192,"end":8303},{"begin":8304,"end":8351},{"begin":8352,"end":8399},{"begin":8400,"end":8447},{"begin":8448,"end":8527},{"begin":8528,"end":8591},{"begin":8592,"end":8703},{"begin":8704,"end":8959}, +{"begin":8960,"end":9215},{"begin":9216,"end":9279},{"begin":9280,"end":9311},{"begin":9312,"end":9471},{"begin":9472,"end":9599},{"begin":9600,"end":9631},{"begin":9632,"end":9727},{"begin":9728,"end":9983},{"begin":9984,"end":10175},{"begin":12288,"end":12351},{"begin":12352,"end":12447},{"begin":12448,"end":12543},{"begin":12544,"end":12591},{"begin":12592,"end":12687},{"begin":43072,"end":43135},{"begin":12800,"end":13055},{"begin":13056,"end":13311},{"begin":44032,"end":55215},{"begin":55296, +"end":57343},{"begin":67840,"end":67871},{"begin":19968,"end":40959},{"begin":57344,"end":63743},{"begin":12736,"end":12783},{"begin":64256,"end":64335},{"begin":64336,"end":65023},{"begin":65056,"end":65071},{"begin":65040,"end":65055},{"begin":65104,"end":65135},{"begin":65136,"end":65279},{"begin":65280,"end":65519},{"begin":65520,"end":65535},{"begin":3840,"end":4095},{"begin":1792,"end":1871},{"begin":1920,"end":1983},{"begin":3456,"end":3583},{"begin":4096,"end":4255},{"begin":4608,"end":4991}, +{"begin":5024,"end":5119},{"begin":5120,"end":5759},{"begin":5760,"end":5791},{"begin":5792,"end":5887},{"begin":6016,"end":6143},{"begin":6144,"end":6319},{"begin":10240,"end":10495},{"begin":40960,"end":42127},{"begin":5888,"end":5919},{"begin":66304,"end":66351},{"begin":66352,"end":66383},{"begin":66560,"end":66639},{"begin":118784,"end":119039},{"begin":119808,"end":120831},{"begin":1044480,"end":1048573},{"begin":65024,"end":65039},{"begin":917504,"end":917631},{"begin":6400,"end":6479},{"begin":6480, +"end":6527},{"begin":6528,"end":6623},{"begin":6656,"end":6687},{"begin":11264,"end":11359},{"begin":11568,"end":11647},{"begin":19904,"end":19967},{"begin":43008,"end":43055},{"begin":65536,"end":65663},{"begin":65856,"end":65935},{"begin":66432,"end":66463},{"begin":66464,"end":66527},{"begin":66640,"end":66687},{"begin":66688,"end":66735},{"begin":67584,"end":67647},{"begin":68096,"end":68191},{"begin":119552,"end":119647},{"begin":73728,"end":74751},{"begin":119648,"end":119679},{"begin":7040, +"end":7103},{"begin":7168,"end":7247},{"begin":7248,"end":7295},{"begin":43136,"end":43231},{"begin":43264,"end":43311},{"begin":43312,"end":43359},{"begin":43520,"end":43615},{"begin":65936,"end":65999},{"begin":66E3,"end":66047},{"begin":66208,"end":66271},{"begin":127024,"end":127135}];var MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen", +"period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla", +"Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal", +"greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl", +"periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior", +"threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function getUnicodeRangeFor(value){for(var i=0,ii=UnicodeRanges.length;i<ii;i++){var range=UnicodeRanges[i];if(value>=range.begin&&value<range.end)return i}return-1}function isRTLRangeFor(value){var range=UnicodeRanges[13];if(value>=range.begin&&value<range.end)return true;range=UnicodeRanges[11];if(value>=range.begin&&value<range.end)return true; +return false}var NormalizedUnicodes={"\u00a8":" \u0308","\u00af":" \u0304","\u00b4":" \u0301","\u00b5":"\u03bc","\u00b8":" \u0327","\u0132":"IJ","\u0133":"ij","\u013f":"L\u00b7","\u0140":"l\u00b7","\u0149":"\u02bcn","\u017f":"s","\u01c4":"D\u017d","\u01c5":"D\u017e","\u01c6":"d\u017e","\u01c7":"LJ","\u01c8":"Lj","\u01c9":"lj","\u01ca":"NJ","\u01cb":"Nj","\u01cc":"nj","\u01f1":"DZ","\u01f2":"Dz","\u01f3":"dz","\u02d8":" \u0306","\u02d9":" \u0307","\u02da":" \u030a","\u02db":" \u0328","\u02dc":" \u0303", +"\u02dd":" \u030b","\u037a":" \u0345","\u0384":" \u0301","\u03d0":"\u03b2","\u03d1":"\u03b8","\u03d2":"\u03a5","\u03d5":"\u03c6","\u03d6":"\u03c0","\u03f0":"\u03ba","\u03f1":"\u03c1","\u03f2":"\u03c2","\u03f4":"\u0398","\u03f5":"\u03b5","\u03f9":"\u03a3","\u0587":"\u0565\u0582","\u0675":"\u0627\u0674","\u0676":"\u0648\u0674","\u0677":"\u06c7\u0674","\u0678":"\u064a\u0674","\u0e33":"\u0e4d\u0e32","\u0eb3":"\u0ecd\u0eb2","\u0edc":"\u0eab\u0e99","\u0edd":"\u0eab\u0ea1","\u0f77":"\u0fb2\u0f81","\u0f79":"\u0fb3\u0f81", +"\u1e9a":"a\u02be","\u1fbd":" \u0313","\u1fbf":" \u0313","\u1fc0":" \u0342","\u1ffe":" \u0314","\u2002":" ","\u2003":" ","\u2004":" ","\u2005":" ","\u2006":" ","\u2008":" ","\u2009":" ","\u200a":" ","\u2017":" \u0333","\u2024":".","\u2025":"..","\u2026":"...","\u2033":"\u2032\u2032","\u2034":"\u2032\u2032\u2032","\u2036":"\u2035\u2035","\u2037":"\u2035\u2035\u2035","\u203c":"!!","\u203e":" \u0305","\u2047":"??","\u2048":"?!","\u2049":"!?","\u2057":"\u2032\u2032\u2032\u2032","\u205f":" ","\u20a8":"Rs", +"\u2100":"a/c","\u2101":"a/s","\u2103":"\u00b0C","\u2105":"c/o","\u2106":"c/u","\u2107":"\u0190","\u2109":"\u00b0F","\u2116":"No","\u2121":"TEL","\u2135":"\u05d0","\u2136":"\u05d1","\u2137":"\u05d2","\u2138":"\u05d3","\u213b":"FAX","\u2160":"I","\u2161":"II","\u2162":"III","\u2163":"IV","\u2164":"V","\u2165":"VI","\u2166":"VII","\u2167":"VIII","\u2168":"IX","\u2169":"X","\u216a":"XI","\u216b":"XII","\u216c":"L","\u216d":"C","\u216e":"D","\u216f":"M","\u2170":"i","\u2171":"ii","\u2172":"iii","\u2173":"iv", +"\u2174":"v","\u2175":"vi","\u2176":"vii","\u2177":"viii","\u2178":"ix","\u2179":"x","\u217a":"xi","\u217b":"xii","\u217c":"l","\u217d":"c","\u217e":"d","\u217f":"m","\u222c":"\u222b\u222b","\u222d":"\u222b\u222b\u222b","\u222f":"\u222e\u222e","\u2230":"\u222e\u222e\u222e","\u2474":"(1)","\u2475":"(2)","\u2476":"(3)","\u2477":"(4)","\u2478":"(5)","\u2479":"(6)","\u247a":"(7)","\u247b":"(8)","\u247c":"(9)","\u247d":"(10)","\u247e":"(11)","\u247f":"(12)","\u2480":"(13)","\u2481":"(14)","\u2482":"(15)", +"\u2483":"(16)","\u2484":"(17)","\u2485":"(18)","\u2486":"(19)","\u2487":"(20)","\u2488":"1.","\u2489":"2.","\u248a":"3.","\u248b":"4.","\u248c":"5.","\u248d":"6.","\u248e":"7.","\u248f":"8.","\u2490":"9.","\u2491":"10.","\u2492":"11.","\u2493":"12.","\u2494":"13.","\u2495":"14.","\u2496":"15.","\u2497":"16.","\u2498":"17.","\u2499":"18.","\u249a":"19.","\u249b":"20.","\u249c":"(a)","\u249d":"(b)","\u249e":"(c)","\u249f":"(d)","\u24a0":"(e)","\u24a1":"(f)","\u24a2":"(g)","\u24a3":"(h)","\u24a4":"(i)", +"\u24a5":"(j)","\u24a6":"(k)","\u24a7":"(l)","\u24a8":"(m)","\u24a9":"(n)","\u24aa":"(o)","\u24ab":"(p)","\u24ac":"(q)","\u24ad":"(r)","\u24ae":"(s)","\u24af":"(t)","\u24b0":"(u)","\u24b1":"(v)","\u24b2":"(w)","\u24b3":"(x)","\u24b4":"(y)","\u24b5":"(z)","\u2a0c":"\u222b\u222b\u222b\u222b","\u2a74":"::=","\u2a75":"==","\u2a76":"===","\u2e9f":"\u6bcd","\u2ef3":"\u9f9f","\u2f00":"\u4e00","\u2f01":"\u4e28","\u2f02":"\u4e36","\u2f03":"\u4e3f","\u2f04":"\u4e59","\u2f05":"\u4e85","\u2f06":"\u4e8c","\u2f07":"\u4ea0", +"\u2f08":"\u4eba","\u2f09":"\u513f","\u2f0a":"\u5165","\u2f0b":"\u516b","\u2f0c":"\u5182","\u2f0d":"\u5196","\u2f0e":"\u51ab","\u2f0f":"\u51e0","\u2f10":"\u51f5","\u2f11":"\u5200","\u2f12":"\u529b","\u2f13":"\u52f9","\u2f14":"\u5315","\u2f15":"\u531a","\u2f16":"\u5338","\u2f17":"\u5341","\u2f18":"\u535c","\u2f19":"\u5369","\u2f1a":"\u5382","\u2f1b":"\u53b6","\u2f1c":"\u53c8","\u2f1d":"\u53e3","\u2f1e":"\u56d7","\u2f1f":"\u571f","\u2f20":"\u58eb","\u2f21":"\u5902","\u2f22":"\u590a","\u2f23":"\u5915", +"\u2f24":"\u5927","\u2f25":"\u5973","\u2f26":"\u5b50","\u2f27":"\u5b80","\u2f28":"\u5bf8","\u2f29":"\u5c0f","\u2f2a":"\u5c22","\u2f2b":"\u5c38","\u2f2c":"\u5c6e","\u2f2d":"\u5c71","\u2f2e":"\u5ddb","\u2f2f":"\u5de5","\u2f30":"\u5df1","\u2f31":"\u5dfe","\u2f32":"\u5e72","\u2f33":"\u5e7a","\u2f34":"\u5e7f","\u2f35":"\u5ef4","\u2f36":"\u5efe","\u2f37":"\u5f0b","\u2f38":"\u5f13","\u2f39":"\u5f50","\u2f3a":"\u5f61","\u2f3b":"\u5f73","\u2f3c":"\u5fc3","\u2f3d":"\u6208","\u2f3e":"\u6236","\u2f3f":"\u624b", +"\u2f40":"\u652f","\u2f41":"\u6534","\u2f42":"\u6587","\u2f43":"\u6597","\u2f44":"\u65a4","\u2f45":"\u65b9","\u2f46":"\u65e0","\u2f47":"\u65e5","\u2f48":"\u66f0","\u2f49":"\u6708","\u2f4a":"\u6728","\u2f4b":"\u6b20","\u2f4c":"\u6b62","\u2f4d":"\u6b79","\u2f4e":"\u6bb3","\u2f4f":"\u6bcb","\u2f50":"\u6bd4","\u2f51":"\u6bdb","\u2f52":"\u6c0f","\u2f53":"\u6c14","\u2f54":"\u6c34","\u2f55":"\u706b","\u2f56":"\u722a","\u2f57":"\u7236","\u2f58":"\u723b","\u2f59":"\u723f","\u2f5a":"\u7247","\u2f5b":"\u7259", +"\u2f5c":"\u725b","\u2f5d":"\u72ac","\u2f5e":"\u7384","\u2f5f":"\u7389","\u2f60":"\u74dc","\u2f61":"\u74e6","\u2f62":"\u7518","\u2f63":"\u751f","\u2f64":"\u7528","\u2f65":"\u7530","\u2f66":"\u758b","\u2f67":"\u7592","\u2f68":"\u7676","\u2f69":"\u767d","\u2f6a":"\u76ae","\u2f6b":"\u76bf","\u2f6c":"\u76ee","\u2f6d":"\u77db","\u2f6e":"\u77e2","\u2f6f":"\u77f3","\u2f70":"\u793a","\u2f71":"\u79b8","\u2f72":"\u79be","\u2f73":"\u7a74","\u2f74":"\u7acb","\u2f75":"\u7af9","\u2f76":"\u7c73","\u2f77":"\u7cf8", +"\u2f78":"\u7f36","\u2f79":"\u7f51","\u2f7a":"\u7f8a","\u2f7b":"\u7fbd","\u2f7c":"\u8001","\u2f7d":"\u800c","\u2f7e":"\u8012","\u2f7f":"\u8033","\u2f80":"\u807f","\u2f81":"\u8089","\u2f82":"\u81e3","\u2f83":"\u81ea","\u2f84":"\u81f3","\u2f85":"\u81fc","\u2f86":"\u820c","\u2f87":"\u821b","\u2f88":"\u821f","\u2f89":"\u826e","\u2f8a":"\u8272","\u2f8b":"\u8278","\u2f8c":"\u864d","\u2f8d":"\u866b","\u2f8e":"\u8840","\u2f8f":"\u884c","\u2f90":"\u8863","\u2f91":"\u897e","\u2f92":"\u898b","\u2f93":"\u89d2", +"\u2f94":"\u8a00","\u2f95":"\u8c37","\u2f96":"\u8c46","\u2f97":"\u8c55","\u2f98":"\u8c78","\u2f99":"\u8c9d","\u2f9a":"\u8d64","\u2f9b":"\u8d70","\u2f9c":"\u8db3","\u2f9d":"\u8eab","\u2f9e":"\u8eca","\u2f9f":"\u8f9b","\u2fa0":"\u8fb0","\u2fa1":"\u8fb5","\u2fa2":"\u9091","\u2fa3":"\u9149","\u2fa4":"\u91c6","\u2fa5":"\u91cc","\u2fa6":"\u91d1","\u2fa7":"\u9577","\u2fa8":"\u9580","\u2fa9":"\u961c","\u2faa":"\u96b6","\u2fab":"\u96b9","\u2fac":"\u96e8","\u2fad":"\u9751","\u2fae":"\u975e","\u2faf":"\u9762", +"\u2fb0":"\u9769","\u2fb1":"\u97cb","\u2fb2":"\u97ed","\u2fb3":"\u97f3","\u2fb4":"\u9801","\u2fb5":"\u98a8","\u2fb6":"\u98db","\u2fb7":"\u98df","\u2fb8":"\u9996","\u2fb9":"\u9999","\u2fba":"\u99ac","\u2fbb":"\u9aa8","\u2fbc":"\u9ad8","\u2fbd":"\u9adf","\u2fbe":"\u9b25","\u2fbf":"\u9b2f","\u2fc0":"\u9b32","\u2fc1":"\u9b3c","\u2fc2":"\u9b5a","\u2fc3":"\u9ce5","\u2fc4":"\u9e75","\u2fc5":"\u9e7f","\u2fc6":"\u9ea5","\u2fc7":"\u9ebb","\u2fc8":"\u9ec3","\u2fc9":"\u9ecd","\u2fca":"\u9ed1","\u2fcb":"\u9ef9", +"\u2fcc":"\u9efd","\u2fcd":"\u9f0e","\u2fce":"\u9f13","\u2fcf":"\u9f20","\u2fd0":"\u9f3b","\u2fd1":"\u9f4a","\u2fd2":"\u9f52","\u2fd3":"\u9f8d","\u2fd4":"\u9f9c","\u2fd5":"\u9fa0","\u3036":"\u3012","\u3038":"\u5341","\u3039":"\u5344","\u303a":"\u5345","\u309b":" \u3099","\u309c":" \u309a","\u3131":"\u1100","\u3132":"\u1101","\u3133":"\u11aa","\u3134":"\u1102","\u3135":"\u11ac","\u3136":"\u11ad","\u3137":"\u1103","\u3138":"\u1104","\u3139":"\u1105","\u313a":"\u11b0","\u313b":"\u11b1","\u313c":"\u11b2", +"\u313d":"\u11b3","\u313e":"\u11b4","\u313f":"\u11b5","\u3140":"\u111a","\u3141":"\u1106","\u3142":"\u1107","\u3143":"\u1108","\u3144":"\u1121","\u3145":"\u1109","\u3146":"\u110a","\u3147":"\u110b","\u3148":"\u110c","\u3149":"\u110d","\u314a":"\u110e","\u314b":"\u110f","\u314c":"\u1110","\u314d":"\u1111","\u314e":"\u1112","\u314f":"\u1161","\u3150":"\u1162","\u3151":"\u1163","\u3152":"\u1164","\u3153":"\u1165","\u3154":"\u1166","\u3155":"\u1167","\u3156":"\u1168","\u3157":"\u1169","\u3158":"\u116a", +"\u3159":"\u116b","\u315a":"\u116c","\u315b":"\u116d","\u315c":"\u116e","\u315d":"\u116f","\u315e":"\u1170","\u315f":"\u1171","\u3160":"\u1172","\u3161":"\u1173","\u3162":"\u1174","\u3163":"\u1175","\u3164":"\u1160","\u3165":"\u1114","\u3166":"\u1115","\u3167":"\u11c7","\u3168":"\u11c8","\u3169":"\u11cc","\u316a":"\u11ce","\u316b":"\u11d3","\u316c":"\u11d7","\u316d":"\u11d9","\u316e":"\u111c","\u316f":"\u11dd","\u3170":"\u11df","\u3171":"\u111d","\u3172":"\u111e","\u3173":"\u1120","\u3174":"\u1122", +"\u3175":"\u1123","\u3176":"\u1127","\u3177":"\u1129","\u3178":"\u112b","\u3179":"\u112c","\u317a":"\u112d","\u317b":"\u112e","\u317c":"\u112f","\u317d":"\u1132","\u317e":"\u1136","\u317f":"\u1140","\u3180":"\u1147","\u3181":"\u114c","\u3182":"\u11f1","\u3183":"\u11f2","\u3184":"\u1157","\u3185":"\u1158","\u3186":"\u1159","\u3187":"\u1184","\u3188":"\u1185","\u3189":"\u1188","\u318a":"\u1191","\u318b":"\u1192","\u318c":"\u1194","\u318d":"\u119e","\u318e":"\u11a1","\u3200":"(\u1100)","\u3201":"(\u1102)", +"\u3202":"(\u1103)","\u3203":"(\u1105)","\u3204":"(\u1106)","\u3205":"(\u1107)","\u3206":"(\u1109)","\u3207":"(\u110b)","\u3208":"(\u110c)","\u3209":"(\u110e)","\u320a":"(\u110f)","\u320b":"(\u1110)","\u320c":"(\u1111)","\u320d":"(\u1112)","\u320e":"(\u1100\u1161)","\u320f":"(\u1102\u1161)","\u3210":"(\u1103\u1161)","\u3211":"(\u1105\u1161)","\u3212":"(\u1106\u1161)","\u3213":"(\u1107\u1161)","\u3214":"(\u1109\u1161)","\u3215":"(\u110b\u1161)","\u3216":"(\u110c\u1161)","\u3217":"(\u110e\u1161)","\u3218":"(\u110f\u1161)", +"\u3219":"(\u1110\u1161)","\u321a":"(\u1111\u1161)","\u321b":"(\u1112\u1161)","\u321c":"(\u110c\u116e)","\u321d":"(\u110b\u1169\u110c\u1165\u11ab)","\u321e":"(\u110b\u1169\u1112\u116e)","\u3220":"(\u4e00)","\u3221":"(\u4e8c)","\u3222":"(\u4e09)","\u3223":"(\u56db)","\u3224":"(\u4e94)","\u3225":"(\u516d)","\u3226":"(\u4e03)","\u3227":"(\u516b)","\u3228":"(\u4e5d)","\u3229":"(\u5341)","\u322a":"(\u6708)","\u322b":"(\u706b)","\u322c":"(\u6c34)","\u322d":"(\u6728)","\u322e":"(\u91d1)","\u322f":"(\u571f)", +"\u3230":"(\u65e5)","\u3231":"(\u682a)","\u3232":"(\u6709)","\u3233":"(\u793e)","\u3234":"(\u540d)","\u3235":"(\u7279)","\u3236":"(\u8ca1)","\u3237":"(\u795d)","\u3238":"(\u52b4)","\u3239":"(\u4ee3)","\u323a":"(\u547c)","\u323b":"(\u5b66)","\u323c":"(\u76e3)","\u323d":"(\u4f01)","\u323e":"(\u8cc7)","\u323f":"(\u5354)","\u3240":"(\u796d)","\u3241":"(\u4f11)","\u3242":"(\u81ea)","\u3243":"(\u81f3)","\u32c0":"1\u6708","\u32c1":"2\u6708","\u32c2":"3\u6708","\u32c3":"4\u6708","\u32c4":"5\u6708","\u32c5":"6\u6708", +"\u32c6":"7\u6708","\u32c7":"8\u6708","\u32c8":"9\u6708","\u32c9":"10\u6708","\u32ca":"11\u6708","\u32cb":"12\u6708","\u3358":"0\u70b9","\u3359":"1\u70b9","\u335a":"2\u70b9","\u335b":"3\u70b9","\u335c":"4\u70b9","\u335d":"5\u70b9","\u335e":"6\u70b9","\u335f":"7\u70b9","\u3360":"8\u70b9","\u3361":"9\u70b9","\u3362":"10\u70b9","\u3363":"11\u70b9","\u3364":"12\u70b9","\u3365":"13\u70b9","\u3366":"14\u70b9","\u3367":"15\u70b9","\u3368":"16\u70b9","\u3369":"17\u70b9","\u336a":"18\u70b9","\u336b":"19\u70b9", +"\u336c":"20\u70b9","\u336d":"21\u70b9","\u336e":"22\u70b9","\u336f":"23\u70b9","\u3370":"24\u70b9","\u33e0":"1\u65e5","\u33e1":"2\u65e5","\u33e2":"3\u65e5","\u33e3":"4\u65e5","\u33e4":"5\u65e5","\u33e5":"6\u65e5","\u33e6":"7\u65e5","\u33e7":"8\u65e5","\u33e8":"9\u65e5","\u33e9":"10\u65e5","\u33ea":"11\u65e5","\u33eb":"12\u65e5","\u33ec":"13\u65e5","\u33ed":"14\u65e5","\u33ee":"15\u65e5","\u33ef":"16\u65e5","\u33f0":"17\u65e5","\u33f1":"18\u65e5","\u33f2":"19\u65e5","\u33f3":"20\u65e5","\u33f4":"21\u65e5", +"\u33f5":"22\u65e5","\u33f6":"23\u65e5","\u33f7":"24\u65e5","\u33f8":"25\u65e5","\u33f9":"26\u65e5","\u33fa":"27\u65e5","\u33fb":"28\u65e5","\u33fc":"29\u65e5","\u33fd":"30\u65e5","\u33fe":"31\u65e5","\ufb00":"ff","\ufb01":"fi","\ufb02":"fl","\ufb03":"ffi","\ufb04":"ffl","\ufb05":"\u017ft","\ufb06":"st","\ufb13":"\u0574\u0576","\ufb14":"\u0574\u0565","\ufb15":"\u0574\u056b","\ufb16":"\u057e\u0576","\ufb17":"\u0574\u056d","\ufb4f":"\u05d0\u05dc","\ufb50":"\u0671","\ufb51":"\u0671","\ufb52":"\u067b", +"\ufb53":"\u067b","\ufb54":"\u067b","\ufb55":"\u067b","\ufb56":"\u067e","\ufb57":"\u067e","\ufb58":"\u067e","\ufb59":"\u067e","\ufb5a":"\u0680","\ufb5b":"\u0680","\ufb5c":"\u0680","\ufb5d":"\u0680","\ufb5e":"\u067a","\ufb5f":"\u067a","\ufb60":"\u067a","\ufb61":"\u067a","\ufb62":"\u067f","\ufb63":"\u067f","\ufb64":"\u067f","\ufb65":"\u067f","\ufb66":"\u0679","\ufb67":"\u0679","\ufb68":"\u0679","\ufb69":"\u0679","\ufb6a":"\u06a4","\ufb6b":"\u06a4","\ufb6c":"\u06a4","\ufb6d":"\u06a4","\ufb6e":"\u06a6", +"\ufb6f":"\u06a6","\ufb70":"\u06a6","\ufb71":"\u06a6","\ufb72":"\u0684","\ufb73":"\u0684","\ufb74":"\u0684","\ufb75":"\u0684","\ufb76":"\u0683","\ufb77":"\u0683","\ufb78":"\u0683","\ufb79":"\u0683","\ufb7a":"\u0686","\ufb7b":"\u0686","\ufb7c":"\u0686","\ufb7d":"\u0686","\ufb7e":"\u0687","\ufb7f":"\u0687","\ufb80":"\u0687","\ufb81":"\u0687","\ufb82":"\u068d","\ufb83":"\u068d","\ufb84":"\u068c","\ufb85":"\u068c","\ufb86":"\u068e","\ufb87":"\u068e","\ufb88":"\u0688","\ufb89":"\u0688","\ufb8a":"\u0698", +"\ufb8b":"\u0698","\ufb8c":"\u0691","\ufb8d":"\u0691","\ufb8e":"\u06a9","\ufb8f":"\u06a9","\ufb90":"\u06a9","\ufb91":"\u06a9","\ufb92":"\u06af","\ufb93":"\u06af","\ufb94":"\u06af","\ufb95":"\u06af","\ufb96":"\u06b3","\ufb97":"\u06b3","\ufb98":"\u06b3","\ufb99":"\u06b3","\ufb9a":"\u06b1","\ufb9b":"\u06b1","\ufb9c":"\u06b1","\ufb9d":"\u06b1","\ufb9e":"\u06ba","\ufb9f":"\u06ba","\ufba0":"\u06bb","\ufba1":"\u06bb","\ufba2":"\u06bb","\ufba3":"\u06bb","\ufba4":"\u06c0","\ufba5":"\u06c0","\ufba6":"\u06c1", +"\ufba7":"\u06c1","\ufba8":"\u06c1","\ufba9":"\u06c1","\ufbaa":"\u06be","\ufbab":"\u06be","\ufbac":"\u06be","\ufbad":"\u06be","\ufbae":"\u06d2","\ufbaf":"\u06d2","\ufbb0":"\u06d3","\ufbb1":"\u06d3","\ufbd3":"\u06ad","\ufbd4":"\u06ad","\ufbd5":"\u06ad","\ufbd6":"\u06ad","\ufbd7":"\u06c7","\ufbd8":"\u06c7","\ufbd9":"\u06c6","\ufbda":"\u06c6","\ufbdb":"\u06c8","\ufbdc":"\u06c8","\ufbdd":"\u0677","\ufbde":"\u06cb","\ufbdf":"\u06cb","\ufbe0":"\u06c5","\ufbe1":"\u06c5","\ufbe2":"\u06c9","\ufbe3":"\u06c9", +"\ufbe4":"\u06d0","\ufbe5":"\u06d0","\ufbe6":"\u06d0","\ufbe7":"\u06d0","\ufbe8":"\u0649","\ufbe9":"\u0649","\ufbea":"\u0626\u0627","\ufbeb":"\u0626\u0627","\ufbec":"\u0626\u06d5","\ufbed":"\u0626\u06d5","\ufbee":"\u0626\u0648","\ufbef":"\u0626\u0648","\ufbf0":"\u0626\u06c7","\ufbf1":"\u0626\u06c7","\ufbf2":"\u0626\u06c6","\ufbf3":"\u0626\u06c6","\ufbf4":"\u0626\u06c8","\ufbf5":"\u0626\u06c8","\ufbf6":"\u0626\u06d0","\ufbf7":"\u0626\u06d0","\ufbf8":"\u0626\u06d0","\ufbf9":"\u0626\u0649","\ufbfa":"\u0626\u0649", +"\ufbfb":"\u0626\u0649","\ufbfc":"\u06cc","\ufbfd":"\u06cc","\ufbfe":"\u06cc","\ufbff":"\u06cc","\ufc00":"\u0626\u062c","\ufc01":"\u0626\u062d","\ufc02":"\u0626\u0645","\ufc03":"\u0626\u0649","\ufc04":"\u0626\u064a","\ufc05":"\u0628\u062c","\ufc06":"\u0628\u062d","\ufc07":"\u0628\u062e","\ufc08":"\u0628\u0645","\ufc09":"\u0628\u0649","\ufc0a":"\u0628\u064a","\ufc0b":"\u062a\u062c","\ufc0c":"\u062a\u062d","\ufc0d":"\u062a\u062e","\ufc0e":"\u062a\u0645","\ufc0f":"\u062a\u0649","\ufc10":"\u062a\u064a", +"\ufc11":"\u062b\u062c","\ufc12":"\u062b\u0645","\ufc13":"\u062b\u0649","\ufc14":"\u062b\u064a","\ufc15":"\u062c\u062d","\ufc16":"\u062c\u0645","\ufc17":"\u062d\u062c","\ufc18":"\u062d\u0645","\ufc19":"\u062e\u062c","\ufc1a":"\u062e\u062d","\ufc1b":"\u062e\u0645","\ufc1c":"\u0633\u062c","\ufc1d":"\u0633\u062d","\ufc1e":"\u0633\u062e","\ufc1f":"\u0633\u0645","\ufc20":"\u0635\u062d","\ufc21":"\u0635\u0645","\ufc22":"\u0636\u062c","\ufc23":"\u0636\u062d","\ufc24":"\u0636\u062e","\ufc25":"\u0636\u0645", +"\ufc26":"\u0637\u062d","\ufc27":"\u0637\u0645","\ufc28":"\u0638\u0645","\ufc29":"\u0639\u062c","\ufc2a":"\u0639\u0645","\ufc2b":"\u063a\u062c","\ufc2c":"\u063a\u0645","\ufc2d":"\u0641\u062c","\ufc2e":"\u0641\u062d","\ufc2f":"\u0641\u062e","\ufc30":"\u0641\u0645","\ufc31":"\u0641\u0649","\ufc32":"\u0641\u064a","\ufc33":"\u0642\u062d","\ufc34":"\u0642\u0645","\ufc35":"\u0642\u0649","\ufc36":"\u0642\u064a","\ufc37":"\u0643\u0627","\ufc38":"\u0643\u062c","\ufc39":"\u0643\u062d","\ufc3a":"\u0643\u062e", +"\ufc3b":"\u0643\u0644","\ufc3c":"\u0643\u0645","\ufc3d":"\u0643\u0649","\ufc3e":"\u0643\u064a","\ufc3f":"\u0644\u062c","\ufc40":"\u0644\u062d","\ufc41":"\u0644\u062e","\ufc42":"\u0644\u0645","\ufc43":"\u0644\u0649","\ufc44":"\u0644\u064a","\ufc45":"\u0645\u062c","\ufc46":"\u0645\u062d","\ufc47":"\u0645\u062e","\ufc48":"\u0645\u0645","\ufc49":"\u0645\u0649","\ufc4a":"\u0645\u064a","\ufc4b":"\u0646\u062c","\ufc4c":"\u0646\u062d","\ufc4d":"\u0646\u062e","\ufc4e":"\u0646\u0645","\ufc4f":"\u0646\u0649", +"\ufc50":"\u0646\u064a","\ufc51":"\u0647\u062c","\ufc52":"\u0647\u0645","\ufc53":"\u0647\u0649","\ufc54":"\u0647\u064a","\ufc55":"\u064a\u062c","\ufc56":"\u064a\u062d","\ufc57":"\u064a\u062e","\ufc58":"\u064a\u0645","\ufc59":"\u064a\u0649","\ufc5a":"\u064a\u064a","\ufc5b":"\u0630\u0670","\ufc5c":"\u0631\u0670","\ufc5d":"\u0649\u0670","\ufc5e":" \u064c\u0651","\ufc5f":" \u064d\u0651","\ufc60":" \u064e\u0651","\ufc61":" \u064f\u0651","\ufc62":" \u0650\u0651","\ufc63":" \u0651\u0670","\ufc64":"\u0626\u0631", +"\ufc65":"\u0626\u0632","\ufc66":"\u0626\u0645","\ufc67":"\u0626\u0646","\ufc68":"\u0626\u0649","\ufc69":"\u0626\u064a","\ufc6a":"\u0628\u0631","\ufc6b":"\u0628\u0632","\ufc6c":"\u0628\u0645","\ufc6d":"\u0628\u0646","\ufc6e":"\u0628\u0649","\ufc6f":"\u0628\u064a","\ufc70":"\u062a\u0631","\ufc71":"\u062a\u0632","\ufc72":"\u062a\u0645","\ufc73":"\u062a\u0646","\ufc74":"\u062a\u0649","\ufc75":"\u062a\u064a","\ufc76":"\u062b\u0631","\ufc77":"\u062b\u0632","\ufc78":"\u062b\u0645","\ufc79":"\u062b\u0646", +"\ufc7a":"\u062b\u0649","\ufc7b":"\u062b\u064a","\ufc7c":"\u0641\u0649","\ufc7d":"\u0641\u064a","\ufc7e":"\u0642\u0649","\ufc7f":"\u0642\u064a","\ufc80":"\u0643\u0627","\ufc81":"\u0643\u0644","\ufc82":"\u0643\u0645","\ufc83":"\u0643\u0649","\ufc84":"\u0643\u064a","\ufc85":"\u0644\u0645","\ufc86":"\u0644\u0649","\ufc87":"\u0644\u064a","\ufc88":"\u0645\u0627","\ufc89":"\u0645\u0645","\ufc8a":"\u0646\u0631","\ufc8b":"\u0646\u0632","\ufc8c":"\u0646\u0645","\ufc8d":"\u0646\u0646","\ufc8e":"\u0646\u0649", +"\ufc8f":"\u0646\u064a","\ufc90":"\u0649\u0670","\ufc91":"\u064a\u0631","\ufc92":"\u064a\u0632","\ufc93":"\u064a\u0645","\ufc94":"\u064a\u0646","\ufc95":"\u064a\u0649","\ufc96":"\u064a\u064a","\ufc97":"\u0626\u062c","\ufc98":"\u0626\u062d","\ufc99":"\u0626\u062e","\ufc9a":"\u0626\u0645","\ufc9b":"\u0626\u0647","\ufc9c":"\u0628\u062c","\ufc9d":"\u0628\u062d","\ufc9e":"\u0628\u062e","\ufc9f":"\u0628\u0645","\ufca0":"\u0628\u0647","\ufca1":"\u062a\u062c","\ufca2":"\u062a\u062d","\ufca3":"\u062a\u062e", +"\ufca4":"\u062a\u0645","\ufca5":"\u062a\u0647","\ufca6":"\u062b\u0645","\ufca7":"\u062c\u062d","\ufca8":"\u062c\u0645","\ufca9":"\u062d\u062c","\ufcaa":"\u062d\u0645","\ufcab":"\u062e\u062c","\ufcac":"\u062e\u0645","\ufcad":"\u0633\u062c","\ufcae":"\u0633\u062d","\ufcaf":"\u0633\u062e","\ufcb0":"\u0633\u0645","\ufcb1":"\u0635\u062d","\ufcb2":"\u0635\u062e","\ufcb3":"\u0635\u0645","\ufcb4":"\u0636\u062c","\ufcb5":"\u0636\u062d","\ufcb6":"\u0636\u062e","\ufcb7":"\u0636\u0645","\ufcb8":"\u0637\u062d", +"\ufcb9":"\u0638\u0645","\ufcba":"\u0639\u062c","\ufcbb":"\u0639\u0645","\ufcbc":"\u063a\u062c","\ufcbd":"\u063a\u0645","\ufcbe":"\u0641\u062c","\ufcbf":"\u0641\u062d","\ufcc0":"\u0641\u062e","\ufcc1":"\u0641\u0645","\ufcc2":"\u0642\u062d","\ufcc3":"\u0642\u0645","\ufcc4":"\u0643\u062c","\ufcc5":"\u0643\u062d","\ufcc6":"\u0643\u062e","\ufcc7":"\u0643\u0644","\ufcc8":"\u0643\u0645","\ufcc9":"\u0644\u062c","\ufcca":"\u0644\u062d","\ufccb":"\u0644\u062e","\ufccc":"\u0644\u0645","\ufccd":"\u0644\u0647", +"\ufcce":"\u0645\u062c","\ufccf":"\u0645\u062d","\ufcd0":"\u0645\u062e","\ufcd1":"\u0645\u0645","\ufcd2":"\u0646\u062c","\ufcd3":"\u0646\u062d","\ufcd4":"\u0646\u062e","\ufcd5":"\u0646\u0645","\ufcd6":"\u0646\u0647","\ufcd7":"\u0647\u062c","\ufcd8":"\u0647\u0645","\ufcd9":"\u0647\u0670","\ufcda":"\u064a\u062c","\ufcdb":"\u064a\u062d","\ufcdc":"\u064a\u062e","\ufcdd":"\u064a\u0645","\ufcde":"\u064a\u0647","\ufcdf":"\u0626\u0645","\ufce0":"\u0626\u0647","\ufce1":"\u0628\u0645","\ufce2":"\u0628\u0647", +"\ufce3":"\u062a\u0645","\ufce4":"\u062a\u0647","\ufce5":"\u062b\u0645","\ufce6":"\u062b\u0647","\ufce7":"\u0633\u0645","\ufce8":"\u0633\u0647","\ufce9":"\u0634\u0645","\ufcea":"\u0634\u0647","\ufceb":"\u0643\u0644","\ufcec":"\u0643\u0645","\ufced":"\u0644\u0645","\ufcee":"\u0646\u0645","\ufcef":"\u0646\u0647","\ufcf0":"\u064a\u0645","\ufcf1":"\u064a\u0647","\ufcf2":"\u0640\u064e\u0651","\ufcf3":"\u0640\u064f\u0651","\ufcf4":"\u0640\u0650\u0651","\ufcf5":"\u0637\u0649","\ufcf6":"\u0637\u064a","\ufcf7":"\u0639\u0649", +"\ufcf8":"\u0639\u064a","\ufcf9":"\u063a\u0649","\ufcfa":"\u063a\u064a","\ufcfb":"\u0633\u0649","\ufcfc":"\u0633\u064a","\ufcfd":"\u0634\u0649","\ufcfe":"\u0634\u064a","\ufcff":"\u062d\u0649","\ufd00":"\u062d\u064a","\ufd01":"\u062c\u0649","\ufd02":"\u062c\u064a","\ufd03":"\u062e\u0649","\ufd04":"\u062e\u064a","\ufd05":"\u0635\u0649","\ufd06":"\u0635\u064a","\ufd07":"\u0636\u0649","\ufd08":"\u0636\u064a","\ufd09":"\u0634\u062c","\ufd0a":"\u0634\u062d","\ufd0b":"\u0634\u062e","\ufd0c":"\u0634\u0645", +"\ufd0d":"\u0634\u0631","\ufd0e":"\u0633\u0631","\ufd0f":"\u0635\u0631","\ufd10":"\u0636\u0631","\ufd11":"\u0637\u0649","\ufd12":"\u0637\u064a","\ufd13":"\u0639\u0649","\ufd14":"\u0639\u064a","\ufd15":"\u063a\u0649","\ufd16":"\u063a\u064a","\ufd17":"\u0633\u0649","\ufd18":"\u0633\u064a","\ufd19":"\u0634\u0649","\ufd1a":"\u0634\u064a","\ufd1b":"\u062d\u0649","\ufd1c":"\u062d\u064a","\ufd1d":"\u062c\u0649","\ufd1e":"\u062c\u064a","\ufd1f":"\u062e\u0649","\ufd20":"\u062e\u064a","\ufd21":"\u0635\u0649", +"\ufd22":"\u0635\u064a","\ufd23":"\u0636\u0649","\ufd24":"\u0636\u064a","\ufd25":"\u0634\u062c","\ufd26":"\u0634\u062d","\ufd27":"\u0634\u062e","\ufd28":"\u0634\u0645","\ufd29":"\u0634\u0631","\ufd2a":"\u0633\u0631","\ufd2b":"\u0635\u0631","\ufd2c":"\u0636\u0631","\ufd2d":"\u0634\u062c","\ufd2e":"\u0634\u062d","\ufd2f":"\u0634\u062e","\ufd30":"\u0634\u0645","\ufd31":"\u0633\u0647","\ufd32":"\u0634\u0647","\ufd33":"\u0637\u0645","\ufd34":"\u0633\u062c","\ufd35":"\u0633\u062d","\ufd36":"\u0633\u062e", +"\ufd37":"\u0634\u062c","\ufd38":"\u0634\u062d","\ufd39":"\u0634\u062e","\ufd3a":"\u0637\u0645","\ufd3b":"\u0638\u0645","\ufd3c":"\u0627\u064b","\ufd3d":"\u0627\u064b","\ufd50":"\u062a\u062c\u0645","\ufd51":"\u062a\u062d\u062c","\ufd52":"\u062a\u062d\u062c","\ufd53":"\u062a\u062d\u0645","\ufd54":"\u062a\u062e\u0645","\ufd55":"\u062a\u0645\u062c","\ufd56":"\u062a\u0645\u062d","\ufd57":"\u062a\u0645\u062e","\ufd58":"\u062c\u0645\u062d","\ufd59":"\u062c\u0645\u062d","\ufd5a":"\u062d\u0645\u064a","\ufd5b":"\u062d\u0645\u0649", +"\ufd5c":"\u0633\u062d\u062c","\ufd5d":"\u0633\u062c\u062d","\ufd5e":"\u0633\u062c\u0649","\ufd5f":"\u0633\u0645\u062d","\ufd60":"\u0633\u0645\u062d","\ufd61":"\u0633\u0645\u062c","\ufd62":"\u0633\u0645\u0645","\ufd63":"\u0633\u0645\u0645","\ufd64":"\u0635\u062d\u062d","\ufd65":"\u0635\u062d\u062d","\ufd66":"\u0635\u0645\u0645","\ufd67":"\u0634\u062d\u0645","\ufd68":"\u0634\u062d\u0645","\ufd69":"\u0634\u062c\u064a","\ufd6a":"\u0634\u0645\u062e","\ufd6b":"\u0634\u0645\u062e","\ufd6c":"\u0634\u0645\u0645", +"\ufd6d":"\u0634\u0645\u0645","\ufd6e":"\u0636\u062d\u0649","\ufd6f":"\u0636\u062e\u0645","\ufd70":"\u0636\u062e\u0645","\ufd71":"\u0637\u0645\u062d","\ufd72":"\u0637\u0645\u062d","\ufd73":"\u0637\u0645\u0645","\ufd74":"\u0637\u0645\u064a","\ufd75":"\u0639\u062c\u0645","\ufd76":"\u0639\u0645\u0645","\ufd77":"\u0639\u0645\u0645","\ufd78":"\u0639\u0645\u0649","\ufd79":"\u063a\u0645\u0645","\ufd7a":"\u063a\u0645\u064a","\ufd7b":"\u063a\u0645\u0649","\ufd7c":"\u0641\u062e\u0645","\ufd7d":"\u0641\u062e\u0645", +"\ufd7e":"\u0642\u0645\u062d","\ufd7f":"\u0642\u0645\u0645","\ufd80":"\u0644\u062d\u0645","\ufd81":"\u0644\u062d\u064a","\ufd82":"\u0644\u062d\u0649","\ufd83":"\u0644\u062c\u062c","\ufd84":"\u0644\u062c\u062c","\ufd85":"\u0644\u062e\u0645","\ufd86":"\u0644\u062e\u0645","\ufd87":"\u0644\u0645\u062d","\ufd88":"\u0644\u0645\u062d","\ufd89":"\u0645\u062d\u062c","\ufd8a":"\u0645\u062d\u0645","\ufd8b":"\u0645\u062d\u064a","\ufd8c":"\u0645\u062c\u062d","\ufd8d":"\u0645\u062c\u0645","\ufd8e":"\u0645\u062e\u062c", +"\ufd8f":"\u0645\u062e\u0645","\ufd92":"\u0645\u062c\u062e","\ufd93":"\u0647\u0645\u062c","\ufd94":"\u0647\u0645\u0645","\ufd95":"\u0646\u062d\u0645","\ufd96":"\u0646\u062d\u0649","\ufd97":"\u0646\u062c\u0645","\ufd98":"\u0646\u062c\u0645","\ufd99":"\u0646\u062c\u0649","\ufd9a":"\u0646\u0645\u064a","\ufd9b":"\u0646\u0645\u0649","\ufd9c":"\u064a\u0645\u0645","\ufd9d":"\u064a\u0645\u0645","\ufd9e":"\u0628\u062e\u064a","\ufd9f":"\u062a\u062c\u064a","\ufda0":"\u062a\u062c\u0649","\ufda1":"\u062a\u062e\u064a", +"\ufda2":"\u062a\u062e\u0649","\ufda3":"\u062a\u0645\u064a","\ufda4":"\u062a\u0645\u0649","\ufda5":"\u062c\u0645\u064a","\ufda6":"\u062c\u062d\u0649","\ufda7":"\u062c\u0645\u0649","\ufda8":"\u0633\u062e\u0649","\ufda9":"\u0635\u062d\u064a","\ufdaa":"\u0634\u062d\u064a","\ufdab":"\u0636\u062d\u064a","\ufdac":"\u0644\u062c\u064a","\ufdad":"\u0644\u0645\u064a","\ufdae":"\u064a\u062d\u064a","\ufdaf":"\u064a\u062c\u064a","\ufdb0":"\u064a\u0645\u064a","\ufdb1":"\u0645\u0645\u064a","\ufdb2":"\u0642\u0645\u064a", +"\ufdb3":"\u0646\u062d\u064a","\ufdb4":"\u0642\u0645\u062d","\ufdb5":"\u0644\u062d\u0645","\ufdb6":"\u0639\u0645\u064a","\ufdb7":"\u0643\u0645\u064a","\ufdb8":"\u0646\u062c\u062d","\ufdb9":"\u0645\u062e\u064a","\ufdba":"\u0644\u062c\u0645","\ufdbb":"\u0643\u0645\u0645","\ufdbc":"\u0644\u062c\u0645","\ufdbd":"\u0646\u062c\u062d","\ufdbe":"\u062c\u062d\u064a","\ufdbf":"\u062d\u062c\u064a","\ufdc0":"\u0645\u062c\u064a","\ufdc1":"\u0641\u0645\u064a","\ufdc2":"\u0628\u062d\u064a","\ufdc3":"\u0643\u0645\u0645", +"\ufdc4":"\u0639\u062c\u0645","\ufdc5":"\u0635\u0645\u0645","\ufdc6":"\u0633\u062e\u064a","\ufdc7":"\u0646\u062c\u064a","\ufe49":"\u203e","\ufe4a":"\u203e","\ufe4b":"\u203e","\ufe4c":"\u203e","\ufe4d":"_","\ufe4e":"_","\ufe4f":"_","\ufe80":"\u0621","\ufe81":"\u0622","\ufe82":"\u0622","\ufe83":"\u0623","\ufe84":"\u0623","\ufe85":"\u0624","\ufe86":"\u0624","\ufe87":"\u0625","\ufe88":"\u0625","\ufe89":"\u0626","\ufe8a":"\u0626","\ufe8b":"\u0626","\ufe8c":"\u0626","\ufe8d":"\u0627","\ufe8e":"\u0627", +"\ufe8f":"\u0628","\ufe90":"\u0628","\ufe91":"\u0628","\ufe92":"\u0628","\ufe93":"\u0629","\ufe94":"\u0629","\ufe95":"\u062a","\ufe96":"\u062a","\ufe97":"\u062a","\ufe98":"\u062a","\ufe99":"\u062b","\ufe9a":"\u062b","\ufe9b":"\u062b","\ufe9c":"\u062b","\ufe9d":"\u062c","\ufe9e":"\u062c","\ufe9f":"\u062c","\ufea0":"\u062c","\ufea1":"\u062d","\ufea2":"\u062d","\ufea3":"\u062d","\ufea4":"\u062d","\ufea5":"\u062e","\ufea6":"\u062e","\ufea7":"\u062e","\ufea8":"\u062e","\ufea9":"\u062f","\ufeaa":"\u062f", +"\ufeab":"\u0630","\ufeac":"\u0630","\ufead":"\u0631","\ufeae":"\u0631","\ufeaf":"\u0632","\ufeb0":"\u0632","\ufeb1":"\u0633","\ufeb2":"\u0633","\ufeb3":"\u0633","\ufeb4":"\u0633","\ufeb5":"\u0634","\ufeb6":"\u0634","\ufeb7":"\u0634","\ufeb8":"\u0634","\ufeb9":"\u0635","\ufeba":"\u0635","\ufebb":"\u0635","\ufebc":"\u0635","\ufebd":"\u0636","\ufebe":"\u0636","\ufebf":"\u0636","\ufec0":"\u0636","\ufec1":"\u0637","\ufec2":"\u0637","\ufec3":"\u0637","\ufec4":"\u0637","\ufec5":"\u0638","\ufec6":"\u0638", +"\ufec7":"\u0638","\ufec8":"\u0638","\ufec9":"\u0639","\ufeca":"\u0639","\ufecb":"\u0639","\ufecc":"\u0639","\ufecd":"\u063a","\ufece":"\u063a","\ufecf":"\u063a","\ufed0":"\u063a","\ufed1":"\u0641","\ufed2":"\u0641","\ufed3":"\u0641","\ufed4":"\u0641","\ufed5":"\u0642","\ufed6":"\u0642","\ufed7":"\u0642","\ufed8":"\u0642","\ufed9":"\u0643","\ufeda":"\u0643","\ufedb":"\u0643","\ufedc":"\u0643","\ufedd":"\u0644","\ufede":"\u0644","\ufedf":"\u0644","\ufee0":"\u0644","\ufee1":"\u0645","\ufee2":"\u0645", +"\ufee3":"\u0645","\ufee4":"\u0645","\ufee5":"\u0646","\ufee6":"\u0646","\ufee7":"\u0646","\ufee8":"\u0646","\ufee9":"\u0647","\ufeea":"\u0647","\ufeeb":"\u0647","\ufeec":"\u0647","\ufeed":"\u0648","\ufeee":"\u0648","\ufeef":"\u0649","\ufef0":"\u0649","\ufef1":"\u064a","\ufef2":"\u064a","\ufef3":"\u064a","\ufef4":"\u064a","\ufef5":"\u0644\u0622","\ufef6":"\u0644\u0622","\ufef7":"\u0644\u0623","\ufef8":"\u0644\u0623","\ufef9":"\u0644\u0625","\ufefa":"\u0644\u0625","\ufefb":"\u0644\u0627","\ufefc":"\u0644\u0627"}; +function reverseIfRtl(chars){var charsLength=chars.length;if(charsLength<=1||!isRTLRangeFor(chars.charCodeAt(0)))return chars;var s="";for(var ii=charsLength-1;ii>=0;ii--)s+=chars[ii];return s}function adjustWidths(properties){if(properties.fontMatrix[0]===FONT_IDENTITY_MATRIX[0])return;var scale=.001/properties.fontMatrix[0];var glyphsWidths=properties.widths;for(var glyph in glyphsWidths)glyphsWidths[glyph]*=scale;properties.defaultWidth*=scale}function getFontType(type,subtype){switch(type){case "Type1":return subtype=== +"Type1C"?FontType.TYPE1C:FontType.TYPE1;case "CIDFontType0":return subtype==="CIDFontType0C"?FontType.CIDFONTTYPE0C:FontType.CIDFONTTYPE0;case "OpenType":return FontType.OPENTYPE;case "TrueType":return FontType.TRUETYPE;case "CIDFontType2":return FontType.CIDFONTTYPE2;case "MMType1":return FontType.MMTYPE1;case "Type0":return FontType.TYPE0;default:return FontType.UNKNOWN}}var Glyph=function GlyphClosure(){function Glyph(fontChar,unicode,accent,width,vmetric,operatorListId){this.fontChar=fontChar; +this.unicode=unicode;this.accent=accent;this.width=width;this.vmetric=vmetric;this.operatorListId=operatorListId}Glyph.prototype.matchesForCache=function(fontChar,unicode,accent,width,vmetric,operatorListId){return this.fontChar===fontChar&&this.unicode===unicode&&this.accent===accent&&this.width===width&&this.vmetric===vmetric&&this.operatorListId===operatorListId};return Glyph}();var ToUnicodeMap=function ToUnicodeMapClosure(){function ToUnicodeMap(cmap){this._map=cmap}ToUnicodeMap.prototype={get length(){return this._map.length}, +forEach:function(callback){for(var charCode in this._map)callback(charCode,this._map[charCode].charCodeAt(0))},get:function(i){return this._map[i]},charCodeOf:function(v){return this._map.indexOf(v)}};return ToUnicodeMap}();var IdentityToUnicodeMap=function IdentityToUnicodeMapClosure(){function IdentityToUnicodeMap(firstChar,lastChar){this.firstChar=firstChar;this.lastChar=lastChar}IdentityToUnicodeMap.prototype={get length(){error("should not access .length")},forEach:function(callback){for(var i= +this.firstChar,ii=this.lastChar;i<=ii;i++)callback(i,i)},get:function(i){if(this.firstChar<=i&&i<=this.lastChar)return String.fromCharCode(i);return undefined},charCodeOf:function(v){error("should not call .charCodeOf")}};return IdentityToUnicodeMap}();var OpenTypeFileBuilder=function OpenTypeFileBuilderClosure(){function writeInt16(dest,offset,num){dest[offset]=num>>8&255;dest[offset+1]=num&255}function writeInt32(dest,offset,num){dest[offset]=num>>24&255;dest[offset+1]=num>>16&255;dest[offset+2]= +num>>8&255;dest[offset+3]=num&255}function writeData(dest,offset,data){var i,ii;if(data instanceof Uint8Array)dest.set(data,offset);else if(typeof data==="string")for(i=0,ii=data.length;i<ii;i++)dest[offset++]=data.charCodeAt(i)&255;else for(i=0,ii=data.length;i<ii;i++)dest[offset++]=data[i]&255}function OpenTypeFileBuilder(sfnt){this.sfnt=sfnt;this.tables=Object.create(null)}OpenTypeFileBuilder.getSearchParams=function OpenTypeFileBuilder_getSearchParams(entriesCount,entrySize){var maxPower2=1,log2= +0;while((maxPower2^entriesCount)>maxPower2){maxPower2<<=1;log2++}var searchRange=maxPower2*entrySize;return{range:searchRange,entry:log2,rangeShift:entrySize*entriesCount-searchRange}};var OTF_HEADER_SIZE=12;var OTF_TABLE_ENTRY_SIZE=16;OpenTypeFileBuilder.prototype={toArray:function OpenTypeFileBuilder_toArray(){var sfnt=this.sfnt;var tables=this.tables;var tablesNames=Object.keys(tables);tablesNames.sort();var numTables=tablesNames.length;var i,j,jj,table,tableName;var offset=OTF_HEADER_SIZE+numTables* +OTF_TABLE_ENTRY_SIZE;var tableOffsets=[offset];for(i=0;i<numTables;i++){table=tables[tablesNames[i]];var paddedLength=(table.length+3&~3)>>>0;offset+=paddedLength;tableOffsets.push(offset)}var file=new Uint8Array(offset);for(i=0;i<numTables;i++){table=tables[tablesNames[i]];writeData(file,tableOffsets[i],table)}if(sfnt==="true")sfnt=string32(65536);file[0]=sfnt.charCodeAt(0)&255;file[1]=sfnt.charCodeAt(1)&255;file[2]=sfnt.charCodeAt(2)&255;file[3]=sfnt.charCodeAt(3)&255;writeInt16(file,4,numTables); +var searchParams=OpenTypeFileBuilder.getSearchParams(numTables,16);writeInt16(file,6,searchParams.range);writeInt16(file,8,searchParams.entry);writeInt16(file,10,searchParams.rangeShift);offset=OTF_HEADER_SIZE;for(i=0;i<numTables;i++){tableName=tablesNames[i];file[offset]=tableName.charCodeAt(0)&255;file[offset+1]=tableName.charCodeAt(1)&255;file[offset+2]=tableName.charCodeAt(2)&255;file[offset+3]=tableName.charCodeAt(3)&255;var checksum=0;for(j=tableOffsets[i],jj=tableOffsets[i+1];j<jj;j+=4){var quad= +(file[j]<<24)+(file[j+1]<<16)+(file[j+2]<<8)+file[j+3];checksum=checksum+quad|0}writeInt32(file,offset+4,checksum);writeInt32(file,offset+8,tableOffsets[i]);writeInt32(file,offset+12,tables[tableName].length);offset+=OTF_TABLE_ENTRY_SIZE}return file},addTable:function OpenTypeFileBuilder_addTable(tag,data){if(tag in this.tables)throw new Error("Table "+tag+" already exists");this.tables[tag]=data}};return OpenTypeFileBuilder}();var Font=function FontClosure(){function Font(name,file,properties){var charCode, +glyphName,fontChar;this.name=name;this.loadedName=properties.loadedName;this.isType3Font=properties.isType3Font;this.sizes=[];this.glyphCache={};var names=name.split("+");names=names.length>1?names[1]:names[0];names=names.split(/[-,_]/g)[0];this.isSerifFont=!!(properties.flags&FontFlags.Serif);this.isSymbolicFont=!!(properties.flags&FontFlags.Symbolic);this.isMonospace=!!(properties.flags&FontFlags.FixedPitch);var type=properties.type;var subtype=properties.subtype;this.type=type;this.fallbackName= +this.isMonospace?"monospace":this.isSerifFont?"serif":"sans-serif";this.differences=properties.differences;this.widths=properties.widths;this.defaultWidth=properties.defaultWidth;this.composite=properties.composite;this.wideChars=properties.wideChars;this.cMap=properties.cMap;this.ascent=properties.ascent/PDF_GLYPH_SPACE_UNITS;this.descent=properties.descent/PDF_GLYPH_SPACE_UNITS;this.fontMatrix=properties.fontMatrix;this.toUnicode=properties.toUnicode=this.buildToUnicode(properties);this.toFontChar= +[];if(properties.type==="Type3"){for(charCode=0;charCode<256;charCode++)this.toFontChar[charCode]=this.differences[charCode]||properties.defaultEncoding[charCode];this.fontType=FontType.TYPE3;return}this.cidEncoding=properties.cidEncoding;this.vertical=properties.vertical;if(this.vertical){this.vmetrics=properties.vmetrics;this.defaultVMetrics=properties.defaultVMetrics}if(!file||file.isEmpty){if(file)warn('Font file is empty in "'+name+'" ('+this.loadedName+")");this.missingFile=true;var fontName= +name.replace(/[,_]/g,"-");var isStandardFont=fontName in stdFontMap;fontName=stdFontMap[fontName]||nonStdFontMap[fontName]||fontName;this.bold=fontName.search(/bold/gi)!==-1;this.italic=fontName.search(/oblique/gi)!==-1||fontName.search(/italic/gi)!==-1;this.black=name.search(/Black/g)!==-1;this.remeasure=Object.keys(this.widths).length>0;if(isStandardFont&&type==="CIDFontType2"&&properties.cidEncoding.indexOf("Identity-")===0){var map=[];for(var code in GlyphMapForStandardFonts)map[+code]=GlyphMapForStandardFonts[code]; +var isIdentityUnicode=this.toUnicode instanceof IdentityToUnicodeMap;if(!isIdentityUnicode)this.toUnicode.forEach(function(charCode,unicodeCharCode){map[+charCode]=unicodeCharCode});this.toFontChar=map;this.toUnicode=new ToUnicodeMap(map)}else if(/Symbol/i.test(fontName)){var symbols=Encodings.SymbolSetEncoding;for(charCode in symbols){fontChar=GlyphsUnicode[symbols[charCode]];if(!fontChar)continue;this.toFontChar[charCode]=fontChar}for(charCode in properties.differences){fontChar=GlyphsUnicode[properties.differences[charCode]]; +if(!fontChar)continue;this.toFontChar[charCode]=fontChar}}else if(/Dingbats/i.test(fontName)){var dingbats=Encodings.ZapfDingbatsEncoding;for(charCode in dingbats){fontChar=DingbatsGlyphsUnicode[dingbats[charCode]];if(!fontChar)continue;this.toFontChar[charCode]=fontChar}for(charCode in properties.differences){fontChar=DingbatsGlyphsUnicode[properties.differences[charCode]];if(!fontChar)continue;this.toFontChar[charCode]=fontChar}}else if(isStandardFont){this.toFontChar=[];for(charCode in properties.defaultEncoding){glyphName= +properties.differences[charCode]||properties.defaultEncoding[charCode];this.toFontChar[charCode]=GlyphsUnicode[glyphName]}}else{var unicodeCharCode,notCidFont=type.indexOf("CIDFontType")===-1;this.toUnicode.forEach(function(charCode,unicodeCharCode){if(notCidFont){glyphName=properties.differences[charCode]||properties.defaultEncoding[charCode];unicodeCharCode=GlyphsUnicode[glyphName]||unicodeCharCode}this.toFontChar[charCode]=unicodeCharCode}.bind(this))}this.loadedName=fontName.split("-")[0];this.loading= +false;this.fontType=getFontType(type,subtype);return}if(subtype==="Type1C"&&(type!=="Type1"&&type!=="MMType1"))if(isTrueTypeFile(file))subtype="TrueType";else type="Type1";if(subtype==="CIDFontType0C"&&type!=="CIDFontType0")type="CIDFontType0";if(subtype==="OpenType")type="OpenType";var data;switch(type){case "MMType1":info("MMType1 font ("+name+"), falling back to Type1.");case "Type1":case "CIDFontType0":this.mimetype="font/opentype";var cff=subtype==="Type1C"||subtype==="CIDFontType0C"?new CFFFont(file, +properties):new Type1Font(name,file,properties);adjustWidths(properties);data=this.convert(name,cff,properties);break;case "OpenType":case "TrueType":case "CIDFontType2":this.mimetype="font/opentype";data=this.checkAndRepair(name,file,properties);if(this.isOpenType)type="OpenType";break;default:error("Font "+type+" is not supported");break}this.data=data;this.fontType=getFontType(type,subtype);this.fontMatrix=properties.fontMatrix;this.widths=properties.widths;this.defaultWidth=properties.defaultWidth; +this.encoding=properties.baseEncoding;this.seacMap=properties.seacMap;this.loading=true}Font.getFontID=function(){var ID=1;return function Font_getFontID(){return String(ID++)}}();function int16(b0,b1){return(b0<<8)+b1}function int32(b0,b1,b2,b3){return(b0<<24)+(b1<<16)+(b2<<8)+b3}function string16(value){return String.fromCharCode(value>>8&255,value&255)}function safeString16(value){value=value>32767?32767:value<-32768?-32768:value;return String.fromCharCode(value>>8&255,value&255)}function isTrueTypeFile(file){var header= +file.peekBytes(4);return readUint32(header,0)===65536}function adjustMapping(charCodeToGlyphId,properties){var toUnicode=properties.toUnicode;var isSymbolic=!!(properties.flags&FontFlags.Symbolic);var isIdentityUnicode=properties.toUnicode instanceof IdentityToUnicodeMap;var isCidFontType2=properties.type==="CIDFontType2";var newMap=Object.create(null);var toFontChar=[];var usedFontCharCodes=[];var nextAvailableFontCharCode=PRIVATE_USE_OFFSET_START;for(var originalCharCode in charCodeToGlyphId){originalCharCode|= +0;var glyphId=charCodeToGlyphId[originalCharCode];var fontCharCode=originalCharCode;if(!isIdentityUnicode)if(toUnicode.get(originalCharCode)!==undefined){var unicode=toUnicode.get(fontCharCode);if(unicode.length===1)fontCharCode=unicode.charCodeAt(0)}else if(isCidFontType2)fontCharCode=nextAvailableFontCharCode;if((usedFontCharCodes[fontCharCode]!==undefined||fontCharCode<=31||fontCharCode===127||fontCharCode===173||fontCharCode>=128&&fontCharCode<=159||fontCharCode>=65520&&fontCharCode<=65535||isSymbolic&& +isIdentityUnicode)&&nextAvailableFontCharCode<=PRIVATE_USE_OFFSET_END){do{fontCharCode=nextAvailableFontCharCode++;if(SKIP_PRIVATE_USE_RANGE_F000_TO_F01F&&fontCharCode===61440){fontCharCode=61472;nextAvailableFontCharCode=fontCharCode+1}}while(usedFontCharCodes[fontCharCode]!==undefined&&nextAvailableFontCharCode<=PRIVATE_USE_OFFSET_END)}newMap[fontCharCode]=glyphId;toFontChar[originalCharCode]=fontCharCode;usedFontCharCodes[fontCharCode]=true}return{toFontChar:toFontChar,charCodeToGlyphId:newMap, +nextAvailableFontCharCode:nextAvailableFontCharCode}}function getRanges(glyphs){var codes=[];for(var charCode in glyphs)codes.push({fontCharCode:charCode|0,glyphId:glyphs[charCode]});codes.sort(function fontGetRangesSort(a,b){return a.fontCharCode-b.fontCharCode});var ranges=[];var length=codes.length;for(var n=0;n<length;){var start=codes[n].fontCharCode;var codeIndices=[codes[n].glyphId];++n;var end=start;while(n<length&&end+1===codes[n].fontCharCode){codeIndices.push(codes[n].glyphId);++end;++n; +if(end===65535)break}ranges.push([start,end,codeIndices])}return ranges}function createCmapTable(glyphs){var ranges=getRanges(glyphs);var numTables=ranges[ranges.length-1][1]>65535?2:1;var cmap="\x00\x00"+string16(numTables)+"\x00\u0003"+"\x00\u0001"+string32(4+numTables*8);var i,ii,j,jj;for(i=ranges.length-1;i>=0;--i)if(ranges[i][0]<=65535)break;var bmpLength=i+1;if(ranges[i][0]<65535&&ranges[i][1]===65535)ranges[i][1]=65534;var trailingRangesCount=ranges[i][1]<65535?1:0;var segCount=bmpLength+trailingRangesCount; +var searchParams=OpenTypeFileBuilder.getSearchParams(segCount,2);var startCount="";var endCount="";var idDeltas="";var idRangeOffsets="";var glyphsIds="";var bias=0;var range,start,end,codes;for(i=0,ii=bmpLength;i<ii;i++){range=ranges[i];start=range[0];end=range[1];startCount+=string16(start);endCount+=string16(end);codes=range[2];var contiguous=true;for(j=1,jj=codes.length;j<jj;++j)if(codes[j]!==codes[j-1]+1){contiguous=false;break}if(!contiguous){var offset=(segCount-i)*2+bias*2;bias+=end-start+ +1;idDeltas+=string16(0);idRangeOffsets+=string16(offset);for(j=0,jj=codes.length;j<jj;++j)glyphsIds+=string16(codes[j])}else{var startCode=codes[0];idDeltas+=string16(startCode-start&65535);idRangeOffsets+=string16(0)}}if(trailingRangesCount>0){endCount+="\u00ff\u00ff";startCount+="\u00ff\u00ff";idDeltas+="\x00\u0001";idRangeOffsets+="\x00\x00"}var format314="\x00\x00"+string16(2*segCount)+string16(searchParams.range)+string16(searchParams.entry)+string16(searchParams.rangeShift)+endCount+"\x00\x00"+ +startCount+idDeltas+idRangeOffsets+glyphsIds;var format31012="";var header31012="";if(numTables>1){cmap+="\x00\u0003"+"\x00\n"+string32(4+numTables*8+4+format314.length);format31012="";for(i=0,ii=ranges.length;i<ii;i++){range=ranges[i];start=range[0];codes=range[2];var code=codes[0];for(j=1,jj=codes.length;j<jj;++j)if(codes[j]!==codes[j-1]+1){end=range[0]+j-1;format31012+=string32(start)+string32(end)+string32(code);start=end+1;code=codes[j]}format31012+=string32(start)+string32(range[1])+string32(code)}header31012= +"\x00\f"+"\x00\x00"+string32(format31012.length+16)+"\x00\x00\x00\x00"+string32(format31012.length/12)}return cmap+"\x00\u0004"+string16(format314.length+4)+format314+header31012+format31012}function validateOS2Table(os2){var stream=new Stream(os2.data);var version=stream.getUint16();stream.getBytes(60);var selection=stream.getUint16();if(version<4&&selection&768)return false;var firstChar=stream.getUint16();var lastChar=stream.getUint16();if(firstChar>lastChar)return false;stream.getBytes(6);var usWinAscent= +stream.getUint16();if(usWinAscent===0)return false;os2.data[8]=os2.data[9]=0;return true}function createOS2Table(properties,charstrings,override){override=override||{unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};var ulUnicodeRange1=0;var ulUnicodeRange2=0;var ulUnicodeRange3=0;var ulUnicodeRange4=0;var firstCharIndex=null;var lastCharIndex=0;if(charstrings)for(var code in charstrings){code|=0;if(firstCharIndex>code||!firstCharIndex)firstCharIndex=code;if(lastCharIndex<code)lastCharIndex=code;var position= +getUnicodeRangeFor(code);if(position<32)ulUnicodeRange1|=1<<position;else if(position<64)ulUnicodeRange2|=1<<position-32;else if(position<96)ulUnicodeRange3|=1<<position-64;else if(position<123)ulUnicodeRange4|=1<<position-96;else error("Unicode ranges Bits > 123 are reserved for internal usage")}else{firstCharIndex=0;lastCharIndex=255}var bbox=properties.bbox||[0,0,0,0];var unitsPerEm=override.unitsPerEm||1/(properties.fontMatrix||FONT_IDENTITY_MATRIX)[0];var scale=properties.ascentScaled?1:unitsPerEm/ +PDF_GLYPH_SPACE_UNITS;var typoAscent=override.ascent||Math.round(scale*(properties.ascent||bbox[3]));var typoDescent=override.descent||Math.round(scale*(properties.descent||bbox[1]));if(typoDescent>0&&properties.descent>0&&bbox[1]<0)typoDescent=-typoDescent;var winAscent=override.yMax||typoAscent;var winDescent=-override.yMin||-typoDescent;return"\x00\u0003"+"\u0002$"+"\u0001\u00f4"+"\x00\u0005"+"\x00\x00"+"\u0002\u008a"+"\u0002\u00bb"+"\x00\x00"+"\x00\u008c"+"\u0002\u008a"+"\u0002\u00bb"+"\x00\x00"+ +"\u0001\u00df"+"\x001"+"\u0001\u0002"+"\x00\x00"+"\x00\x00\u0006"+String.fromCharCode(properties.fixedPitch?9:0)+"\x00\x00\x00\x00\x00\x00"+string32(ulUnicodeRange1)+string32(ulUnicodeRange2)+string32(ulUnicodeRange3)+string32(ulUnicodeRange4)+"*21*"+string16(properties.italicAngle?1:0)+string16(firstCharIndex||properties.firstChar)+string16(lastCharIndex||properties.lastChar)+string16(typoAscent)+string16(typoDescent)+"\x00d"+string16(winAscent)+string16(winDescent)+"\x00\x00\x00\x00"+"\x00\x00\x00\x00"+ +string16(properties.xHeight)+string16(properties.capHeight)+string16(0)+string16(firstCharIndex||properties.firstChar)+"\x00\u0003"}function createPostTable(properties){var angle=Math.floor(properties.italicAngle*Math.pow(2,16));return"\x00\u0003\x00\x00"+string32(angle)+"\x00\x00"+"\x00\x00"+string32(properties.fixedPitch)+"\x00\x00\x00\x00"+"\x00\x00\x00\x00"+"\x00\x00\x00\x00"+"\x00\x00\x00\x00"}function createNameTable(name,proto){if(!proto)proto=[[],[]];var strings=[proto[0][0]||"Original licence", +proto[0][1]||name,proto[0][2]||"Unknown",proto[0][3]||"uniqueID",proto[0][4]||name,proto[0][5]||"Version 0.11",proto[0][6]||"",proto[0][7]||"Unknown",proto[0][8]||"Unknown",proto[0][9]||"Unknown"];var stringsUnicode=[];var i,ii,j,jj,str;for(i=0,ii=strings.length;i<ii;i++){str=proto[1][i]||strings[i];var strBufUnicode=[];for(j=0,jj=str.length;j<jj;j++)strBufUnicode.push(string16(str.charCodeAt(j)));stringsUnicode.push(strBufUnicode.join(""))}var names=[strings,stringsUnicode];var platforms=["\x00\u0001", +"\x00\u0003"];var encodings=["\x00\x00","\x00\u0001"];var languages=["\x00\x00","\u0004\t"];var namesRecordCount=strings.length*platforms.length;var nameTable="\x00\x00"+string16(namesRecordCount)+string16(namesRecordCount*12+6);var strOffset=0;for(i=0,ii=platforms.length;i<ii;i++){var strs=names[i];for(j=0,jj=strs.length;j<jj;j++){str=strs[j];var nameRecord=platforms[i]+encodings[i]+languages[i]+string16(j)+string16(str.length)+string16(strOffset);nameTable+=nameRecord;strOffset+=str.length}}nameTable+= +strings.join("")+stringsUnicode.join("");return nameTable}Font.prototype={name:null,font:null,mimetype:null,encoding:null,get renderer(){var renderer=FontRendererFactory.create(this);return shadow(this,"renderer",renderer)},exportData:function Font_exportData(){var data={};for(var i in this)if(this.hasOwnProperty(i))data[i]=this[i];return data},checkAndRepair:function Font_checkAndRepair(name,font,properties){function readTableEntry(file){var tag=bytesToString(file.getBytes(4));var checksum=file.getInt32(); +var offset=file.getInt32()>>>0;var length=file.getInt32()>>>0;var previousPosition=file.pos;file.pos=file.start?file.start:0;file.skip(offset);var data=file.getBytes(length);file.pos=previousPosition;if(tag==="head"){data[8]=data[9]=data[10]=data[11]=0;data[17]|=32}return{tag:tag,checksum:checksum,length:length,offset:offset,data:data}}function readOpenTypeHeader(ttf){return{version:bytesToString(ttf.getBytes(4)),numTables:ttf.getUint16(),searchRange:ttf.getUint16(),entrySelector:ttf.getUint16(), +rangeShift:ttf.getUint16()}}function readCmapTable(cmap,font,isSymbolicFont){var segment;var start=(font.start?font.start:0)+cmap.offset;font.pos=start;var version=font.getUint16();var numTables=font.getUint16();var potentialTable;var canBreak=false;for(var i=0;i<numTables;i++){var platformId=font.getUint16();var encodingId=font.getUint16();var offset=font.getInt32()>>>0;var useTable=false;if(platformId===1&&encodingId===0)useTable=true;else if(!isSymbolicFont&&platformId===3&&encodingId===1){useTable= +true;canBreak=true}else if(isSymbolicFont&&platformId===3&&encodingId===0){useTable=true;canBreak=true}if(useTable)potentialTable={platformId:platformId,encodingId:encodingId,offset:offset};if(canBreak)break}if(!potentialTable){warn("Could not find a preferred cmap table.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:false}}font.pos=start+potentialTable.offset;var format=font.getUint16();var length=font.getUint16();var language=font.getUint16();var hasShortCmap=false;var mappings= +[];var j,glyphId;if(format===0){for(j=0;j<256;j++){var index=font.getByte();if(!index)continue;mappings.push({charCode:j,glyphId:index})}hasShortCmap=true}else if(format===4){var segCount=font.getUint16()>>1;font.getBytes(6);var segIndex,segments=[];for(segIndex=0;segIndex<segCount;segIndex++)segments.push({end:font.getUint16()});font.getUint16();for(segIndex=0;segIndex<segCount;segIndex++)segments[segIndex].start=font.getUint16();for(segIndex=0;segIndex<segCount;segIndex++)segments[segIndex].delta= +font.getUint16();var offsetsCount=0;for(segIndex=0;segIndex<segCount;segIndex++){segment=segments[segIndex];var rangeOffset=font.getUint16();if(!rangeOffset){segment.offsetIndex=-1;continue}var offsetIndex=(rangeOffset>>1)-(segCount-segIndex);segment.offsetIndex=offsetIndex;offsetsCount=Math.max(offsetsCount,offsetIndex+segment.end-segment.start+1)}var offsets=[];for(j=0;j<offsetsCount;j++)offsets.push(font.getUint16());for(segIndex=0;segIndex<segCount;segIndex++){segment=segments[segIndex];start= +segment.start;var end=segment.end;var delta=segment.delta;offsetIndex=segment.offsetIndex;for(j=start;j<=end;j++){if(j===65535)continue;glyphId=offsetIndex<0?j:offsets[offsetIndex+j-start];glyphId=glyphId+delta&65535;if(glyphId===0)continue;mappings.push({charCode:j,glyphId:glyphId})}}}else if(format===6){var firstCode=font.getUint16();var entryCount=font.getUint16();for(j=0;j<entryCount;j++){glyphId=font.getUint16();var charCode=firstCode+j;mappings.push({charCode:charCode,glyphId:glyphId})}}else error("cmap table has unsupported format: "+ +format);mappings.sort(function(a,b){return a.charCode-b.charCode});for(i=1;i<mappings.length;i++)if(mappings[i-1].charCode===mappings[i].charCode){mappings.splice(i,1);i--}return{platformId:potentialTable.platformId,encodingId:potentialTable.encodingId,mappings:mappings,hasShortCmap:hasShortCmap}}function sanitizeMetrics(font,header,metrics,numGlyphs){if(!header){if(metrics)metrics.data=null;return}font.pos=(font.start?font.start:0)+header.offset;font.pos+=header.length-2;var numOfMetrics=font.getUint16(); +if(numOfMetrics>numGlyphs){info("The numOfMetrics ("+numOfMetrics+") should not be "+"greater than the numGlyphs ("+numGlyphs+")");numOfMetrics=numGlyphs;header.data[34]=(numOfMetrics&65280)>>8;header.data[35]=numOfMetrics&255}var numOfSidebearings=numGlyphs-numOfMetrics;var numMissing=numOfSidebearings-(metrics.length-numOfMetrics*4>>1);if(numMissing>0){var entries=new Uint8Array(metrics.length+numMissing*2);entries.set(metrics.data);metrics.data=entries}}function sanitizeGlyph(source,sourceStart, +sourceEnd,dest,destStart,hintsValid){if(sourceEnd-sourceStart<=12)return 0;var glyf=source.subarray(sourceStart,sourceEnd);var contoursCount=glyf[0]<<8|glyf[1];if(contoursCount&32768){dest.set(glyf,destStart);return glyf.length}var i,j=10,flagsCount=0;for(i=0;i<contoursCount;i++){var endPoint=glyf[j]<<8|glyf[j+1];flagsCount=endPoint+1;j+=2}var instructionsStart=j;var instructionsLength=glyf[j]<<8|glyf[j+1];j+=2+instructionsLength;var instructionsEnd=j;var coordinatesLength=0;for(i=0;i<flagsCount;i++){var flag= +glyf[j++];if(flag&192)glyf[j-1]=flag&63;var xyLength=(flag&2?1:flag&16?0:2)+(flag&4?1:flag&32?0:2);coordinatesLength+=xyLength;if(flag&8){var repeat=glyf[j++];i+=repeat;coordinatesLength+=repeat*xyLength}}if(coordinatesLength===0)return 0;var glyphDataLength=j+coordinatesLength;if(glyphDataLength>glyf.length)return 0;if(!hintsValid&&instructionsLength>0){dest.set(glyf.subarray(0,instructionsStart),destStart);dest.set([0,0],destStart+instructionsStart);dest.set(glyf.subarray(instructionsEnd,glyphDataLength), +destStart+instructionsStart+2);glyphDataLength-=instructionsLength;if(glyf.length-glyphDataLength>3)glyphDataLength=glyphDataLength+3&~3;return glyphDataLength}if(glyf.length-glyphDataLength>3){glyphDataLength=glyphDataLength+3&~3;dest.set(glyf.subarray(0,glyphDataLength),destStart);return glyphDataLength}dest.set(glyf,destStart);return glyf.length}function sanitizeHead(head,numGlyphs,locaLength){var data=head.data;var version=int32(data[0],data[1],data[2],data[3]);if(version>>16!==1){info("Attempting to fix invalid version in head table: "+ +version);data[0]=0;data[1]=1;data[2]=0;data[3]=0}var indexToLocFormat=int16(data[50],data[51]);if(indexToLocFormat<0||indexToLocFormat>1){info("Attempting to fix invalid indexToLocFormat in head table: "+indexToLocFormat);var numGlyphsPlusOne=numGlyphs+1;if(locaLength===numGlyphsPlusOne<<1){data[50]=0;data[51]=0}else if(locaLength===numGlyphsPlusOne<<2){data[50]=0;data[51]=1}else warn("Could not fix indexToLocFormat: "+indexToLocFormat)}}function sanitizeGlyphLocations(loca,glyf,numGlyphs,isGlyphLocationsLong, +hintsValid,dupFirstEntry){var itemSize,itemDecode,itemEncode;if(isGlyphLocationsLong){itemSize=4;itemDecode=function fontItemDecodeLong(data,offset){return data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3]};itemEncode=function fontItemEncodeLong(data,offset,value){data[offset]=value>>>24&255;data[offset+1]=value>>16&255;data[offset+2]=value>>8&255;data[offset+3]=value&255}}else{itemSize=2;itemDecode=function fontItemDecode(data,offset){return data[offset]<<9|data[offset+1]<<1}; +itemEncode=function fontItemEncode(data,offset,value){data[offset]=value>>9&255;data[offset+1]=value>>1&255}}var locaData=loca.data;var locaDataSize=itemSize*(1+numGlyphs);if(locaData.length!==locaDataSize){locaData=new Uint8Array(locaDataSize);locaData.set(loca.data.subarray(0,locaDataSize));loca.data=locaData}var oldGlyfData=glyf.data;var oldGlyfDataLength=oldGlyfData.length;var newGlyfData=new Uint8Array(oldGlyfDataLength);var startOffset=itemDecode(locaData,0);var writeOffset=0;itemEncode(locaData, +0,writeOffset);var i,j;for(i=0,j=itemSize;i<numGlyphs;i++,j+=itemSize){var endOffset=itemDecode(locaData,j);if(endOffset>oldGlyfDataLength&&(oldGlyfDataLength+3&~3)===endOffset)endOffset=oldGlyfDataLength;if(endOffset>oldGlyfDataLength){itemEncode(locaData,j,writeOffset);startOffset=endOffset;continue}var newLength=sanitizeGlyph(oldGlyfData,startOffset,endOffset,newGlyfData,writeOffset,hintsValid);writeOffset+=newLength;itemEncode(locaData,j,writeOffset);startOffset=endOffset}if(writeOffset===0){var simpleGlyph= +new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(i=0,j=itemSize;i<numGlyphs;i++,j+=itemSize)itemEncode(locaData,j,simpleGlyph.length);glyf.data=simpleGlyph;return}if(dupFirstEntry){var firstEntryLength=itemDecode(locaData,itemSize);if(newGlyfData.length>firstEntryLength+writeOffset)glyf.data=newGlyfData.subarray(0,firstEntryLength+writeOffset);else{glyf.data=new Uint8Array(firstEntryLength+writeOffset);glyf.data.set(newGlyfData.subarray(0,writeOffset))}glyf.data.set(newGlyfData.subarray(0,firstEntryLength), +writeOffset);itemEncode(loca.data,locaData.length-itemSize,writeOffset+firstEntryLength)}else glyf.data=newGlyfData.subarray(0,writeOffset)}function readPostScriptTable(post,properties,maxpNumGlyphs){var start=(font.start?font.start:0)+post.offset;font.pos=start;var length=post.length,end=start+length;var version=font.getInt32();font.getBytes(28);var glyphNames;var valid=true;var i;switch(version){case 65536:glyphNames=MacStandardGlyphOrdering;break;case 131072:var numGlyphs=font.getUint16();if(numGlyphs!== +maxpNumGlyphs){valid=false;break}var glyphNameIndexes=[];for(i=0;i<numGlyphs;++i){var index=font.getUint16();if(index>=32768){valid=false;break}glyphNameIndexes.push(index)}if(!valid)break;var customNames=[];var strBuf=[];while(font.pos<end){var stringLength=font.getByte();strBuf.length=stringLength;for(i=0;i<stringLength;++i)strBuf[i]=String.fromCharCode(font.getByte());customNames.push(strBuf.join(""))}glyphNames=[];for(i=0;i<numGlyphs;++i){var j=glyphNameIndexes[i];if(j<258){glyphNames.push(MacStandardGlyphOrdering[j]); +continue}glyphNames.push(customNames[j-258])}break;case 196608:break;default:warn("Unknown/unsupported post table version "+version);valid=false;break}properties.glyphNames=glyphNames;return valid}function readNameTable(nameTable){var start=(font.start?font.start:0)+nameTable.offset;font.pos=start;var names=[[],[]];var length=nameTable.length,end=start+length;var format=font.getUint16();var FORMAT_0_HEADER_LENGTH=6;if(format!==0||length<FORMAT_0_HEADER_LENGTH)return names;var numRecords=font.getUint16(); +var stringsStart=font.getUint16();var records=[];var NAME_RECORD_LENGTH=12;var i,ii;for(i=0;i<numRecords&&font.pos+NAME_RECORD_LENGTH<=end;i++){var r={platform:font.getUint16(),encoding:font.getUint16(),language:font.getUint16(),name:font.getUint16(),length:font.getUint16(),offset:font.getUint16()};if(r.platform===1&&r.encoding===0&&r.language===0||r.platform===3&&r.encoding===1&&r.language===1033)records.push(r)}for(i=0,ii=records.length;i<ii;i++){var record=records[i];var pos=start+stringsStart+ +record.offset;if(pos+record.length>end)continue;font.pos=pos;var nameIndex=record.name;if(record.encoding){var str="";for(var j=0,jj=record.length;j<jj;j+=2)str+=String.fromCharCode(font.getUint16());names[1][nameIndex]=str}else names[0][nameIndex]=bytesToString(font.getBytes(record.length))}return names}var TTOpsStackDeltas=[0,0,0,0,0,0,0,0,-2,-2,-2,-2,0,0,-2,-5,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,1,-1,-999,0,1,0,-1,-2,0,-1,-2,-1,-1,0,-1,-1,0,0,-999,-999,-1,-1,-1,-1,-2,-999,-2,-2,-999,0, +-2,-2,0,0,-2,0,-2,0,0,0,-2,-1,-1,1,1,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,0,-999,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-2,-999,-999,-999,-999,-999,-1,-1,-2,-2,0,0,0,0,-1,-1,-999,-2,-2,0,0,-1,-2,-2,0,0,0,-1,-1,-1,-2];function sanitizeTTProgram(table,ttContext){var data=table.data;var i=0,j,n,b,funcId,pc,lastEndf=0,lastDeff=0;var stack=[];var callstack=[];var functionsCalled=[];var tooComplexToFollowFunctions=ttContext.tooComplexToFollowFunctions;var inFDEF=false,ifLevel=0,inELSE=0;for(var ii= +data.length;i<ii;){var op=data[i++];if(op===64){n=data[i++];if(inFDEF||inELSE)i+=n;else for(j=0;j<n;j++)stack.push(data[i++])}else if(op===65){n=data[i++];if(inFDEF||inELSE)i+=n*2;else for(j=0;j<n;j++){b=data[i++];stack.push(b<<8|data[i++])}}else if((op&248)===176){n=op-176+1;if(inFDEF||inELSE)i+=n;else for(j=0;j<n;j++)stack.push(data[i++])}else if((op&248)===184){n=op-184+1;if(inFDEF||inELSE)i+=n*2;else for(j=0;j<n;j++){b=data[i++];stack.push(b<<8|data[i++])}}else if(op===43&&!tooComplexToFollowFunctions){if(!inFDEF&& +!inELSE){funcId=stack[stack.length-1];ttContext.functionsUsed[funcId]=true;if(funcId in ttContext.functionsStackDeltas)stack.length+=ttContext.functionsStackDeltas[funcId];else if(funcId in ttContext.functionsDefined&&functionsCalled.indexOf(funcId)<0){callstack.push({data:data,i:i,stackTop:stack.length-1});functionsCalled.push(funcId);pc=ttContext.functionsDefined[funcId];if(!pc){warn("TT: CALL non-existent function");ttContext.hintsValid=false;return}data=pc.data;i=pc.i}}}else if(op===44&&!tooComplexToFollowFunctions){if(inFDEF|| +inELSE){warn("TT: nested FDEFs not allowed");tooComplexToFollowFunctions=true}inFDEF=true;lastDeff=i;funcId=stack.pop();ttContext.functionsDefined[funcId]={data:data,i:i}}else if(op===45)if(inFDEF){inFDEF=false;lastEndf=i}else{pc=callstack.pop();if(!pc){warn("TT: ENDF bad stack");ttContext.hintsValid=false;return}funcId=functionsCalled.pop();data=pc.data;i=pc.i;ttContext.functionsStackDeltas[funcId]=stack.length-pc.stackTop}else if(op===137){if(inFDEF||inELSE){warn("TT: nested IDEFs not allowed"); +tooComplexToFollowFunctions=true}inFDEF=true;lastDeff=i}else if(op===88)++ifLevel;else if(op===27)inELSE=ifLevel;else if(op===89){if(inELSE===ifLevel)inELSE=0;--ifLevel}else if(op===28)if(!inFDEF&&!inELSE){var offset=stack[stack.length-1];if(offset>0)i+=offset-1}if(!inFDEF&&!inELSE){var stackDelta=op<=142?TTOpsStackDeltas[op]:op>=192&&op<=223?-1:op>=224?-2:0;if(op>=113&&op<=117){n=stack.pop();if(n===n)stackDelta=-n*2}while(stackDelta<0&&stack.length>0){stack.pop();stackDelta++}while(stackDelta>0){stack.push(NaN); +stackDelta--}}}ttContext.tooComplexToFollowFunctions=tooComplexToFollowFunctions;var content=[data];if(i>data.length)content.push(new Uint8Array(i-data.length));if(lastDeff>lastEndf){warn("TT: complementing a missing function tail");content.push(new Uint8Array([34,45]))}foldTTTable(table,content)}function checkInvalidFunctions(ttContext,maxFunctionDefs){if(ttContext.tooComplexToFollowFunctions)return;if(ttContext.functionsDefined.length>maxFunctionDefs){warn("TT: more functions defined than expected"); +ttContext.hintsValid=false;return}for(var j=0,jj=ttContext.functionsUsed.length;j<jj;j++){if(j>maxFunctionDefs){warn("TT: invalid function id: "+j);ttContext.hintsValid=false;return}if(ttContext.functionsUsed[j]&&!ttContext.functionsDefined[j]){warn("TT: undefined function: "+j);ttContext.hintsValid=false;return}}}function foldTTTable(table,content){if(content.length>1){var newLength=0;var j,jj;for(j=0,jj=content.length;j<jj;j++)newLength+=content[j].length;newLength=newLength+3&~3;var result=new Uint8Array(newLength); +var pos=0;for(j=0,jj=content.length;j<jj;j++){result.set(content[j],pos);pos+=content[j].length}table.data=result;table.length=newLength}}function sanitizeTTPrograms(fpgm,prep,cvt){var ttContext={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:false,hintsValid:true};if(fpgm)sanitizeTTProgram(fpgm,ttContext);if(prep)sanitizeTTProgram(prep,ttContext);if(fpgm)checkInvalidFunctions(ttContext,maxFunctionDefs);if(cvt&&cvt.length&1){var cvtData=new Uint8Array(cvt.length+ +1);cvtData.set(cvt.data);cvt.data=cvtData}return ttContext.hintsValid}font=new Stream(new Uint8Array(font.getBytes()));var VALID_TABLES=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];var header=readOpenTypeHeader(font);var numTables=header.numTables;var cff,cffFile;var tables={"OS/2":null,cmap:null,head:null,hhea:null,hmtx:null,maxp:null,name:null,post:null};var table;for(var i=0;i<numTables;i++){table=readTableEntry(font);if(VALID_TABLES.indexOf(table.tag)< +0)continue;if(table.length===0)continue;tables[table.tag]=table}var isTrueType=!tables["CFF "];if(!isTrueType){if(!tables.head||!tables.hhea||!tables.maxp||!tables.post){cffFile=new Stream(tables["CFF "].data);cff=new CFFFont(cffFile,properties);return this.convert(name,cff,properties)}delete tables.glyf;delete tables.loca;delete tables.fpgm;delete tables.prep;delete tables["cvt "];this.isOpenType=true}else{if(!tables.glyf||!tables.loca)error('Required "glyf" or "loca" tables are not found');this.isOpenType= +false}if(!tables.maxp)error('Required "maxp" table is not found');font.pos=(font.start||0)+tables.maxp.offset;var version=font.getInt32();var numGlyphs=font.getUint16();var maxFunctionDefs=0;if(version>=65536&&tables.maxp.length>=22){font.pos+=8;var maxZones=font.getUint16();if(maxZones>2){tables.maxp.data[14]=0;tables.maxp.data[15]=2}font.pos+=4;maxFunctionDefs=font.getUint16()}var dupFirstEntry=false;if(properties.type==="CIDFontType2"&&properties.toUnicode&&properties.toUnicode.get(0)>"\x00"){dupFirstEntry= +true;numGlyphs++;tables.maxp.data[4]=numGlyphs>>8;tables.maxp.data[5]=numGlyphs&255}var hintsValid=sanitizeTTPrograms(tables.fpgm,tables.prep,tables["cvt "],maxFunctionDefs);if(!hintsValid){delete tables.fpgm;delete tables.prep;delete tables["cvt "]}sanitizeMetrics(font,tables.hhea,tables.hmtx,numGlyphs);if(!tables.head)error('Required "head" table is not found');sanitizeHead(tables.head,numGlyphs,isTrueType?tables.loca.length:0);if(isTrueType){var isGlyphLocationsLong=int16(tables.head.data[50], +tables.head.data[51]);sanitizeGlyphLocations(tables.loca,tables.glyf,numGlyphs,isGlyphLocationsLong,hintsValid,dupFirstEntry)}if(!tables.hhea)error('Required "hhea" table is not found');if(tables.hhea.data[10]===0&&tables.hhea.data[11]===0){tables.hhea.data[10]=255;tables.hhea.data[11]=255}if(tables.post){var valid=readPostScriptTable(tables.post,properties,numGlyphs);if(!valid)tables.post=null}var charCodeToGlyphId=[],charCode;if(properties.type==="CIDFontType2"){var cidToGidMap=properties.cidToGidMap|| +[];var cidToGidMapLength=cidToGidMap.length;properties.cMap.forEach(function(charCode,cid){assert(cid<=65535,"Max size of CID is 65,535");var glyphId=-1;if(cidToGidMapLength===0)glyphId=charCode;else if(cidToGidMap[cid]!==undefined)glyphId=cidToGidMap[cid];if(glyphId>=0&&glyphId<numGlyphs)charCodeToGlyphId[charCode]=glyphId});if(dupFirstEntry)charCodeToGlyphId[0]=numGlyphs-1}else{var cmapTable=readCmapTable(tables.cmap,font,this.isSymbolicFont);var cmapPlatformId=cmapTable.platformId;var cmapEncodingId= +cmapTable.encodingId;var cmapMappings=cmapTable.mappings;var cmapMappingsLength=cmapMappings.length;var hasEncoding=properties.differences.length||!!properties.baseEncodingName;if(hasEncoding&&(cmapPlatformId===3&&cmapEncodingId===1||cmapPlatformId===1&&cmapEncodingId===0)||cmapPlatformId===-1&&cmapEncodingId===-1&&!!Encodings[properties.baseEncodingName]){var baseEncoding=[];if(properties.baseEncodingName==="MacRomanEncoding"||properties.baseEncodingName==="WinAnsiEncoding")baseEncoding=Encodings[properties.baseEncodingName]; +for(charCode=0;charCode<256;charCode++){var glyphName;if(this.differences&&charCode in this.differences)glyphName=this.differences[charCode];else if(charCode in baseEncoding&&baseEncoding[charCode]!=="")glyphName=baseEncoding[charCode];else glyphName=Encodings.StandardEncoding[charCode];if(!glyphName)continue;var unicodeOrCharCode;if(cmapPlatformId===3&&cmapEncodingId===1)unicodeOrCharCode=GlyphsUnicode[glyphName];else if(cmapPlatformId===1&&cmapEncodingId===0)unicodeOrCharCode=Encodings.MacRomanEncoding.indexOf(glyphName); +var found=false;for(i=0;i<cmapMappingsLength;++i)if(cmapMappings[i].charCode===unicodeOrCharCode){charCodeToGlyphId[charCode]=cmapMappings[i].glyphId;found=true;break}if(!found&&properties.glyphNames){var glyphId=properties.glyphNames.indexOf(glyphName);if(glyphId>0)charCodeToGlyphId[charCode]=glyphId}}}else for(i=0;i<cmapMappingsLength;++i){charCode=cmapMappings[i].charCode&255;charCodeToGlyphId[charCode]=cmapMappings[i].glyphId}}if(charCodeToGlyphId.length===0)charCodeToGlyphId[0]=0;var newMapping= +adjustMapping(charCodeToGlyphId,properties);this.toFontChar=newMapping.toFontChar;tables.cmap={tag:"cmap",data:createCmapTable(newMapping.charCodeToGlyphId)};if(!tables["OS/2"]||!validateOS2Table(tables["OS/2"])){var override={unitsPerEm:int16(tables.head.data[18],tables.head.data[19]),yMax:int16(tables.head.data[42],tables.head.data[43]),yMin:int16(tables.head.data[38],tables.head.data[39])-65536,ascent:int16(tables.hhea.data[4],tables.hhea.data[5]),descent:int16(tables.hhea.data[6],tables.hhea.data[7])- +65536};tables["OS/2"]={tag:"OS/2",data:createOS2Table(properties,newMapping.charCodeToGlyphId,override)}}if(!tables.post)tables.post={tag:"post",data:createPostTable(properties)};if(!isTrueType)try{cffFile=new Stream(tables["CFF "].data);var parser=new CFFParser(cffFile,properties);cff=parser.parse();var compiler=new CFFCompiler(cff);tables["CFF "].data=compiler.compile()}catch(e){warn("Failed to compile font "+properties.loadedName)}if(!tables.name)tables.name={tag:"name",data:createNameTable(this.name)}; +else{var namePrototype=readNameTable(tables.name);tables.name.data=createNameTable(name,namePrototype)}var builder=new OpenTypeFileBuilder(header.version);for(var tableTag in tables)builder.addTable(tableTag,tables[tableTag].data);return builder.toArray()},convert:function Font_convert(fontName,font,properties){properties.fixedPitch=false;var mapping=font.getGlyphMapping(properties);var newMapping=adjustMapping(mapping,properties);this.toFontChar=newMapping.toFontChar;var numGlyphs=font.numGlyphs; +function getCharCodes(charCodeToGlyphId,glyphId){var charCodes=null;for(var charCode in charCodeToGlyphId)if(glyphId===charCodeToGlyphId[charCode]){if(!charCodes)charCodes=[];charCodes.push(charCode|0)}return charCodes}function createCharCode(charCodeToGlyphId,glyphId){for(var charCode in charCodeToGlyphId)if(glyphId===charCodeToGlyphId[charCode])return charCode|0;newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode]=glyphId;return newMapping.nextAvailableFontCharCode++}var seacs=font.seacs; +if(SEAC_ANALYSIS_ENABLED&&seacs&&seacs.length){var matrix=properties.fontMatrix||FONT_IDENTITY_MATRIX;var charset=font.getCharset();var seacMap=Object.create(null);for(var glyphId in seacs){glyphId|=0;var seac=seacs[glyphId];var baseGlyphName=Encodings.StandardEncoding[seac[2]];var accentGlyphName=Encodings.StandardEncoding[seac[3]];var baseGlyphId=charset.indexOf(baseGlyphName);var accentGlyphId=charset.indexOf(accentGlyphName);if(baseGlyphId<0||accentGlyphId<0)continue;var accentOffset={x:seac[0]* +matrix[0]+seac[1]*matrix[2]+matrix[4],y:seac[0]*matrix[1]+seac[1]*matrix[3]+matrix[5]};var charCodes=getCharCodes(mapping,glyphId);if(!charCodes)continue;for(var i=0,ii=charCodes.length;i<ii;i++){var charCode=charCodes[i];var charCodeToGlyphId=newMapping.charCodeToGlyphId;var baseFontCharCode=createCharCode(charCodeToGlyphId,baseGlyphId);var accentFontCharCode=createCharCode(charCodeToGlyphId,accentGlyphId);seacMap[charCode]={baseFontCharCode:baseFontCharCode,accentFontCharCode:accentFontCharCode, +accentOffset:accentOffset}}}properties.seacMap=seacMap}var unitsPerEm=1/(properties.fontMatrix||FONT_IDENTITY_MATRIX)[0];var builder=new OpenTypeFileBuilder("OTTO");builder.addTable("CFF ",font.data);builder.addTable("OS/2",createOS2Table(properties,newMapping.charCodeToGlyphId));builder.addTable("cmap",createCmapTable(newMapping.charCodeToGlyphId));builder.addTable("head","\x00\u0001\x00\x00"+"\x00\x00\u0010\x00"+"\x00\x00\x00\x00"+"_\u000f<\u00f5"+"\x00\x00"+safeString16(unitsPerEm)+"\x00\x00\x00\x00\u009e\x0B~'"+ +"\x00\x00\x00\x00\u009e\x0B~'"+"\x00\x00"+safeString16(properties.descent)+"\u000f\u00ff"+safeString16(properties.ascent)+string16(properties.italicAngle?2:0)+"\x00\u0011"+"\x00\x00"+"\x00\x00"+"\x00\x00");builder.addTable("hhea","\x00\u0001\x00\x00"+safeString16(properties.ascent)+safeString16(properties.descent)+"\x00\x00"+"\u00ff\u00ff"+"\x00\x00"+"\x00\x00"+"\x00\x00"+safeString16(properties.capHeight)+safeString16(Math.tan(properties.italicAngle)*properties.xHeight)+"\x00\x00"+"\x00\x00"+"\x00\x00"+ +"\x00\x00"+"\x00\x00"+"\x00\x00"+string16(numGlyphs));builder.addTable("hmtx",function fontFieldsHmtx(){var charstrings=font.charstrings;var cffWidths=font.cff?font.cff.widths:null;var hmtx="\x00\x00\x00\x00";for(var i=1,ii=numGlyphs;i<ii;i++){var width=0;if(charstrings){var charstring=charstrings[i-1];width="width"in charstring?charstring.width:0}else if(cffWidths)width=Math.ceil(cffWidths[i]||0);hmtx+=string16(width)+string16(0)}return hmtx}());builder.addTable("maxp","\x00\x00P\x00"+string16(numGlyphs)); +builder.addTable("name",createNameTable(fontName));builder.addTable("post",createPostTable(properties));return builder.toArray()},buildToUnicode:function Font_buildToUnicode(properties){if(properties.toUnicode&&properties.toUnicode.length!==0)return properties.toUnicode;var toUnicode,charcode;if(!properties.composite){toUnicode=[];var encoding=properties.defaultEncoding.slice();var baseEncodingName=properties.baseEncodingName;var differences=properties.differences;for(charcode in differences)encoding[charcode]= +differences[charcode];for(charcode in encoding){var glyphName=encoding[charcode];if(glyphName==="")continue;else if(GlyphsUnicode[glyphName]===undefined){var code=0;switch(glyphName[0]){case "G":if(glyphName.length===3)code=parseInt(glyphName.substr(1),16);break;case "g":if(glyphName.length===5)code=parseInt(glyphName.substr(1),16);break;case "C":case "c":if(glyphName.length>=3)code=+glyphName.substr(1);break}if(code){if(baseEncodingName&&code===+charcode){var baseEncoding=Encodings[baseEncodingName]; +if(baseEncoding&&(glyphName=baseEncoding[charcode])){toUnicode[charcode]=String.fromCharCode(GlyphsUnicode[glyphName]);continue}}toUnicode[charcode]=String.fromCharCode(code)}continue}toUnicode[charcode]=String.fromCharCode(GlyphsUnicode[glyphName])}return new ToUnicodeMap(toUnicode)}if(properties.composite&&(properties.cMap.builtInCMap&&!(properties.cMap instanceof IdentityCMap)||properties.cidSystemInfo.registry==="Adobe"&&(properties.cidSystemInfo.ordering==="GB1"||properties.cidSystemInfo.ordering=== +"CNS1"||properties.cidSystemInfo.ordering==="Japan1"||properties.cidSystemInfo.ordering==="Korea1"))){var registry=properties.cidSystemInfo.registry;var ordering=properties.cidSystemInfo.ordering;var ucs2CMapName=new Name(registry+"-"+ordering+"-UCS2");var ucs2CMap=CMapFactory.create(ucs2CMapName,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null);var cMap=properties.cMap;toUnicode=[];cMap.forEach(function(charcode,cid){assert(cid<=65535,"Max size of CID is 65,535");var ucs2=ucs2CMap.lookup(cid);if(ucs2)toUnicode[charcode]= +String.fromCharCode((ucs2.charCodeAt(0)<<8)+ucs2.charCodeAt(1))});return new ToUnicodeMap(toUnicode)}return new IdentityToUnicodeMap(properties.firstChar,properties.lastChar)},get spaceWidth(){if("_shadowWidth"in this)return this._shadowWidth;var possibleSpaceReplacements=["space","minus","one","i"];var width;for(var i=0,ii=possibleSpaceReplacements.length;i<ii;i++){var glyphName=possibleSpaceReplacements[i];if(glyphName in this.widths){width=this.widths[glyphName];break}var glyphUnicode=GlyphsUnicode[glyphName]; +var charcode=0;if(this.composite)if(this.cMap.contains(glyphUnicode))charcode=this.cMap.lookup(glyphUnicode);if(!charcode&&"toUnicode"in this)charcode=this.toUnicode.charCodeOf(glyphUnicode);if(charcode<=0)charcode=glyphUnicode;width=this.widths[charcode];if(width)break}width=width||this.defaultWidth;this._shadowWidth=width;return width},charToGlyph:function Font_charToGlyph(charcode){var fontCharCode,width,operatorListId;var widthCode=charcode;if(this.cMap&&this.cMap.contains(charcode))widthCode= +this.cMap.lookup(charcode);width=this.widths[widthCode];width=isNum(width)?width:this.defaultWidth;var vmetric=this.vmetrics&&this.vmetrics[widthCode];var unicode=this.toUnicode.get(charcode)||charcode;if(typeof unicode==="number")unicode=String.fromCharCode(unicode);fontCharCode=this.toFontChar[charcode]||charcode;if(this.missingFile)fontCharCode=mapSpecialUnicodeValues(fontCharCode);if(this.isType3Font)operatorListId=fontCharCode;var accent=null;if(this.seacMap&&this.seacMap[charcode]){var seac= +this.seacMap[charcode];fontCharCode=seac.baseFontCharCode;accent={fontChar:String.fromCharCode(seac.accentFontCharCode),offset:seac.accentOffset}}var fontChar=String.fromCharCode(fontCharCode);var glyph=this.glyphCache[charcode];if(!glyph||!glyph.matchesForCache(fontChar,unicode,accent,width,vmetric,operatorListId)){glyph=new Glyph(fontChar,unicode,accent,width,vmetric,operatorListId);this.glyphCache[charcode]=glyph}return glyph},charsToGlyphs:function Font_charsToGlyphs(chars){var charsCache=this.charsCache; +var glyphs,glyph,charcode;if(charsCache){glyphs=charsCache[chars];if(glyphs)return glyphs}if(!charsCache)charsCache=this.charsCache=Object.create(null);glyphs=[];var charsCacheKey=chars;var i=0,ii;if(this.cMap){var c={};while(i<chars.length){this.cMap.readCharCode(chars,i,c);charcode=c.charcode;var length=c.length;i+=length;glyph=this.charToGlyph(charcode);glyphs.push(glyph);if(length===1&&chars.charCodeAt(i-1)===32)glyphs.push(null)}}else for(i=0,ii=chars.length;i<ii;++i){charcode=chars.charCodeAt(i); +glyph=this.charToGlyph(charcode);glyphs.push(glyph);if(charcode===32)glyphs.push(null)}return charsCache[charsCacheKey]=glyphs}};return Font}();var ErrorFont=function ErrorFontClosure(){function ErrorFont(error){this.error=error;this.loadedName="g_font_error";this.loading=false}ErrorFont.prototype={charsToGlyphs:function ErrorFont_charsToGlyphs(){return[]},exportData:function ErrorFont_exportData(){return{error:this.error}}};return ErrorFont}();function type1FontGlyphMapping(properties,builtInEncoding, +glyphNames){var charCodeToGlyphId=Object.create(null);var glyphId,charCode,baseEncoding;if(properties.baseEncodingName){baseEncoding=Encodings[properties.baseEncodingName];for(charCode=0;charCode<baseEncoding.length;charCode++){glyphId=glyphNames.indexOf(baseEncoding[charCode]);if(glyphId>=0)charCodeToGlyphId[charCode]=glyphId}}else if(!!(properties.flags&FontFlags.Symbolic))for(charCode in builtInEncoding)charCodeToGlyphId[charCode]=builtInEncoding[charCode];else{baseEncoding=Encodings.StandardEncoding; +for(charCode=0;charCode<baseEncoding.length;charCode++){glyphId=glyphNames.indexOf(baseEncoding[charCode]);if(glyphId>=0)charCodeToGlyphId[charCode]=glyphId}}var differences=properties.differences;if(differences)for(charCode in differences){var glyphName=differences[charCode];glyphId=glyphNames.indexOf(glyphName);if(glyphId>=0)charCodeToGlyphId[charCode]=glyphId}return charCodeToGlyphId}var Type1CharString=function Type1CharStringClosure(){var COMMAND_MAP={"hstem":[1],"vstem":[3],"vmoveto":[4],"rlineto":[5], +"hlineto":[6],"vlineto":[7],"rrcurveto":[8],"callsubr":[10],"flex":[12,35],"drop":[12,18],"endchar":[14],"rmoveto":[21],"hmoveto":[22],"vhcurveto":[30],"hvcurveto":[31]};function Type1CharString(){this.width=0;this.lsb=0;this.flexing=false;this.output=[];this.stack=[]}Type1CharString.prototype={convert:function Type1CharString_convert(encoded,subrs){var count=encoded.length;var error=false;var wx,sbx,subrNumber;for(var i=0;i<count;i++){var value=encoded[i];if(value<32){if(value===12)value=(value<< +8)+encoded[++i];switch(value){case 1:if(!HINTING_ENABLED){this.stack=[];break}error=this.executeCommand(2,COMMAND_MAP.hstem);break;case 3:if(!HINTING_ENABLED){this.stack=[];break}error=this.executeCommand(2,COMMAND_MAP.vstem);break;case 4:if(this.flexing){if(this.stack.length<1){error=true;break}var dy=this.stack.pop();this.stack.push(0,dy);break}error=this.executeCommand(1,COMMAND_MAP.vmoveto);break;case 5:error=this.executeCommand(2,COMMAND_MAP.rlineto);break;case 6:error=this.executeCommand(1, +COMMAND_MAP.hlineto);break;case 7:error=this.executeCommand(1,COMMAND_MAP.vlineto);break;case 8:error=this.executeCommand(6,COMMAND_MAP.rrcurveto);break;case 9:this.stack=[];break;case 10:if(this.stack.length<1){error=true;break}subrNumber=this.stack.pop();error=this.convert(subrs[subrNumber],subrs);break;case 11:return error;case 13:if(this.stack.length<2){error=true;break}wx=this.stack.pop();sbx=this.stack.pop();this.lsb=sbx;this.width=wx;this.stack.push(wx,sbx);error=this.executeCommand(2,COMMAND_MAP.hmoveto); +break;case 14:this.output.push(COMMAND_MAP.endchar[0]);break;case 21:if(this.flexing)break;error=this.executeCommand(2,COMMAND_MAP.rmoveto);break;case 22:if(this.flexing){this.stack.push(0);break}error=this.executeCommand(1,COMMAND_MAP.hmoveto);break;case 30:error=this.executeCommand(4,COMMAND_MAP.vhcurveto);break;case 31:error=this.executeCommand(4,COMMAND_MAP.hvcurveto);break;case (12<<8)+0:this.stack=[];break;case (12<<8)+1:if(!HINTING_ENABLED){this.stack=[];break}error=this.executeCommand(2,COMMAND_MAP.vstem); +break;case (12<<8)+2:if(!HINTING_ENABLED){this.stack=[];break}error=this.executeCommand(2,COMMAND_MAP.hstem);break;case (12<<8)+6:if(SEAC_ANALYSIS_ENABLED){this.seac=this.stack.splice(-4,4);error=this.executeCommand(0,COMMAND_MAP.endchar)}else error=this.executeCommand(4,COMMAND_MAP.endchar);break;case (12<<8)+7:if(this.stack.length<4){error=true;break}var wy=this.stack.pop();wx=this.stack.pop();var sby=this.stack.pop();sbx=this.stack.pop();this.lsb=sbx;this.width=wx;this.stack.push(wx,sbx,sby);error= +this.executeCommand(3,COMMAND_MAP.rmoveto);break;case (12<<8)+12:if(this.stack.length<2){error=true;break}var num2=this.stack.pop();var num1=this.stack.pop();this.stack.push(num1/num2);break;case (12<<8)+16:if(this.stack.length<2){error=true;break}subrNumber=this.stack.pop();var numArgs=this.stack.pop();if(subrNumber===0&&numArgs===3){var flexArgs=this.stack.splice(this.stack.length-17,17);this.stack.push(flexArgs[2]+flexArgs[0],flexArgs[3]+flexArgs[1],flexArgs[4],flexArgs[5],flexArgs[6],flexArgs[7], +flexArgs[8],flexArgs[9],flexArgs[10],flexArgs[11],flexArgs[12],flexArgs[13],flexArgs[14]);error=this.executeCommand(13,COMMAND_MAP.flex,true);this.flexing=false;this.stack.push(flexArgs[15],flexArgs[16])}else if(subrNumber===1&&numArgs===0)this.flexing=true;break;case (12<<8)+17:break;case (12<<8)+33:this.stack=[];break;default:warn('Unknown type 1 charstring command of "'+value+'"');break}if(error)break;continue}else if(value<=246)value=value-139;else if(value<=250)value=(value-247)*256+encoded[++i]+ +108;else if(value<=254)value=-((value-251)*256)-encoded[++i]-108;else value=(encoded[++i]&255)<<24|(encoded[++i]&255)<<16|(encoded[++i]&255)<<8|(encoded[++i]&255)<<0;this.stack.push(value)}return error},executeCommand:function(howManyArgs,command,keepStack){var stackLength=this.stack.length;if(howManyArgs>stackLength)return true;var start=stackLength-howManyArgs;for(var i=start;i<stackLength;i++){var value=this.stack[i];if(value===(value|0))this.output.push(28,value>>8&255,value&255);else{value=65536* +value|0;this.output.push(255,value>>24&255,value>>16&255,value>>8&255,value&255)}}this.output.push.apply(this.output,command);if(keepStack)this.stack.splice(start,howManyArgs);else this.stack.length=0;return false}};return Type1CharString}();var Type1Parser=function Type1ParserClosure(){var EEXEC_ENCRYPT_KEY=55665;var CHAR_STRS_ENCRYPT_KEY=4330;function isHexDigit(code){return code>=48&&code<=57||code>=65&&code<=70||code>=97&&code<=102}function decrypt(data,key,discardNumber){var r=key|0,c1=52845, +c2=22719;var count=data.length;var decrypted=new Uint8Array(count);for(var i=0;i<count;i++){var value=data[i];decrypted[i]=value^r>>8;r=(value+r)*c1+c2&(1<<16)-1}return Array.prototype.slice.call(decrypted,discardNumber)}function decryptAscii(data,key,discardNumber){var r=key|0,c1=52845,c2=22719;var count=data.length,maybeLength=count>>>1;var decrypted=new Uint8Array(maybeLength);var i,j;for(i=0,j=0;i<count;i++){var digit1=data[i];if(!isHexDigit(digit1))continue;i++;var digit2;while(i<count&&!isHexDigit(digit2= +data[i]))i++;if(i<count){var value=parseInt(String.fromCharCode(digit1,digit2),16);decrypted[j++]=value^r>>8;r=(value+r)*c1+c2&(1<<16)-1}}return Array.prototype.slice.call(decrypted,discardNumber,j)}function isSpecial(c){return c===47||c===91||c===93||c===123||c===125||c===40||c===41}function Type1Parser(stream,encrypted){if(encrypted){var data=stream.getBytes();var isBinary=!(isHexDigit(data[0])&&isHexDigit(data[1])&&isHexDigit(data[2])&&isHexDigit(data[3]));stream=new Stream(isBinary?decrypt(data, +EEXEC_ENCRYPT_KEY,4):decryptAscii(data,EEXEC_ENCRYPT_KEY,4))}this.stream=stream;this.nextChar()}Type1Parser.prototype={readNumberArray:function Type1Parser_readNumberArray(){this.getToken();var array=[];while(true){var token=this.getToken();if(token===null||token==="]"||token==="}")break;array.push(parseFloat(token||0))}return array},readNumber:function Type1Parser_readNumber(){var token=this.getToken();return parseFloat(token||0)},readInt:function Type1Parser_readInt(){var token=this.getToken(); +return parseInt(token||0,10)|0},readBoolean:function Type1Parser_readBoolean(){var token=this.getToken();return token==="true"?1:0},nextChar:function Type1_nextChar(){return this.currentChar=this.stream.getByte()},getToken:function Type1Parser_getToken(){var comment=false;var ch=this.currentChar;while(true){if(ch===-1)return null;if(comment){if(ch===10||ch===13)comment=false}else if(ch===37)comment=true;else if(!Lexer.isSpace(ch))break;ch=this.nextChar()}if(isSpecial(ch)){this.nextChar();return String.fromCharCode(ch)}var token= +"";do{token+=String.fromCharCode(ch);ch=this.nextChar()}while(ch>=0&&!Lexer.isSpace(ch)&&!isSpecial(ch));return token},extractFontProgram:function Type1Parser_extractFontProgram(){var stream=this.stream;var subrs=[],charstrings=[];var program={subrs:[],charstrings:[],properties:{"privateData":{"lenIV":4}}};var token,length,data,lenIV,encoded;while((token=this.getToken())!==null){if(token!=="/")continue;token=this.getToken();switch(token){case "CharStrings":this.getToken();this.getToken();this.getToken(); +this.getToken();while(true){token=this.getToken();if(token===null||token==="end")break;if(token!=="/")continue;var glyph=this.getToken();length=this.readInt();this.getToken();data=stream.makeSubStream(stream.pos,length);lenIV=program.properties.privateData["lenIV"];encoded=decrypt(data.getBytes(),CHAR_STRS_ENCRYPT_KEY,lenIV);stream.skip(length);this.nextChar();token=this.getToken();if(token==="noaccess")this.getToken();charstrings.push({glyph:glyph,encoded:encoded})}break;case "Subrs":var num=this.readInt(); +this.getToken();while((token=this.getToken())==="dup"){var index=this.readInt();length=this.readInt();this.getToken();data=stream.makeSubStream(stream.pos,length);lenIV=program.properties.privateData["lenIV"];encoded=decrypt(data.getBytes(),CHAR_STRS_ENCRYPT_KEY,lenIV);stream.skip(length);this.nextChar();token=this.getToken();if(token==="noaccess")this.getToken();subrs[index]=encoded}break;case "BlueValues":case "OtherBlues":case "FamilyBlues":case "FamilyOtherBlues":var blueArray=this.readNumberArray(); +if(blueArray.length>0&&blueArray.length%2===0&&HINTING_ENABLED)program.properties.privateData[token]=blueArray;break;case "StemSnapH":case "StemSnapV":program.properties.privateData[token]=this.readNumberArray();break;case "StdHW":case "StdVW":program.properties.privateData[token]=this.readNumberArray()[0];break;case "BlueShift":case "lenIV":case "BlueFuzz":case "BlueScale":case "LanguageGroup":case "ExpansionFactor":program.properties.privateData[token]=this.readNumber();break;case "ForceBold":program.properties.privateData[token]= +this.readBoolean();break}}for(var i=0;i<charstrings.length;i++){glyph=charstrings[i].glyph;encoded=charstrings[i].encoded;var charString=new Type1CharString;var error=charString.convert(encoded,subrs);var output=charString.output;if(error)output=[14];program.charstrings.push({glyphName:glyph,charstring:output,width:charString.width,lsb:charString.lsb,seac:charString.seac})}return program},extractFontHeader:function Type1Parser_extractFontHeader(properties){var token;while((token=this.getToken())!== +null){if(token!=="/")continue;token=this.getToken();switch(token){case "FontMatrix":var matrix=this.readNumberArray();properties.fontMatrix=matrix;break;case "Encoding":var encodingArg=this.getToken();var encoding;if(!/^\d+$/.test(encodingArg))encoding=Encodings[encodingArg];else{encoding=[];var size=parseInt(encodingArg,10)|0;this.getToken();for(var j=0;j<size;j++){token=this.getToken();while(token!=="dup"&&token!=="def"){token=this.getToken();if(token===null)return}if(token==="def")break;var index= +this.readInt();this.getToken();var glyph=this.getToken();encoding[index]=glyph;this.getToken()}}properties.builtInEncoding=encoding;break;case "FontBBox":var fontBBox=this.readNumberArray();properties.ascent=fontBBox[3];properties.descent=fontBBox[1];properties.ascentScaled=true;break}}}};return Type1Parser}();var CFFStandardStrings=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash", +"zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction", +"yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi", +"lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute", +"Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior", +"twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior", +"Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall", +"Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall", +"Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"]; +var Type1Font=function Type1Font(name,file,properties){var PFB_HEADER_SIZE=6;var headerBlockLength=properties.length1;var eexecBlockLength=properties.length2;var pfbHeader=file.peekBytes(PFB_HEADER_SIZE);var pfbHeaderPresent=pfbHeader[0]===128&&pfbHeader[1]===1;if(pfbHeaderPresent){file.skip(PFB_HEADER_SIZE);headerBlockLength=pfbHeader[5]<<24|pfbHeader[4]<<16|pfbHeader[3]<<8|pfbHeader[2]}var headerBlock=new Stream(file.getBytes(headerBlockLength));var headerBlockParser=new Type1Parser(headerBlock); +headerBlockParser.extractFontHeader(properties);if(pfbHeaderPresent){pfbHeader=file.getBytes(PFB_HEADER_SIZE);eexecBlockLength=pfbHeader[5]<<24|pfbHeader[4]<<16|pfbHeader[3]<<8|pfbHeader[2]}var eexecBlock=new Stream(file.getBytes(eexecBlockLength));var eexecBlockParser=new Type1Parser(eexecBlock,true);var data=eexecBlockParser.extractFontProgram();for(var info in data.properties)properties[info]=data.properties[info];var charstrings=data.charstrings;var type2Charstrings=this.getType2Charstrings(charstrings); +var subrs=this.getType2Subrs(data.subrs);this.charstrings=charstrings;this.data=this.wrap(name,type2Charstrings,this.charstrings,subrs,properties);this.seacs=this.getSeacs(data.charstrings)};Type1Font.prototype={get numGlyphs(){return this.charstrings.length+1},getCharset:function Type1Font_getCharset(){var charset=[".notdef"];var charstrings=this.charstrings;for(var glyphId=0;glyphId<charstrings.length;glyphId++)charset.push(charstrings[glyphId].glyphName);return charset},getGlyphMapping:function Type1Font_getGlyphMapping(properties){var charstrings= +this.charstrings;var glyphNames=[".notdef"],glyphId;for(glyphId=0;glyphId<charstrings.length;glyphId++)glyphNames.push(charstrings[glyphId].glyphName);var encoding=properties.builtInEncoding;if(encoding){var builtInEncoding={};for(var charCode in encoding){glyphId=glyphNames.indexOf(encoding[charCode]);if(glyphId>=0)builtInEncoding[charCode]=glyphId}}return type1FontGlyphMapping(properties,builtInEncoding,glyphNames)},getSeacs:function Type1Font_getSeacs(charstrings){var i,ii;var seacMap=[];for(i= +0,ii=charstrings.length;i<ii;i++){var charstring=charstrings[i];if(charstring.seac)seacMap[i+1]=charstring.seac}return seacMap},getType2Charstrings:function Type1Font_getType2Charstrings(type1Charstrings){var type2Charstrings=[];for(var i=0,ii=type1Charstrings.length;i<ii;i++)type2Charstrings.push(type1Charstrings[i].charstring);return type2Charstrings},getType2Subrs:function Type1Font_getType2Subrs(type1Subrs){var bias=0;var count=type1Subrs.length;if(count<1133)bias=107;else if(count<33769)bias= +1131;else bias=32768;var type2Subrs=[];var i;for(i=0;i<bias;i++)type2Subrs.push([11]);for(i=0;i<count;i++)type2Subrs.push(type1Subrs[i]);return type2Subrs},wrap:function Type1Font_wrap(name,glyphs,charstrings,subrs,properties){var cff=new CFF;cff.header=new CFFHeader(1,0,4,4);cff.names=[name];var topDict=new CFFTopDict;topDict.setByName("version",391);topDict.setByName("Notice",392);topDict.setByName("FullName",393);topDict.setByName("FamilyName",394);topDict.setByName("Weight",395);topDict.setByName("Encoding", +null);topDict.setByName("FontMatrix",properties.fontMatrix);topDict.setByName("FontBBox",properties.bbox);topDict.setByName("charset",null);topDict.setByName("CharStrings",null);topDict.setByName("Private",null);cff.topDict=topDict;var strings=new CFFStrings;strings.add("Version 0.11");strings.add("See original notice");strings.add(name);strings.add(name);strings.add("Medium");cff.strings=strings;cff.globalSubrIndex=new CFFIndex;var count=glyphs.length;var charsetArray=[0];var i,ii;for(i=0;i<count;i++){var index= +CFFStandardStrings.indexOf(charstrings[i].glyphName);if(index===-1)index=0;charsetArray.push(index>>8&255,index&255)}cff.charset=new CFFCharset(false,0,[],charsetArray);var charStringsIndex=new CFFIndex;charStringsIndex.add([139,14]);for(i=0;i<count;i++)charStringsIndex.add(glyphs[i]);cff.charStrings=charStringsIndex;var privateDict=new CFFPrivateDict;privateDict.setByName("Subrs",null);var fields=["BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StemSnapH","StemSnapV","BlueShift","BlueFuzz", +"BlueScale","LanguageGroup","ExpansionFactor","ForceBold","StdHW","StdVW"];for(i=0,ii=fields.length;i<ii;i++){var field=fields[i];if(!properties.privateData.hasOwnProperty(field))continue;var value=properties.privateData[field];if(isArray(value))for(var j=value.length-1;j>0;j--)value[j]-=value[j-1];privateDict.setByName(field,value)}cff.topDict.privateDict=privateDict;var subrIndex=new CFFIndex;for(i=0,ii=subrs.length;i<ii;i++)subrIndex.add(subrs[i]);privateDict.subrsIndex=subrIndex;var compiler= +new CFFCompiler(cff);return compiler.compile()}};var CFFFont=function CFFFontClosure(){function CFFFont(file,properties){this.properties=properties;var parser=new CFFParser(file,properties);this.cff=parser.parse();var compiler=new CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=compiler.compile()}catch(e){warn("Failed to compile font "+properties.loadedName);this.data=file}}CFFFont.prototype={get numGlyphs(){return this.cff.charStrings.count},getCharset:function CFFFont_getCharset(){return this.cff.charset.charset}, +getGlyphMapping:function CFFFont_getGlyphMapping(){var cff=this.cff;var properties=this.properties;var charsets=cff.charset.charset;var charCodeToGlyphId;var glyphId;if(properties.composite){charCodeToGlyphId=Object.create(null);if(cff.isCIDFont)for(glyphId=0;glyphId<charsets.length;glyphId++){var cid=charsets[glyphId];var charCode=properties.cMap.charCodeOf(cid);charCodeToGlyphId[charCode]=glyphId}else for(glyphId=0;glyphId<cff.charStrings.count;glyphId++)charCodeToGlyphId[glyphId]=glyphId;return charCodeToGlyphId}var encoding= +cff.encoding?cff.encoding.encoding:null;charCodeToGlyphId=type1FontGlyphMapping(properties,encoding,charsets);return charCodeToGlyphId}};return CFFFont}();var CFFParser=function CFFParserClosure(){var CharstringValidationData=[null,{id:"hstem",min:2,stackClearing:true,stem:true},null,{id:"vstem",min:2,stackClearing:true,stem:true},{id:"vmoveto",min:1,stackClearing:true},{id:"rlineto",min:2,resetStack:true},{id:"hlineto",min:1,resetStack:true},{id:"vlineto",min:1,resetStack:true},{id:"rrcurveto",min:6, +resetStack:true},null,{id:"callsubr",min:1,undefStack:true},{id:"return",min:0,undefStack:true},null,null,{id:"endchar",min:0,stackClearing:true},null,null,null,{id:"hstemhm",min:2,stackClearing:true,stem:true},{id:"hintmask",min:0,stackClearing:true},{id:"cntrmask",min:0,stackClearing:true},{id:"rmoveto",min:2,stackClearing:true},{id:"hmoveto",min:1,stackClearing:true},{id:"vstemhm",min:2,stackClearing:true,stem:true},{id:"rcurveline",min:8,resetStack:true},{id:"rlinecurve",min:8,resetStack:true}, +{id:"vvcurveto",min:4,resetStack:true},{id:"hhcurveto",min:4,resetStack:true},null,{id:"callgsubr",min:1,undefStack:true},{id:"vhcurveto",min:4,resetStack:true},{id:"hvcurveto",min:4,resetStack:true}];var CharstringValidationData12=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn:function stack_div(stack,index){stack[index-2]=stack[index-2]+stack[index-1]}}, +{id:"sub",min:2,stackDelta:-1,stackFn:function stack_div(stack,index){stack[index-2]=stack[index-2]-stack[index-1]}},{id:"div",min:2,stackDelta:-1,stackFn:function stack_div(stack,index){stack[index-2]=stack[index-2]/stack[index-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn:function stack_div(stack,index){stack[index-1]=-stack[index-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3}, +{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn:function stack_div(stack,index){stack[index-2]=stack[index-2]*stack[index-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:true},{id:"flex",min:13,resetStack:true},{id:"hflex1",min:9,resetStack:true},{id:"flex1",min:11,resetStack:true}];function CFFParser(file,properties){this.bytes= +file.getBytes();this.properties=properties}CFFParser.prototype={parse:function CFFParser_parse(){var properties=this.properties;var cff=new CFF;this.cff=cff;var header=this.parseHeader();var nameIndex=this.parseIndex(header.endPos);var topDictIndex=this.parseIndex(nameIndex.endPos);var stringIndex=this.parseIndex(topDictIndex.endPos);var globalSubrIndex=this.parseIndex(stringIndex.endPos);var topDictParsed=this.parseDict(topDictIndex.obj.get(0));var topDict=this.createDict(CFFTopDict,topDictParsed, +cff.strings);cff.header=header.obj;cff.names=this.parseNameIndex(nameIndex.obj);cff.strings=this.parseStringIndex(stringIndex.obj);cff.topDict=topDict;cff.globalSubrIndex=globalSubrIndex.obj;this.parsePrivateDict(cff.topDict);cff.isCIDFont=topDict.hasName("ROS");var charStringOffset=topDict.getByName("CharStrings");var charStringsAndSeacs=this.parseCharStrings(charStringOffset);cff.charStrings=charStringsAndSeacs.charStrings;cff.seacs=charStringsAndSeacs.seacs;cff.widths=charStringsAndSeacs.widths; +var fontMatrix=topDict.getByName("FontMatrix");if(fontMatrix)properties.fontMatrix=fontMatrix;var fontBBox=topDict.getByName("FontBBox");if(fontBBox){properties.ascent=fontBBox[3];properties.descent=fontBBox[1];properties.ascentScaled=true}var charset,encoding;if(cff.isCIDFont){var fdArrayIndex=this.parseIndex(topDict.getByName("FDArray")).obj;for(var i=0,ii=fdArrayIndex.count;i<ii;++i){var dictRaw=fdArrayIndex.get(i);var fontDict=this.createDict(CFFTopDict,this.parseDict(dictRaw),cff.strings);this.parsePrivateDict(fontDict); +cff.fdArray.push(fontDict)}encoding=null;charset=this.parseCharsets(topDict.getByName("charset"),cff.charStrings.count,cff.strings,true);cff.fdSelect=this.parseFDSelect(topDict.getByName("FDSelect"),cff.charStrings.count)}else{charset=this.parseCharsets(topDict.getByName("charset"),cff.charStrings.count,cff.strings,false);encoding=this.parseEncoding(topDict.getByName("Encoding"),properties,cff.strings,charset.charset)}cff.charset=charset;cff.encoding=encoding;return cff},parseHeader:function CFFParser_parseHeader(){var bytes= +this.bytes;var bytesLength=bytes.length;var offset=0;while(offset<bytesLength&&bytes[offset]!==1)++offset;if(offset>=bytesLength)error("Invalid CFF header");else if(offset!==0){info("cff data is shifted");bytes=bytes.subarray(offset);this.bytes=bytes}var major=bytes[0];var minor=bytes[1];var hdrSize=bytes[2];var offSize=bytes[3];var header=new CFFHeader(major,minor,hdrSize,offSize);return{obj:header,endPos:hdrSize}},parseDict:function CFFParser_parseDict(dict){var pos=0;function parseOperand(){var value= +dict[pos++];if(value===30)return parseFloatOperand(pos);else if(value===28){value=dict[pos++];value=(value<<24|dict[pos++]<<16)>>16;return value}else if(value===29){value=dict[pos++];value=value<<8|dict[pos++];value=value<<8|dict[pos++];value=value<<8|dict[pos++];return value}else if(value>=32&&value<=246)return value-139;else if(value>=247&&value<=250)return(value-247)*256+dict[pos++]+108;else if(value>=251&&value<=254)return-((value-251)*256)-dict[pos++]-108;else error("255 is not a valid DICT command"); +return-1}function parseFloatOperand(){var str="";var eof=15;var lookup=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];var length=dict.length;while(pos<length){var b=dict[pos++];var b1=b>>4;var b2=b&15;if(b1===eof)break;str+=lookup[b1];if(b2===eof)break;str+=lookup[b2]}return parseFloat(str)}var operands=[];var entries=[];pos=0;var end=dict.length;while(pos<end){var b=dict[pos];if(b<=21){if(b===12)b=b<<8|dict[++pos];entries.push([b,operands]);operands=[];++pos}else operands.push(parseOperand())}return entries}, +parseIndex:function CFFParser_parseIndex(pos){var cffIndex=new CFFIndex;var bytes=this.bytes;var count=bytes[pos++]<<8|bytes[pos++];var offsets=[];var end=pos;var i,ii;if(count!==0){var offsetSize=bytes[pos++];var startPos=pos+(count+1)*offsetSize-1;for(i=0,ii=count+1;i<ii;++i){var offset=0;for(var j=0;j<offsetSize;++j){offset<<=8;offset+=bytes[pos++]}offsets.push(startPos+offset)}end=offsets[count]}for(i=0,ii=offsets.length-1;i<ii;++i){var offsetStart=offsets[i];var offsetEnd=offsets[i+1];cffIndex.add(bytes.subarray(offsetStart, +offsetEnd))}return{obj:cffIndex,endPos:end}},parseNameIndex:function CFFParser_parseNameIndex(index){var names=[];for(var i=0,ii=index.count;i<ii;++i){var name=index.get(i);var length=Math.min(name.length,127);var data=[];for(var j=0;j<length;++j){var c=name[j];if(j===0&&c===0){data[j]=c;continue}if(c<33||c>126||c===91||c===93||c===40||c===41||c===123||c===125||c===60||c===62||c===47||c===37||c===35){data[j]=95;continue}data[j]=c}names.push(bytesToString(data))}return names},parseStringIndex:function CFFParser_parseStringIndex(index){var strings= +new CFFStrings;for(var i=0,ii=index.count;i<ii;++i){var data=index.get(i);strings.add(bytesToString(data))}return strings},createDict:function CFFParser_createDict(Type,dict,strings){var cffDict=new Type(strings);for(var i=0,ii=dict.length;i<ii;++i){var pair=dict[i];var key=pair[0];var value=pair[1];cffDict.setByKey(key,value)}return cffDict},parseCharStrings:function CFFParser_parseCharStrings(charStringOffset){var charStrings=this.parseIndex(charStringOffset).obj;var seacs=[];var widths=[];var count= +charStrings.count;for(var i=0;i<count;i++){var charstring=charStrings.get(i);var stackSize=0;var stack=[];var undefStack=true;var hints=0;var valid=true;var data=charstring;var length=data.length;var firstStackClearing=true;for(var j=0;j<length;){var value=data[j++];var validationCommand=null;if(value===12){var q=data[j++];if(q===0){data[j-2]=139;data[j-1]=22;stackSize=0}else validationCommand=CharstringValidationData12[q]}else if(value===28){stack[stackSize]=(data[j]<<24|data[j+1]<<16)>>16;j+=2; +stackSize++}else if(value===14){if(stackSize>=4){stackSize-=4;if(SEAC_ANALYSIS_ENABLED){seacs[i]=stack.slice(stackSize,stackSize+4);valid=false}}validationCommand=CharstringValidationData[value]}else if(value>=32&&value<=246){stack[stackSize]=value-139;stackSize++}else if(value>=247&&value<=254){stack[stackSize]=value<251?(value-247<<8)+data[j]+108:-(value-251<<8)-data[j]-108;j++;stackSize++}else if(value===255){stack[stackSize]=(data[j]<<24|data[j+1]<<16|data[j+2]<<8|data[j+3])/65536;j+=4;stackSize++}else if(value=== +19||value===20){hints+=stackSize>>1;j+=hints+7>>3;stackSize%=2;validationCommand=CharstringValidationData[value]}else validationCommand=CharstringValidationData[value];if(validationCommand){if(validationCommand.stem)hints+=stackSize>>1;if("min"in validationCommand)if(!undefStack&&stackSize<validationCommand.min){warn("Not enough parameters for "+validationCommand.id+"; actual: "+stackSize+", expected: "+validationCommand.min);valid=false;break}if(firstStackClearing&&validationCommand.stackClearing){firstStackClearing= +false;stackSize-=validationCommand.min;if(stackSize>=2&&validationCommand.stem)stackSize%=2;else if(stackSize>1)warn("Found too many parameters for stack-clearing command");if(stackSize>0&&stack[stackSize-1]>=0)widths[i]=stack[stackSize-1]}if("stackDelta"in validationCommand){if("stackFn"in validationCommand)validationCommand.stackFn(stack,stackSize);stackSize+=validationCommand.stackDelta}else if(validationCommand.stackClearing)stackSize=0;else if(validationCommand.resetStack){stackSize=0;undefStack= +false}else if(validationCommand.undefStack){stackSize=0;undefStack=true;firstStackClearing=false}}}if(!valid)charStrings.set(i,new Uint8Array([14]))}return{charStrings:charStrings,seacs:seacs,widths:widths}},emptyPrivateDictionary:function CFFParser_emptyPrivateDictionary(parentDict){var privateDict=this.createDict(CFFPrivateDict,[],parentDict.strings);parentDict.setByKey(18,[0,0]);parentDict.privateDict=privateDict},parsePrivateDict:function CFFParser_parsePrivateDict(parentDict){if(!parentDict.hasName("Private")){this.emptyPrivateDictionary(parentDict); +return}var privateOffset=parentDict.getByName("Private");if(!isArray(privateOffset)||privateOffset.length!==2){parentDict.removeByName("Private");return}var size=privateOffset[0];var offset=privateOffset[1];if(size===0||offset>=this.bytes.length){this.emptyPrivateDictionary(parentDict);return}var privateDictEnd=offset+size;var dictData=this.bytes.subarray(offset,privateDictEnd);var dict=this.parseDict(dictData);var privateDict=this.createDict(CFFPrivateDict,dict,parentDict.strings);parentDict.privateDict= +privateDict;if(!privateDict.getByName("Subrs"))return;var subrsOffset=privateDict.getByName("Subrs");var relativeOffset=offset+subrsOffset;if(subrsOffset===0||relativeOffset>=this.bytes.length){this.emptyPrivateDictionary(parentDict);return}var subrsIndex=this.parseIndex(relativeOffset);privateDict.subrsIndex=subrsIndex.obj},parseCharsets:function CFFParser_parseCharsets(pos,length,strings,cid){if(pos===0)return new CFFCharset(true,CFFCharsetPredefinedTypes.ISO_ADOBE,ISOAdobeCharset);else if(pos=== +1)return new CFFCharset(true,CFFCharsetPredefinedTypes.EXPERT,ExpertCharset);else if(pos===2)return new CFFCharset(true,CFFCharsetPredefinedTypes.EXPERT_SUBSET,ExpertSubsetCharset);var bytes=this.bytes;var start=pos;var format=bytes[pos++];var charset=[".notdef"];var id,count,i;length-=1;switch(format){case 0:for(i=0;i<length;i++){id=bytes[pos++]<<8|bytes[pos++];charset.push(cid?id:strings.get(id))}break;case 1:while(charset.length<=length){id=bytes[pos++]<<8|bytes[pos++];count=bytes[pos++];for(i= +0;i<=count;i++)charset.push(cid?id++:strings.get(id++))}break;case 2:while(charset.length<=length){id=bytes[pos++]<<8|bytes[pos++];count=bytes[pos++]<<8|bytes[pos++];for(i=0;i<=count;i++)charset.push(cid?id++:strings.get(id++))}break;default:error("Unknown charset format")}var end=pos;var raw=bytes.subarray(start,end);return new CFFCharset(false,format,charset,raw)},parseEncoding:function CFFParser_parseEncoding(pos,properties,strings,charset){var encoding={};var bytes=this.bytes;var predefined=false; +var hasSupplement=false;var format,i,ii;var raw=null;function readSupplement(){var supplementsCount=bytes[pos++];for(i=0;i<supplementsCount;i++){var code=bytes[pos++];var sid=(bytes[pos++]<<8)+(bytes[pos++]&255);encoding[code]=charset.indexOf(strings.get(sid))}}if(pos===0||pos===1){predefined=true;format=pos;var baseEncoding=pos?Encodings.ExpertEncoding:Encodings.StandardEncoding;for(i=0,ii=charset.length;i<ii;i++){var index=baseEncoding.indexOf(charset[i]);if(index!==-1)encoding[index]=i}}else{var dataStart= +pos;format=bytes[pos++];switch(format&127){case 0:var glyphsCount=bytes[pos++];for(i=1;i<=glyphsCount;i++)encoding[bytes[pos++]]=i;break;case 1:var rangesCount=bytes[pos++];var gid=1;for(i=0;i<rangesCount;i++){var start=bytes[pos++];var left=bytes[pos++];for(var j=start;j<=start+left;j++)encoding[j]=gid++}break;default:error("Unknow encoding format: "+format+" in CFF");break}var dataEnd=pos;if(format&128){bytes[dataStart]&=127;readSupplement();hasSupplement=true}raw=bytes.subarray(dataStart,dataEnd)}format= +format&127;return new CFFEncoding(predefined,format,encoding,raw)},parseFDSelect:function CFFParser_parseFDSelect(pos,length){var start=pos;var bytes=this.bytes;var format=bytes[pos++];var fdSelect=[];var i;switch(format){case 0:for(i=0;i<length;++i){var id=bytes[pos++];fdSelect.push(id)}break;case 3:var rangesCount=bytes[pos++]<<8|bytes[pos++];for(i=0;i<rangesCount;++i){var first=bytes[pos++]<<8|bytes[pos++];var fdIndex=bytes[pos++];var next=bytes[pos]<<8|bytes[pos+1];for(var j=first;j<next;++j)fdSelect.push(fdIndex)}pos+= +2;break;default:error("Unknown fdselect format "+format);break}var end=pos;return new CFFFDSelect(fdSelect,bytes.subarray(start,end))}};return CFFParser}();var CFF=function CFFClosure(){function CFF(){this.header=null;this.names=[];this.topDict=null;this.strings=new CFFStrings;this.globalSubrIndex=null;this.encoding=null;this.charset=null;this.charStrings=null;this.fdArray=[];this.fdSelect=null;this.isCIDFont=false}return CFF}();var CFFHeader=function CFFHeaderClosure(){function CFFHeader(major,minor, +hdrSize,offSize){this.major=major;this.minor=minor;this.hdrSize=hdrSize;this.offSize=offSize}return CFFHeader}();var CFFStrings=function CFFStringsClosure(){function CFFStrings(){this.strings=[]}CFFStrings.prototype={get:function CFFStrings_get(index){if(index>=0&&index<=390)return CFFStandardStrings[index];if(index-391<=this.strings.length)return this.strings[index-391];return CFFStandardStrings[0]},add:function CFFStrings_add(value){this.strings.push(value)},get count(){return this.strings.length}}; +return CFFStrings}();var CFFIndex=function CFFIndexClosure(){function CFFIndex(){this.objects=[];this.length=0}CFFIndex.prototype={add:function CFFIndex_add(data){this.length+=data.length;this.objects.push(data)},set:function CFFIndex_set(index,data){this.length+=data.length-this.objects[index].length;this.objects[index]=data},get:function CFFIndex_get(index){return this.objects[index]},get count(){return this.objects.length}};return CFFIndex}();var CFFDict=function CFFDictClosure(){function CFFDict(tables, +strings){this.keyToNameMap=tables.keyToNameMap;this.nameToKeyMap=tables.nameToKeyMap;this.defaults=tables.defaults;this.types=tables.types;this.opcodes=tables.opcodes;this.order=tables.order;this.strings=strings;this.values={}}CFFDict.prototype={setByKey:function CFFDict_setByKey(key,value){if(!(key in this.keyToNameMap))return false;if(value.length===0)return true;var type=this.types[key];if(type==="num"||type==="sid"||type==="offset")value=value[0];this.values[key]=value;return true},setByName:function CFFDict_setByName(name, +value){if(!(name in this.nameToKeyMap))error('Invalid dictionary name "'+name+'"');this.values[this.nameToKeyMap[name]]=value},hasName:function CFFDict_hasName(name){return this.nameToKeyMap[name]in this.values},getByName:function CFFDict_getByName(name){if(!(name in this.nameToKeyMap))error('Invalid dictionary name "'+name+'"');var key=this.nameToKeyMap[name];if(!(key in this.values))return this.defaults[key];return this.values[key]},removeByName:function CFFDict_removeByName(name){delete this.values[this.nameToKeyMap[name]]}}; +CFFDict.createTables=function CFFDict_createTables(layout){var tables={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]};for(var i=0,ii=layout.length;i<ii;++i){var entry=layout[i];var key=isArray(entry[0])?(entry[0][0]<<8)+entry[0][1]:entry[0];tables.keyToNameMap[key]=entry[1];tables.nameToKeyMap[entry[1]]=key;tables.types[key]=entry[2];tables.defaults[key]=entry[3];tables.opcodes[key]=isArray(entry[0])?entry[0]:[entry[0]];tables.order.push(key)}return tables};return CFFDict}(); +var CFFTopDict=function CFFTopDictClosure(){var layout=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12, +7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision", +"num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]];var tables=null;function CFFTopDict(strings){if(tables===null)tables=CFFDict.createTables(layout);CFFDict.call(this,tables,strings);this.privateDict=null}CFFTopDict.prototype=Object.create(CFFDict.prototype);return CFFTopDict}();var CFFPrivateDict=function CFFPrivateDictClosure(){var layout=[[6, +"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num", +0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]];var tables=null;function CFFPrivateDict(strings){if(tables===null)tables=CFFDict.createTables(layout);CFFDict.call(this,tables,strings);this.subrsIndex=null}CFFPrivateDict.prototype=Object.create(CFFDict.prototype);return CFFPrivateDict}();var CFFCharsetPredefinedTypes={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2};var CFFCharset=function CFFCharsetClosure(){function CFFCharset(predefined,format,charset,raw){this.predefined=predefined;this.format= +format;this.charset=charset;this.raw=raw}return CFFCharset}();var CFFEncoding=function CFFEncodingClosure(){function CFFEncoding(predefined,format,encoding,raw){this.predefined=predefined;this.format=format;this.encoding=encoding;this.raw=raw}return CFFEncoding}();var CFFFDSelect=function CFFFDSelectClosure(){function CFFFDSelect(fdSelect,raw){this.fdSelect=fdSelect;this.raw=raw}return CFFFDSelect}();var CFFOffsetTracker=function CFFOffsetTrackerClosure(){function CFFOffsetTracker(){this.offsets= +{}}CFFOffsetTracker.prototype={isTracking:function CFFOffsetTracker_isTracking(key){return key in this.offsets},track:function CFFOffsetTracker_track(key,location){if(key in this.offsets)error("Already tracking location of "+key);this.offsets[key]=location},offset:function CFFOffsetTracker_offset(value){for(var key in this.offsets)this.offsets[key]+=value},setEntryLocation:function CFFOffsetTracker_setEntryLocation(key,values,output){if(!(key in this.offsets))error("Not tracking location of "+key); +var data=output.data;var dataOffset=this.offsets[key];var size=5;for(var i=0,ii=values.length;i<ii;++i){var offset0=i*size+dataOffset;var offset1=offset0+1;var offset2=offset0+2;var offset3=offset0+3;var offset4=offset0+4;if(data[offset0]!==29||data[offset1]!==0||data[offset2]!==0||data[offset3]!==0||data[offset4]!==0)error("writing to an offset that is not empty");var value=values[i];data[offset0]=29;data[offset1]=value>>24&255;data[offset2]=value>>16&255;data[offset3]=value>>8&255;data[offset4]= +value&255}}};return CFFOffsetTracker}();var CFFCompiler=function CFFCompilerClosure(){function CFFCompiler(cff){this.cff=cff}CFFCompiler.prototype={compile:function CFFCompiler_compile(){var cff=this.cff;var output={data:[],length:0,add:function CFFCompiler_add(data){this.data=this.data.concat(data);this.length=this.data.length}};var header=this.compileHeader(cff.header);output.add(header);var nameIndex=this.compileNameIndex(cff.names);output.add(nameIndex);if(cff.isCIDFont)if(cff.topDict.hasName("FontMatrix")){var base= +cff.topDict.getByName("FontMatrix");cff.topDict.removeByName("FontMatrix");for(var i=0,ii=cff.fdArray.length;i<ii;i++){var subDict=cff.fdArray[i];var matrix=base.slice(0);if(subDict.hasName("FontMatrix"))matrix=Util.transform(matrix,subDict.getByName("FontMatrix"));subDict.setByName("FontMatrix",matrix)}}var compiled=this.compileTopDicts([cff.topDict],output.length,cff.isCIDFont);output.add(compiled.output);var topDictTracker=compiled.trackers[0];var stringIndex=this.compileStringIndex(cff.strings.strings); +output.add(stringIndex);var globalSubrIndex=this.compileIndex(cff.globalSubrIndex);output.add(globalSubrIndex);if(cff.encoding&&cff.topDict.hasName("Encoding"))if(cff.encoding.predefined)topDictTracker.setEntryLocation("Encoding",[cff.encoding.format],output);else{var encoding=this.compileEncoding(cff.encoding);topDictTracker.setEntryLocation("Encoding",[output.length],output);output.add(encoding)}if(cff.charset&&cff.topDict.hasName("charset"))if(cff.charset.predefined)topDictTracker.setEntryLocation("charset", +[cff.charset.format],output);else{var charset=this.compileCharset(cff.charset);topDictTracker.setEntryLocation("charset",[output.length],output);output.add(charset)}var charStrings=this.compileCharStrings(cff.charStrings);topDictTracker.setEntryLocation("CharStrings",[output.length],output);output.add(charStrings);if(cff.isCIDFont){topDictTracker.setEntryLocation("FDSelect",[output.length],output);var fdSelect=this.compileFDSelect(cff.fdSelect.raw);output.add(fdSelect);compiled=this.compileTopDicts(cff.fdArray, +output.length,true);topDictTracker.setEntryLocation("FDArray",[output.length],output);output.add(compiled.output);var fontDictTrackers=compiled.trackers;this.compilePrivateDicts(cff.fdArray,fontDictTrackers,output)}this.compilePrivateDicts([cff.topDict],[topDictTracker],output);output.add([0]);return output.data},encodeNumber:function CFFCompiler_encodeNumber(value){if(parseFloat(value)===parseInt(value,10)&&!isNaN(value))return this.encodeInteger(value);else return this.encodeFloat(value)},encodeFloat:function CFFCompiler_encodeFloat(num){var value= +num.toString();var m=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(value);if(m){var epsilon=parseFloat("1e"+((m[2]?+m[2]:0)+m[1].length));value=(Math.round(num*epsilon)/epsilon).toString()}var nibbles="";var i,ii;for(i=0,ii=value.length;i<ii;++i){var a=value[i];if(a==="e")nibbles+=value[++i]==="-"?"c":"b";else if(a===".")nibbles+="a";else if(a==="-")nibbles+="e";else nibbles+=a}nibbles+=nibbles.length&1?"f":"ff";var out=[30];for(i=0,ii=nibbles.length;i<ii;i+=2)out.push(parseInt(nibbles.substr(i, +2),16));return out},encodeInteger:function CFFCompiler_encodeInteger(value){var code;if(value>=-107&&value<=107)code=[value+139];else if(value>=108&&value<=1131){value=[value-108];code=[(value>>8)+247,value&255]}else if(value>=-1131&&value<=-108){value=-value-108;code=[(value>>8)+251,value&255]}else if(value>=-32768&&value<=32767)code=[28,value>>8&255,value&255];else code=[29,value>>24&255,value>>16&255,value>>8&255,value&255];return code},compileHeader:function CFFCompiler_compileHeader(header){return[header.major, +header.minor,header.hdrSize,header.offSize]},compileNameIndex:function CFFCompiler_compileNameIndex(names){var nameIndex=new CFFIndex;for(var i=0,ii=names.length;i<ii;++i)nameIndex.add(stringToBytes(names[i]));return this.compileIndex(nameIndex)},compileTopDicts:function CFFCompiler_compileTopDicts(dicts,length,removeCidKeys){var fontDictTrackers=[];var fdArrayIndex=new CFFIndex;for(var i=0,ii=dicts.length;i<ii;++i){var fontDict=dicts[i];if(removeCidKeys){fontDict.removeByName("CIDFontVersion");fontDict.removeByName("CIDFontRevision"); +fontDict.removeByName("CIDFontType");fontDict.removeByName("CIDCount");fontDict.removeByName("UIDBase")}var fontDictTracker=new CFFOffsetTracker;var fontDictData=this.compileDict(fontDict,fontDictTracker);fontDictTrackers.push(fontDictTracker);fdArrayIndex.add(fontDictData);fontDictTracker.offset(length)}fdArrayIndex=this.compileIndex(fdArrayIndex,fontDictTrackers);return{trackers:fontDictTrackers,output:fdArrayIndex}},compilePrivateDicts:function CFFCompiler_compilePrivateDicts(dicts,trackers,output){for(var i= +0,ii=dicts.length;i<ii;++i){var fontDict=dicts[i];assert(fontDict.privateDict&&fontDict.hasName("Private"),"There must be an private dictionary.");var privateDict=fontDict.privateDict;var privateDictTracker=new CFFOffsetTracker;var privateDictData=this.compileDict(privateDict,privateDictTracker);var outputLength=output.length;privateDictTracker.offset(outputLength);if(!privateDictData.length)outputLength=0;trackers[i].setEntryLocation("Private",[privateDictData.length,outputLength],output);output.add(privateDictData); +if(privateDict.subrsIndex&&privateDict.hasName("Subrs")){var subrs=this.compileIndex(privateDict.subrsIndex);privateDictTracker.setEntryLocation("Subrs",[privateDictData.length],output);output.add(subrs)}}},compileDict:function CFFCompiler_compileDict(dict,offsetTracker){var out=[];var order=dict.order;for(var i=0;i<order.length;++i){var key=order[i];if(!(key in dict.values))continue;var values=dict.values[key];var types=dict.types[key];if(!isArray(types))types=[types];if(!isArray(values))values= +[values];if(values.length===0)continue;for(var j=0,jj=types.length;j<jj;++j){var type=types[j];var value=values[j];switch(type){case "num":case "sid":out=out.concat(this.encodeNumber(value));break;case "offset":var name=dict.keyToNameMap[key];if(!offsetTracker.isTracking(name))offsetTracker.track(name,out.length);out=out.concat([29,0,0,0,0]);break;case "array":case "delta":out=out.concat(this.encodeNumber(value));for(var k=1,kk=values.length;k<kk;++k)out=out.concat(this.encodeNumber(values[k]));break; +default:error("Unknown data type of "+type);break}}out=out.concat(dict.opcodes[key])}return out},compileStringIndex:function CFFCompiler_compileStringIndex(strings){var stringIndex=new CFFIndex;for(var i=0,ii=strings.length;i<ii;++i)stringIndex.add(stringToBytes(strings[i]));return this.compileIndex(stringIndex)},compileGlobalSubrIndex:function CFFCompiler_compileGlobalSubrIndex(){var globalSubrIndex=this.cff.globalSubrIndex;this.out.writeByteArray(this.compileIndex(globalSubrIndex))},compileCharStrings:function CFFCompiler_compileCharStrings(charStrings){return this.compileIndex(charStrings)}, +compileCharset:function CFFCompiler_compileCharset(charset){return this.compileTypedArray(charset.raw)},compileEncoding:function CFFCompiler_compileEncoding(encoding){return this.compileTypedArray(encoding.raw)},compileFDSelect:function CFFCompiler_compileFDSelect(fdSelect){return this.compileTypedArray(fdSelect)},compileTypedArray:function CFFCompiler_compileTypedArray(data){var out=[];for(var i=0,ii=data.length;i<ii;++i)out[i]=data[i];return out},compileIndex:function CFFCompiler_compileIndex(index, +trackers){trackers=trackers||[];var objects=index.objects;var count=objects.length;if(count===0)return[0,0,0];var data=[count>>8&255,count&255];var lastOffset=1,i;for(i=0;i<count;++i)lastOffset+=objects[i].length;var offsetSize;if(lastOffset<256)offsetSize=1;else if(lastOffset<65536)offsetSize=2;else if(lastOffset<16777216)offsetSize=3;else offsetSize=4;data.push(offsetSize);var relativeOffset=1;for(i=0;i<count+1;i++){if(offsetSize===1)data.push(relativeOffset&255);else if(offsetSize===2)data.push(relativeOffset>> +8&255,relativeOffset&255);else if(offsetSize===3)data.push(relativeOffset>>16&255,relativeOffset>>8&255,relativeOffset&255);else data.push(relativeOffset>>>24&255,relativeOffset>>16&255,relativeOffset>>8&255,relativeOffset&255);if(objects[i])relativeOffset+=objects[i].length}for(i=0;i<count;i++){if(trackers[i])trackers[i].offset(data.length);for(var j=0,jj=objects[i].length;j<jj;j++)data.push(objects[i][j])}return data}};return CFFCompiler}();(function checkSeacSupport(){if(/Windows/.test(navigator.userAgent))SEAC_ANALYSIS_ENABLED= +true})();(function checkChromeWindows(){if(/Windows.*Chrome/.test(navigator.userAgent))SKIP_PRIVATE_USE_RANGE_F000_TO_F01F=true})();var FontRendererFactory=function FontRendererFactoryClosure(){function getLong(data,offset){return data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3]}function getUshort(data,offset){return data[offset]<<8|data[offset+1]}function parseCmap(data,start,end){var offset=getUshort(data,start+2)===1?getLong(data,start+8):getLong(data,start+16);var format=getUshort(data, +start+offset);var length,ranges,p,i;if(format===4){length=getUshort(data,start+offset+2);var segCount=getUshort(data,start+offset+6)>>1;p=start+offset+14;ranges=[];for(i=0;i<segCount;i++,p+=2)ranges[i]={end:getUshort(data,p)};p+=2;for(i=0;i<segCount;i++,p+=2)ranges[i].start=getUshort(data,p);for(i=0;i<segCount;i++,p+=2)ranges[i].idDelta=getUshort(data,p);for(i=0;i<segCount;i++,p+=2){var idOffset=getUshort(data,p);if(idOffset===0)continue;ranges[i].ids=[];for(var j=0,jj=ranges[i].end-ranges[i].start+ +1;j<jj;j++){ranges[i].ids[j]=getUshort(data,p+idOffset);idOffset+=2}}return ranges}else if(format===12){length=getLong(data,start+offset+4);var groups=getLong(data,start+offset+12);p=start+offset+16;ranges=[];for(i=0;i<groups;i++){ranges.push({start:getLong(data,p),end:getLong(data,p+4),idDelta:getLong(data,p+8)-getLong(data,p)});p+=12}return ranges}error("not supported cmap: "+format)}function parseCff(data,start,end){var properties={};var parser=new CFFParser(new Stream(data,start,end-start),properties); +var cff=parser.parse();return{glyphs:cff.charStrings.objects,subrs:cff.topDict.privateDict&&cff.topDict.privateDict.subrsIndex&&cff.topDict.privateDict.subrsIndex.objects,gsubrs:cff.globalSubrIndex&&cff.globalSubrIndex.objects}}function parseGlyfTable(glyf,loca,isGlyphLocationsLong){var itemSize,itemDecode;if(isGlyphLocationsLong){itemSize=4;itemDecode=function fontItemDecodeLong(data,offset){return data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3]}}else{itemSize=2;itemDecode=function fontItemDecode(data, +offset){return data[offset]<<9|data[offset+1]<<1}}var glyphs=[];var startOffset=itemDecode(loca,0);for(var j=itemSize;j<loca.length;j+=itemSize){var endOffset=itemDecode(loca,j);glyphs.push(glyf.subarray(startOffset,endOffset));startOffset=endOffset}return glyphs}function lookupCmap(ranges,unicode){var code=unicode.charCodeAt(0);var l=0,r=ranges.length-1;while(l<r){var c=l+r+1>>1;if(code<ranges[c].start)r=c-1;else l=c}if(ranges[l].start<=code&&code<=ranges[l].end)return ranges[l].idDelta+(ranges[l].ids? +ranges[l].ids[code-ranges[l].start]:code)&65535;return 0}function compileGlyf(code,js,font){function moveTo(x,y){js.push("c.moveTo("+x+","+y+");")}function lineTo(x,y){js.push("c.lineTo("+x+","+y+");")}function quadraticCurveTo(xa,ya,x,y){js.push("c.quadraticCurveTo("+xa+","+ya+","+x+","+y+");")}var i=0;var numberOfContours=(code[i]<<24|code[i+1]<<16)>>16;var flags;var x=0,y=0;i+=10;if(numberOfContours<0){do{flags=code[i]<<8|code[i+1];var glyphIndex=code[i+2]<<8|code[i+3];i+=4;var arg1,arg2;if(flags& +1){arg1=(code[i]<<24|code[i+1]<<16)>>16;arg2=(code[i+2]<<24|code[i+3]<<16)>>16;i+=4}else{arg1=code[i++];arg2=code[i++]}if(flags&2){x=arg1;y=arg2}else{x=0;y=0}var scaleX=1,scaleY=1,scale01=0,scale10=0;if(flags&8){scaleX=scaleY=(code[i]<<24|code[i+1]<<16)/1073741824;i+=2}else if(flags&64){scaleX=(code[i]<<24|code[i+1]<<16)/1073741824;scaleY=(code[i+2]<<24|code[i+3]<<16)/1073741824;i+=4}else if(flags&128){scaleX=(code[i]<<24|code[i+1]<<16)/1073741824;scale01=(code[i+2]<<24|code[i+3]<<16)/1073741824; +scale10=(code[i+4]<<24|code[i+5]<<16)/1073741824;scaleY=(code[i+6]<<24|code[i+7]<<16)/1073741824;i+=8}var subglyph=font.glyphs[glyphIndex];if(subglyph){js.push("c.save();");js.push("c.transform("+scaleX+","+scale01+","+scale10+","+scaleY+","+x+","+y+");");compileGlyf(subglyph,js,font);js.push("c.restore();")}}while(flags&32)}else{var endPtsOfContours=[];var j,jj;for(j=0;j<numberOfContours;j++){endPtsOfContours.push(code[i]<<8|code[i+1]);i+=2}var instructionLength=code[i]<<8|code[i+1];i+=2+instructionLength; +var numberOfPoints=endPtsOfContours[endPtsOfContours.length-1]+1;var points=[];while(points.length<numberOfPoints){flags=code[i++];var repeat=1;if(flags&8)repeat+=code[i++];while(repeat-- >0)points.push({flags:flags})}for(j=0;j<numberOfPoints;j++){switch(points[j].flags&18){case 0:x+=(code[i]<<24|code[i+1]<<16)>>16;i+=2;break;case 2:x-=code[i++];break;case 18:x+=code[i++];break}points[j].x=x}for(j=0;j<numberOfPoints;j++){switch(points[j].flags&36){case 0:y+=(code[i]<<24|code[i+1]<<16)>>16;i+=2;break; +case 4:y-=code[i++];break;case 36:y+=code[i++];break}points[j].y=y}var startPoint=0;for(i=0;i<numberOfContours;i++){var endPoint=endPtsOfContours[i];var contour=points.slice(startPoint,endPoint+1);if(contour[0].flags&1)contour.push(contour[0]);else if(contour[contour.length-1].flags&1)contour.unshift(contour[contour.length-1]);else{var p={flags:1,x:(contour[0].x+contour[contour.length-1].x)/2,y:(contour[0].y+contour[contour.length-1].y)/2};contour.unshift(p);contour.push(p)}moveTo(contour[0].x,contour[0].y); +for(j=1,jj=contour.length;j<jj;j++)if(contour[j].flags&1)lineTo(contour[j].x,contour[j].y);else if(contour[j+1].flags&1){quadraticCurveTo(contour[j].x,contour[j].y,contour[j+1].x,contour[j+1].y);j++}else quadraticCurveTo(contour[j].x,contour[j].y,(contour[j].x+contour[j+1].x)/2,(contour[j].y+contour[j+1].y)/2);startPoint=endPoint+1}}}function compileCharString(code,js,font){var stack=[];var x=0,y=0;var stems=0;function moveTo(x,y){js.push("c.moveTo("+x+","+y+");")}function lineTo(x,y){js.push("c.lineTo("+ +x+","+y+");")}function bezierCurveTo(x1,y1,x2,y2,x,y){js.push("c.bezierCurveTo("+x1+","+y1+","+x2+","+y2+","+x+","+y+");")}function parse(code){var i=0;while(i<code.length){var stackClean=false;var v=code[i++];var xa,xb,ya,yb,y1,y2,y3,n,subrCode;switch(v){case 1:stems+=stack.length>>1;stackClean=true;break;case 3:stems+=stack.length>>1;stackClean=true;break;case 4:y+=stack.pop();moveTo(x,y);stackClean=true;break;case 5:while(stack.length>0){x+=stack.shift();y+=stack.shift();lineTo(x,y)}break;case 6:while(stack.length> +0){x+=stack.shift();lineTo(x,y);if(stack.length===0)break;y+=stack.shift();lineTo(x,y)}break;case 7:while(stack.length>0){y+=stack.shift();lineTo(x,y);if(stack.length===0)break;x+=stack.shift();lineTo(x,y)}break;case 8:while(stack.length>0){xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y)}break;case 10:n=stack.pop()+font.subrsBias;subrCode=font.subrs[n];if(subrCode)parse(subrCode);break;case 11:return; +case 12:v=code[i++];switch(v){case 34:xa=x+stack.shift();xb=xa+stack.shift();y1=y+stack.shift();x=xb+stack.shift();bezierCurveTo(xa,y,xb,y1,x,y1);xa=x+stack.shift();xb=xa+stack.shift();x=xb+stack.shift();bezierCurveTo(xa,y1,xb,y,x,y);break;case 35:xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift(); +bezierCurveTo(xa,ya,xb,yb,x,y);stack.pop();break;case 36:xa=x+stack.shift();y1=y+stack.shift();xb=xa+stack.shift();y2=y1+stack.shift();x=xb+stack.shift();bezierCurveTo(xa,y1,xb,y2,x,y2);xa=x+stack.shift();xb=xa+stack.shift();y3=y2+stack.shift();x=xb+stack.shift();bezierCurveTo(xa,y2,xb,y3,x,y);break;case 37:var x0=x,y0=y;xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);xa=x+stack.shift();ya=y+stack.shift(); +xb=xa+stack.shift();yb=ya+stack.shift();x=xb;y=yb;if(Math.abs(x-x0)>Math.abs(y-y0))x+=stack.shift();else y+=stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);break;default:error("unknown operator: 12 "+v)}break;case 14:if(stack.length>=4){var achar=stack.pop();var bchar=stack.pop();y=stack.pop();x=stack.pop();js.push("c.save();");js.push("c.translate("+x+","+y+");");var gid=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[Encodings.StandardEncoding[achar]]));compileCharString(font.glyphs[gid], +js,font);js.push("c.restore();");gid=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[Encodings.StandardEncoding[bchar]]));compileCharString(font.glyphs[gid],js,font)}return;case 18:stems+=stack.length>>1;stackClean=true;break;case 19:stems+=stack.length>>1;i+=stems+7>>3;stackClean=true;break;case 20:stems+=stack.length>>1;i+=stems+7>>3;stackClean=true;break;case 21:y+=stack.pop();x+=stack.pop();moveTo(x,y);stackClean=true;break;case 22:x+=stack.pop();moveTo(x,y);stackClean=true;break;case 23:stems+= +stack.length>>1;stackClean=true;break;case 24:while(stack.length>2){xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y)}x+=stack.shift();y+=stack.shift();lineTo(x,y);break;case 25:while(stack.length>6){x+=stack.shift();y+=stack.shift();lineTo(x,y)}xa=x+stack.shift();ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y);break;case 26:if(stack.length% +2)x+=stack.shift();while(stack.length>0){xa=x;ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb;y=yb+stack.shift();bezierCurveTo(xa,ya,xb,yb,x,y)}break;case 27:if(stack.length%2)y+=stack.shift();while(stack.length>0){xa=x+stack.shift();ya=y;xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb;bezierCurveTo(xa,ya,xb,yb,x,y)}break;case 28:stack.push((code[i]<<24|code[i+1]<<16)>>16);i+=2;break;case 29:n=stack.pop()+font.gsubrsBias;subrCode=font.gsubrs[n];if(subrCode)parse(subrCode); +break;case 30:while(stack.length>0){xa=x;ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+(stack.length===1?stack.shift():0);bezierCurveTo(xa,ya,xb,yb,x,y);if(stack.length===0)break;xa=x+stack.shift();ya=y;xb=xa+stack.shift();yb=ya+stack.shift();y=yb+stack.shift();x=xb+(stack.length===1?stack.shift():0);bezierCurveTo(xa,ya,xb,yb,x,y)}break;case 31:while(stack.length>0){xa=x+stack.shift();ya=y;xb=xa+stack.shift();yb=ya+stack.shift();y=yb+stack.shift();x=xb+(stack.length=== +1?stack.shift():0);bezierCurveTo(xa,ya,xb,yb,x,y);if(stack.length===0)break;xa=x;ya=y+stack.shift();xb=xa+stack.shift();yb=ya+stack.shift();x=xb+stack.shift();y=yb+(stack.length===1?stack.shift():0);bezierCurveTo(xa,ya,xb,yb,x,y)}break;default:if(v<32)error("unknown operator: "+v);if(v<247)stack.push(v-139);else if(v<251)stack.push((v-247)*256+code[i++]+108);else if(v<255)stack.push(-(v-251)*256-code[i++]-108);else{stack.push((code[i]<<24|code[i+1]<<16|code[i+2]<<8|code[i+3])/65536);i+=4}break}if(stackClean)stack.length= +0}}parse(code)}var noop="";function CompiledFont(fontMatrix){this.compiledGlyphs={};this.fontMatrix=fontMatrix}CompiledFont.prototype={getPathJs:function(unicode){var gid=lookupCmap(this.cmap,unicode);var fn=this.compiledGlyphs[gid];if(!fn)this.compiledGlyphs[gid]=fn=this.compileGlyph(this.glyphs[gid]);return fn},compileGlyph:function(code){if(!code||code.length===0||code[0]===14)return noop;var js=[];js.push("c.save();");js.push("c.transform("+this.fontMatrix.join(",")+");");js.push("c.scale(size, -size);"); +this.compileGlyphImpl(code,js);js.push("c.restore();");return js.join("\n")},compileGlyphImpl:function(){error("Children classes should implement this.")},hasBuiltPath:function(unicode){var gid=lookupCmap(this.cmap,unicode);return gid in this.compiledGlyphs}};function TrueTypeCompiled(glyphs,cmap,fontMatrix){fontMatrix=fontMatrix||[4.88E-4,0,0,4.88E-4,0,0];CompiledFont.call(this,fontMatrix);this.glyphs=glyphs;this.cmap=cmap;this.compiledGlyphs=[]}Util.inherit(TrueTypeCompiled,CompiledFont,{compileGlyphImpl:function(code, +js){compileGlyf(code,js,this)}});function Type2Compiled(cffInfo,cmap,fontMatrix,glyphNameMap){fontMatrix=fontMatrix||[.001,0,0,.001,0,0];CompiledFont.call(this,fontMatrix);this.glyphs=cffInfo.glyphs;this.gsubrs=cffInfo.gsubrs||[];this.subrs=cffInfo.subrs||[];this.cmap=cmap;this.glyphNameMap=glyphNameMap||GlyphsUnicode;this.compiledGlyphs=[];this.gsubrsBias=this.gsubrs.length<1240?107:this.gsubrs.length<33900?1131:32768;this.subrsBias=this.subrs.length<1240?107:this.subrs.length<33900?1131:32768}Util.inherit(Type2Compiled, +CompiledFont,{compileGlyphImpl:function(code,js){compileCharString(code,js,this)}});return{create:function FontRendererFactory_create(font){var data=new Uint8Array(font.data);var cmap,glyf,loca,cff,indexToLocFormat,unitsPerEm;var numTables=getUshort(data,4);for(var i=0,p=12;i<numTables;i++,p+=16){var tag=bytesToString(data.subarray(p,p+4));var offset=getLong(data,p+8);var length=getLong(data,p+12);switch(tag){case "cmap":cmap=parseCmap(data,offset,offset+length);break;case "glyf":glyf=data.subarray(offset, +offset+length);break;case "loca":loca=data.subarray(offset,offset+length);break;case "head":unitsPerEm=getUshort(data,offset+18);indexToLocFormat=getUshort(data,offset+50);break;case "CFF ":cff=parseCff(data,offset,offset+length);break}}if(glyf){var fontMatrix=!unitsPerEm?font.fontMatrix:[1/unitsPerEm,0,0,1/unitsPerEm,0,0];return new TrueTypeCompiled(parseGlyfTable(glyf,loca,indexToLocFormat),cmap,fontMatrix)}else return new Type2Compiled(cff,cmap,font.fontMatrix,font.glyphNameMap)}}}();var GlyphsUnicode= +{A:65,AE:198,AEacute:508,AEmacron:482,AEsmall:63462,Aacute:193,Aacutesmall:63457,Abreve:258,Abreveacute:7854,Abrevecyrillic:1232,Abrevedotbelow:7862,Abrevegrave:7856,Abrevehookabove:7858,Abrevetilde:7860,Acaron:461,Acircle:9398,Acircumflex:194,Acircumflexacute:7844,Acircumflexdotbelow:7852,Acircumflexgrave:7846,Acircumflexhookabove:7848,Acircumflexsmall:63458,Acircumflextilde:7850,Acute:63177,Acutesmall:63412,Acyrillic:1040,Adblgrave:512,Adieresis:196,Adieresiscyrillic:1234,Adieresismacron:478,Adieresissmall:63460, +Adotbelow:7840,Adotmacron:480,Agrave:192,Agravesmall:63456,Ahookabove:7842,Aiecyrillic:1236,Ainvertedbreve:514,Alpha:913,Alphatonos:902,Amacron:256,Amonospace:65313,Aogonek:260,Aring:197,Aringacute:506,Aringbelow:7680,Aringsmall:63461,Asmall:63329,Atilde:195,Atildesmall:63459,Aybarmenian:1329,B:66,Bcircle:9399,Bdotaccent:7682,Bdotbelow:7684,Becyrillic:1041,Benarmenian:1330,Beta:914,Bhook:385,Blinebelow:7686,Bmonospace:65314,Brevesmall:63220,Bsmall:63330,Btopbar:386,C:67,Caarmenian:1342,Cacute:262, +Caron:63178,Caronsmall:63221,Ccaron:268,Ccedilla:199,Ccedillaacute:7688,Ccedillasmall:63463,Ccircle:9400,Ccircumflex:264,Cdot:266,Cdotaccent:266,Cedillasmall:63416,Chaarmenian:1353,Cheabkhasiancyrillic:1212,Checyrillic:1063,Chedescenderabkhasiancyrillic:1214,Chedescendercyrillic:1206,Chedieresiscyrillic:1268,Cheharmenian:1347,Chekhakassiancyrillic:1227,Cheverticalstrokecyrillic:1208,Chi:935,Chook:391,Circumflexsmall:63222,Cmonospace:65315,Coarmenian:1361,Csmall:63331,D:68,DZ:497,DZcaron:452,Daarmenian:1332, +Dafrican:393,Dcaron:270,Dcedilla:7696,Dcircle:9401,Dcircumflexbelow:7698,Dcroat:272,Ddotaccent:7690,Ddotbelow:7692,Decyrillic:1044,Deicoptic:1006,Delta:8710,Deltagreek:916,Dhook:394,Dieresis:63179,DieresisAcute:63180,DieresisGrave:63181,Dieresissmall:63400,Digammagreek:988,Djecyrillic:1026,Dlinebelow:7694,Dmonospace:65316,Dotaccentsmall:63223,Dslash:272,Dsmall:63332,Dtopbar:395,Dz:498,Dzcaron:453,Dzeabkhasiancyrillic:1248,Dzecyrillic:1029,Dzhecyrillic:1039,E:69,Eacute:201,Eacutesmall:63465,Ebreve:276, +Ecaron:282,Ecedillabreve:7708,Echarmenian:1333,Ecircle:9402,Ecircumflex:202,Ecircumflexacute:7870,Ecircumflexbelow:7704,Ecircumflexdotbelow:7878,Ecircumflexgrave:7872,Ecircumflexhookabove:7874,Ecircumflexsmall:63466,Ecircumflextilde:7876,Ecyrillic:1028,Edblgrave:516,Edieresis:203,Edieresissmall:63467,Edot:278,Edotaccent:278,Edotbelow:7864,Efcyrillic:1060,Egrave:200,Egravesmall:63464,Eharmenian:1335,Ehookabove:7866,Eightroman:8551,Einvertedbreve:518,Eiotifiedcyrillic:1124,Elcyrillic:1051,Elevenroman:8554, +Emacron:274,Emacronacute:7702,Emacrongrave:7700,Emcyrillic:1052,Emonospace:65317,Encyrillic:1053,Endescendercyrillic:1186,Eng:330,Enghecyrillic:1188,Enhookcyrillic:1223,Eogonek:280,Eopen:400,Epsilon:917,Epsilontonos:904,Ercyrillic:1056,Ereversed:398,Ereversedcyrillic:1069,Escyrillic:1057,Esdescendercyrillic:1194,Esh:425,Esmall:63333,Eta:919,Etarmenian:1336,Etatonos:905,Eth:208,Ethsmall:63472,Etilde:7868,Etildebelow:7706,Euro:8364,Ezh:439,Ezhcaron:494,Ezhreversed:440,F:70,Fcircle:9403,Fdotaccent:7710, +Feharmenian:1366,Feicoptic:996,Fhook:401,Fitacyrillic:1138,Fiveroman:8548,Fmonospace:65318,Fourroman:8547,Fsmall:63334,G:71,GBsquare:13191,Gacute:500,Gamma:915,Gammaafrican:404,Gangiacoptic:1002,Gbreve:286,Gcaron:486,Gcedilla:290,Gcircle:9404,Gcircumflex:284,Gcommaaccent:290,Gdot:288,Gdotaccent:288,Gecyrillic:1043,Ghadarmenian:1346,Ghemiddlehookcyrillic:1172,Ghestrokecyrillic:1170,Gheupturncyrillic:1168,Ghook:403,Gimarmenian:1331,Gjecyrillic:1027,Gmacron:7712,Gmonospace:65319,Grave:63182,Gravesmall:63328, +Gsmall:63335,Gsmallhook:667,Gstroke:484,H:72,H18533:9679,H18543:9642,H18551:9643,H22073:9633,HPsquare:13259,Haabkhasiancyrillic:1192,Hadescendercyrillic:1202,Hardsigncyrillic:1066,Hbar:294,Hbrevebelow:7722,Hcedilla:7720,Hcircle:9405,Hcircumflex:292,Hdieresis:7718,Hdotaccent:7714,Hdotbelow:7716,Hmonospace:65320,Hoarmenian:1344,Horicoptic:1E3,Hsmall:63336,Hungarumlaut:63183,Hungarumlautsmall:63224,Hzsquare:13200,I:73,IAcyrillic:1071,IJ:306,IUcyrillic:1070,Iacute:205,Iacutesmall:63469,Ibreve:300,Icaron:463, +Icircle:9406,Icircumflex:206,Icircumflexsmall:63470,Icyrillic:1030,Idblgrave:520,Idieresis:207,Idieresisacute:7726,Idieresiscyrillic:1252,Idieresissmall:63471,Idot:304,Idotaccent:304,Idotbelow:7882,Iebrevecyrillic:1238,Iecyrillic:1045,Ifraktur:8465,Igrave:204,Igravesmall:63468,Ihookabove:7880,Iicyrillic:1048,Iinvertedbreve:522,Iishortcyrillic:1049,Imacron:298,Imacroncyrillic:1250,Imonospace:65321,Iniarmenian:1339,Iocyrillic:1025,Iogonek:302,Iota:921,Iotaafrican:406,Iotadieresis:938,Iotatonos:906, +Ismall:63337,Istroke:407,Itilde:296,Itildebelow:7724,Izhitsacyrillic:1140,Izhitsadblgravecyrillic:1142,J:74,Jaarmenian:1345,Jcircle:9407,Jcircumflex:308,Jecyrillic:1032,Jheharmenian:1355,Jmonospace:65322,Jsmall:63338,K:75,KBsquare:13189,KKsquare:13261,Kabashkircyrillic:1184,Kacute:7728,Kacyrillic:1050,Kadescendercyrillic:1178,Kahookcyrillic:1219,Kappa:922,Kastrokecyrillic:1182,Kaverticalstrokecyrillic:1180,Kcaron:488,Kcedilla:310,Kcircle:9408,Kcommaaccent:310,Kdotbelow:7730,Keharmenian:1364,Kenarmenian:1343, +Khacyrillic:1061,Kheicoptic:998,Khook:408,Kjecyrillic:1036,Klinebelow:7732,Kmonospace:65323,Koppacyrillic:1152,Koppagreek:990,Ksicyrillic:1134,Ksmall:63339,L:76,LJ:455,LL:63167,Lacute:313,Lambda:923,Lcaron:317,Lcedilla:315,Lcircle:9409,Lcircumflexbelow:7740,Lcommaaccent:315,Ldot:319,Ldotaccent:319,Ldotbelow:7734,Ldotbelowmacron:7736,Liwnarmenian:1340,Lj:456,Ljecyrillic:1033,Llinebelow:7738,Lmonospace:65324,Lslash:321,Lslashsmall:63225,Lsmall:63340,M:77,MBsquare:13190,Macron:63184,Macronsmall:63407, +Macute:7742,Mcircle:9410,Mdotaccent:7744,Mdotbelow:7746,Menarmenian:1348,Mmonospace:65325,Msmall:63341,Mturned:412,Mu:924,N:78,NJ:458,Nacute:323,Ncaron:327,Ncedilla:325,Ncircle:9411,Ncircumflexbelow:7754,Ncommaaccent:325,Ndotaccent:7748,Ndotbelow:7750,Nhookleft:413,Nineroman:8552,Nj:459,Njecyrillic:1034,Nlinebelow:7752,Nmonospace:65326,Nowarmenian:1350,Nsmall:63342,Ntilde:209,Ntildesmall:63473,Nu:925,O:79,OE:338,OEsmall:63226,Oacute:211,Oacutesmall:63475,Obarredcyrillic:1256,Obarreddieresiscyrillic:1258, +Obreve:334,Ocaron:465,Ocenteredtilde:415,Ocircle:9412,Ocircumflex:212,Ocircumflexacute:7888,Ocircumflexdotbelow:7896,Ocircumflexgrave:7890,Ocircumflexhookabove:7892,Ocircumflexsmall:63476,Ocircumflextilde:7894,Ocyrillic:1054,Odblacute:336,Odblgrave:524,Odieresis:214,Odieresiscyrillic:1254,Odieresissmall:63478,Odotbelow:7884,Ogoneksmall:63227,Ograve:210,Ogravesmall:63474,Oharmenian:1365,Ohm:8486,Ohookabove:7886,Ohorn:416,Ohornacute:7898,Ohorndotbelow:7906,Ohorngrave:7900,Ohornhookabove:7902,Ohorntilde:7904, +Ohungarumlaut:336,Oi:418,Oinvertedbreve:526,Omacron:332,Omacronacute:7762,Omacrongrave:7760,Omega:8486,Omegacyrillic:1120,Omegagreek:937,Omegaroundcyrillic:1146,Omegatitlocyrillic:1148,Omegatonos:911,Omicron:927,Omicrontonos:908,Omonospace:65327,Oneroman:8544,Oogonek:490,Oogonekmacron:492,Oopen:390,Oslash:216,Oslashacute:510,Oslashsmall:63480,Osmall:63343,Ostrokeacute:510,Otcyrillic:1150,Otilde:213,Otildeacute:7756,Otildedieresis:7758,Otildesmall:63477,P:80,Pacute:7764,Pcircle:9413,Pdotaccent:7766, +Pecyrillic:1055,Peharmenian:1354,Pemiddlehookcyrillic:1190,Phi:934,Phook:420,Pi:928,Piwrarmenian:1363,Pmonospace:65328,Psi:936,Psicyrillic:1136,Psmall:63344,Q:81,Qcircle:9414,Qmonospace:65329,Qsmall:63345,R:82,Raarmenian:1356,Racute:340,Rcaron:344,Rcedilla:342,Rcircle:9415,Rcommaaccent:342,Rdblgrave:528,Rdotaccent:7768,Rdotbelow:7770,Rdotbelowmacron:7772,Reharmenian:1360,Rfraktur:8476,Rho:929,Ringsmall:63228,Rinvertedbreve:530,Rlinebelow:7774,Rmonospace:65330,Rsmall:63346,Rsmallinverted:641,Rsmallinvertedsuperior:694, +S:83,SF010000:9484,SF020000:9492,SF030000:9488,SF040000:9496,SF050000:9532,SF060000:9516,SF070000:9524,SF080000:9500,SF090000:9508,SF100000:9472,SF110000:9474,SF190000:9569,SF200000:9570,SF210000:9558,SF220000:9557,SF230000:9571,SF240000:9553,SF250000:9559,SF260000:9565,SF270000:9564,SF280000:9563,SF360000:9566,SF370000:9567,SF380000:9562,SF390000:9556,SF400000:9577,SF410000:9574,SF420000:9568,SF430000:9552,SF440000:9580,SF450000:9575,SF460000:9576,SF470000:9572,SF480000:9573,SF490000:9561,SF500000:9560, +SF510000:9554,SF520000:9555,SF530000:9579,SF540000:9578,Sacute:346,Sacutedotaccent:7780,Sampigreek:992,Scaron:352,Scarondotaccent:7782,Scaronsmall:63229,Scedilla:350,Schwa:399,Schwacyrillic:1240,Schwadieresiscyrillic:1242,Scircle:9416,Scircumflex:348,Scommaaccent:536,Sdotaccent:7776,Sdotbelow:7778,Sdotbelowdotaccent:7784,Seharmenian:1357,Sevenroman:8550,Shaarmenian:1351,Shacyrillic:1064,Shchacyrillic:1065,Sheicoptic:994,Shhacyrillic:1210,Shimacoptic:1004,Sigma:931,Sixroman:8549,Smonospace:65331,Softsigncyrillic:1068, +Ssmall:63347,Stigmagreek:986,T:84,Tau:932,Tbar:358,Tcaron:356,Tcedilla:354,Tcircle:9417,Tcircumflexbelow:7792,Tcommaaccent:354,Tdotaccent:7786,Tdotbelow:7788,Tecyrillic:1058,Tedescendercyrillic:1196,Tenroman:8553,Tetsecyrillic:1204,Theta:920,Thook:428,Thorn:222,Thornsmall:63486,Threeroman:8546,Tildesmall:63230,Tiwnarmenian:1359,Tlinebelow:7790,Tmonospace:65332,Toarmenian:1337,Tonefive:444,Tonesix:388,Tonetwo:423,Tretroflexhook:430,Tsecyrillic:1062,Tshecyrillic:1035,Tsmall:63348,Twelveroman:8555,Tworoman:8545, +U:85,Uacute:218,Uacutesmall:63482,Ubreve:364,Ucaron:467,Ucircle:9418,Ucircumflex:219,Ucircumflexbelow:7798,Ucircumflexsmall:63483,Ucyrillic:1059,Udblacute:368,Udblgrave:532,Udieresis:220,Udieresisacute:471,Udieresisbelow:7794,Udieresiscaron:473,Udieresiscyrillic:1264,Udieresisgrave:475,Udieresismacron:469,Udieresissmall:63484,Udotbelow:7908,Ugrave:217,Ugravesmall:63481,Uhookabove:7910,Uhorn:431,Uhornacute:7912,Uhorndotbelow:7920,Uhorngrave:7914,Uhornhookabove:7916,Uhorntilde:7918,Uhungarumlaut:368, +Uhungarumlautcyrillic:1266,Uinvertedbreve:534,Ukcyrillic:1144,Umacron:362,Umacroncyrillic:1262,Umacrondieresis:7802,Umonospace:65333,Uogonek:370,Upsilon:933,Upsilon1:978,Upsilonacutehooksymbolgreek:979,Upsilonafrican:433,Upsilondieresis:939,Upsilondieresishooksymbolgreek:980,Upsilonhooksymbol:978,Upsilontonos:910,Uring:366,Ushortcyrillic:1038,Usmall:63349,Ustraightcyrillic:1198,Ustraightstrokecyrillic:1200,Utilde:360,Utildeacute:7800,Utildebelow:7796,V:86,Vcircle:9419,Vdotbelow:7806,Vecyrillic:1042, +Vewarmenian:1358,Vhook:434,Vmonospace:65334,Voarmenian:1352,Vsmall:63350,Vtilde:7804,W:87,Wacute:7810,Wcircle:9420,Wcircumflex:372,Wdieresis:7812,Wdotaccent:7814,Wdotbelow:7816,Wgrave:7808,Wmonospace:65335,Wsmall:63351,X:88,Xcircle:9421,Xdieresis:7820,Xdotaccent:7818,Xeharmenian:1341,Xi:926,Xmonospace:65336,Xsmall:63352,Y:89,Yacute:221,Yacutesmall:63485,Yatcyrillic:1122,Ycircle:9422,Ycircumflex:374,Ydieresis:376,Ydieresissmall:63487,Ydotaccent:7822,Ydotbelow:7924,Yericyrillic:1067,Yerudieresiscyrillic:1272, +Ygrave:7922,Yhook:435,Yhookabove:7926,Yiarmenian:1349,Yicyrillic:1031,Yiwnarmenian:1362,Ymonospace:65337,Ysmall:63353,Ytilde:7928,Yusbigcyrillic:1130,Yusbigiotifiedcyrillic:1132,Yuslittlecyrillic:1126,Yuslittleiotifiedcyrillic:1128,Z:90,Zaarmenian:1334,Zacute:377,Zcaron:381,Zcaronsmall:63231,Zcircle:9423,Zcircumflex:7824,Zdot:379,Zdotaccent:379,Zdotbelow:7826,Zecyrillic:1047,Zedescendercyrillic:1176,Zedieresiscyrillic:1246,Zeta:918,Zhearmenian:1338,Zhebrevecyrillic:1217,Zhecyrillic:1046,Zhedescendercyrillic:1174, +Zhedieresiscyrillic:1244,Zlinebelow:7828,Zmonospace:65338,Zsmall:63354,Zstroke:437,a:97,aabengali:2438,aacute:225,aadeva:2310,aagujarati:2694,aagurmukhi:2566,aamatragurmukhi:2622,aarusquare:13059,aavowelsignbengali:2494,aavowelsigndeva:2366,aavowelsigngujarati:2750,abbreviationmarkarmenian:1375,abbreviationsigndeva:2416,abengali:2437,abopomofo:12570,abreve:259,abreveacute:7855,abrevecyrillic:1233,abrevedotbelow:7863,abrevegrave:7857,abrevehookabove:7859,abrevetilde:7861,acaron:462,acircle:9424,acircumflex:226, +acircumflexacute:7845,acircumflexdotbelow:7853,acircumflexgrave:7847,acircumflexhookabove:7849,acircumflextilde:7851,acute:180,acutebelowcmb:791,acutecmb:769,acutecomb:769,acutedeva:2388,acutelowmod:719,acutetonecmb:833,acyrillic:1072,adblgrave:513,addakgurmukhi:2673,adeva:2309,adieresis:228,adieresiscyrillic:1235,adieresismacron:479,adotbelow:7841,adotmacron:481,ae:230,aeacute:509,aekorean:12624,aemacron:483,afii00208:8213,afii08941:8356,afii10017:1040,afii10018:1041,afii10019:1042,afii10020:1043, +afii10021:1044,afii10022:1045,afii10023:1025,afii10024:1046,afii10025:1047,afii10026:1048,afii10027:1049,afii10028:1050,afii10029:1051,afii10030:1052,afii10031:1053,afii10032:1054,afii10033:1055,afii10034:1056,afii10035:1057,afii10036:1058,afii10037:1059,afii10038:1060,afii10039:1061,afii10040:1062,afii10041:1063,afii10042:1064,afii10043:1065,afii10044:1066,afii10045:1067,afii10046:1068,afii10047:1069,afii10048:1070,afii10049:1071,afii10050:1168,afii10051:1026,afii10052:1027,afii10053:1028,afii10054:1029, +afii10055:1030,afii10056:1031,afii10057:1032,afii10058:1033,afii10059:1034,afii10060:1035,afii10061:1036,afii10062:1038,afii10063:63172,afii10064:63173,afii10065:1072,afii10066:1073,afii10067:1074,afii10068:1075,afii10069:1076,afii10070:1077,afii10071:1105,afii10072:1078,afii10073:1079,afii10074:1080,afii10075:1081,afii10076:1082,afii10077:1083,afii10078:1084,afii10079:1085,afii10080:1086,afii10081:1087,afii10082:1088,afii10083:1089,afii10084:1090,afii10085:1091,afii10086:1092,afii10087:1093,afii10088:1094, +afii10089:1095,afii10090:1096,afii10091:1097,afii10092:1098,afii10093:1099,afii10094:1100,afii10095:1101,afii10096:1102,afii10097:1103,afii10098:1169,afii10099:1106,afii10100:1107,afii10101:1108,afii10102:1109,afii10103:1110,afii10104:1111,afii10105:1112,afii10106:1113,afii10107:1114,afii10108:1115,afii10109:1116,afii10110:1118,afii10145:1039,afii10146:1122,afii10147:1138,afii10148:1140,afii10192:63174,afii10193:1119,afii10194:1123,afii10195:1139,afii10196:1141,afii10831:63175,afii10832:63176,afii10846:1241, +afii299:8206,afii300:8207,afii301:8205,afii57381:1642,afii57388:1548,afii57392:1632,afii57393:1633,afii57394:1634,afii57395:1635,afii57396:1636,afii57397:1637,afii57398:1638,afii57399:1639,afii57400:1640,afii57401:1641,afii57403:1563,afii57407:1567,afii57409:1569,afii57410:1570,afii57411:1571,afii57412:1572,afii57413:1573,afii57414:1574,afii57415:1575,afii57416:1576,afii57417:1577,afii57418:1578,afii57419:1579,afii57420:1580,afii57421:1581,afii57422:1582,afii57423:1583,afii57424:1584,afii57425:1585, +afii57426:1586,afii57427:1587,afii57428:1588,afii57429:1589,afii57430:1590,afii57431:1591,afii57432:1592,afii57433:1593,afii57434:1594,afii57440:1600,afii57441:1601,afii57442:1602,afii57443:1603,afii57444:1604,afii57445:1605,afii57446:1606,afii57448:1608,afii57449:1609,afii57450:1610,afii57451:1611,afii57452:1612,afii57453:1613,afii57454:1614,afii57455:1615,afii57456:1616,afii57457:1617,afii57458:1618,afii57470:1607,afii57505:1700,afii57506:1662,afii57507:1670,afii57508:1688,afii57509:1711,afii57511:1657, +afii57512:1672,afii57513:1681,afii57514:1722,afii57519:1746,afii57534:1749,afii57636:8362,afii57645:1470,afii57658:1475,afii57664:1488,afii57665:1489,afii57666:1490,afii57667:1491,afii57668:1492,afii57669:1493,afii57670:1494,afii57671:1495,afii57672:1496,afii57673:1497,afii57674:1498,afii57675:1499,afii57676:1500,afii57677:1501,afii57678:1502,afii57679:1503,afii57680:1504,afii57681:1505,afii57682:1506,afii57683:1507,afii57684:1508,afii57685:1509,afii57686:1510,afii57687:1511,afii57688:1512,afii57689:1513, +afii57690:1514,afii57694:64298,afii57695:64299,afii57700:64331,afii57705:64287,afii57716:1520,afii57717:1521,afii57718:1522,afii57723:64309,afii57793:1460,afii57794:1461,afii57795:1462,afii57796:1467,afii57797:1464,afii57798:1463,afii57799:1456,afii57800:1458,afii57801:1457,afii57802:1459,afii57803:1474,afii57804:1473,afii57806:1465,afii57807:1468,afii57839:1469,afii57841:1471,afii57842:1472,afii57929:700,afii61248:8453,afii61289:8467,afii61352:8470,afii61573:8236,afii61574:8237,afii61575:8238,afii61664:8204, +afii63167:1645,afii64937:701,agrave:224,agujarati:2693,agurmukhi:2565,ahiragana:12354,ahookabove:7843,aibengali:2448,aibopomofo:12574,aideva:2320,aiecyrillic:1237,aigujarati:2704,aigurmukhi:2576,aimatragurmukhi:2632,ainarabic:1593,ainfinalarabic:65226,aininitialarabic:65227,ainmedialarabic:65228,ainvertedbreve:515,aivowelsignbengali:2504,aivowelsigndeva:2376,aivowelsigngujarati:2760,akatakana:12450,akatakanahalfwidth:65393,akorean:12623,alef:1488,alefarabic:1575,alefdageshhebrew:64304,aleffinalarabic:65166, +alefhamzaabovearabic:1571,alefhamzaabovefinalarabic:65156,alefhamzabelowarabic:1573,alefhamzabelowfinalarabic:65160,alefhebrew:1488,aleflamedhebrew:64335,alefmaddaabovearabic:1570,alefmaddaabovefinalarabic:65154,alefmaksuraarabic:1609,alefmaksurafinalarabic:65264,alefmaksurainitialarabic:65267,alefmaksuramedialarabic:65268,alefpatahhebrew:64302,alefqamatshebrew:64303,aleph:8501,allequal:8780,alpha:945,alphatonos:940,amacron:257,amonospace:65345,ampersand:38,ampersandmonospace:65286,ampersandsmall:63270, +amsquare:13250,anbopomofo:12578,angbopomofo:12580,angbracketleft:12296,angbracketright:12297,angkhankhuthai:3674,angle:8736,anglebracketleft:12296,anglebracketleftvertical:65087,anglebracketright:12297,anglebracketrightvertical:65088,angleleft:9001,angleright:9002,angstrom:8491,anoteleia:903,anudattadeva:2386,anusvarabengali:2434,anusvaradeva:2306,anusvaragujarati:2690,aogonek:261,apaatosquare:13056,aparen:9372,apostrophearmenian:1370,apostrophemod:700,apple:63743,approaches:8784,approxequal:8776, +approxequalorimage:8786,approximatelyequal:8773,araeaekorean:12686,araeakorean:12685,arc:8978,arighthalfring:7834,aring:229,aringacute:507,aringbelow:7681,arrowboth:8596,arrowdashdown:8675,arrowdashleft:8672,arrowdashright:8674,arrowdashup:8673,arrowdblboth:8660,arrowdbldown:8659,arrowdblleft:8656,arrowdblright:8658,arrowdblup:8657,arrowdown:8595,arrowdownleft:8601,arrowdownright:8600,arrowdownwhite:8681,arrowheaddownmod:709,arrowheadleftmod:706,arrowheadrightmod:707,arrowheadupmod:708,arrowhorizex:63719, +arrowleft:8592,arrowleftdbl:8656,arrowleftdblstroke:8653,arrowleftoverright:8646,arrowleftwhite:8678,arrowright:8594,arrowrightdblstroke:8655,arrowrightheavy:10142,arrowrightoverleft:8644,arrowrightwhite:8680,arrowtableft:8676,arrowtabright:8677,arrowup:8593,arrowupdn:8597,arrowupdnbse:8616,arrowupdownbase:8616,arrowupleft:8598,arrowupleftofdown:8645,arrowupright:8599,arrowupwhite:8679,arrowvertex:63718,asciicircum:94,asciicircummonospace:65342,asciitilde:126,asciitildemonospace:65374,ascript:593, +ascriptturned:594,asmallhiragana:12353,asmallkatakana:12449,asmallkatakanahalfwidth:65383,asterisk:42,asteriskaltonearabic:1645,asteriskarabic:1645,asteriskmath:8727,asteriskmonospace:65290,asterisksmall:65121,asterism:8258,asuperior:63209,asymptoticallyequal:8771,at:64,atilde:227,atmonospace:65312,atsmall:65131,aturned:592,aubengali:2452,aubopomofo:12576,audeva:2324,augujarati:2708,augurmukhi:2580,aulengthmarkbengali:2519,aumatragurmukhi:2636,auvowelsignbengali:2508,auvowelsigndeva:2380,auvowelsigngujarati:2764, +avagrahadeva:2365,aybarmenian:1377,ayin:1506,ayinaltonehebrew:64288,ayinhebrew:1506,b:98,babengali:2476,backslash:92,backslashmonospace:65340,badeva:2348,bagujarati:2732,bagurmukhi:2604,bahiragana:12400,bahtthai:3647,bakatakana:12496,bar:124,barmonospace:65372,bbopomofo:12549,bcircle:9425,bdotaccent:7683,bdotbelow:7685,beamedsixteenthnotes:9836,because:8757,becyrillic:1073,beharabic:1576,behfinalarabic:65168,behinitialarabic:65169,behiragana:12409,behmedialarabic:65170,behmeeminitialarabic:64671, +behmeemisolatedarabic:64520,behnoonfinalarabic:64621,bekatakana:12505,benarmenian:1378,bet:1489,beta:946,betasymbolgreek:976,betdagesh:64305,betdageshhebrew:64305,bethebrew:1489,betrafehebrew:64332,bhabengali:2477,bhadeva:2349,bhagujarati:2733,bhagurmukhi:2605,bhook:595,bihiragana:12403,bikatakana:12499,bilabialclick:664,bindigurmukhi:2562,birusquare:13105,blackcircle:9679,blackdiamond:9670,blackdownpointingtriangle:9660,blackleftpointingpointer:9668,blackleftpointingtriangle:9664,blacklenticularbracketleft:12304, +blacklenticularbracketleftvertical:65083,blacklenticularbracketright:12305,blacklenticularbracketrightvertical:65084,blacklowerlefttriangle:9699,blacklowerrighttriangle:9698,blackrectangle:9644,blackrightpointingpointer:9658,blackrightpointingtriangle:9654,blacksmallsquare:9642,blacksmilingface:9787,blacksquare:9632,blackstar:9733,blackupperlefttriangle:9700,blackupperrighttriangle:9701,blackuppointingsmalltriangle:9652,blackuppointingtriangle:9650,blank:9251,blinebelow:7687,block:9608,bmonospace:65346, +bobaimaithai:3610,bohiragana:12412,bokatakana:12508,bparen:9373,bqsquare:13251,braceex:63732,braceleft:123,braceleftbt:63731,braceleftmid:63730,braceleftmonospace:65371,braceleftsmall:65115,bracelefttp:63729,braceleftvertical:65079,braceright:125,bracerightbt:63742,bracerightmid:63741,bracerightmonospace:65373,bracerightsmall:65116,bracerighttp:63740,bracerightvertical:65080,bracketleft:91,bracketleftbt:63728,bracketleftex:63727,bracketleftmonospace:65339,bracketlefttp:63726,bracketright:93,bracketrightbt:63739, +bracketrightex:63738,bracketrightmonospace:65341,bracketrighttp:63737,breve:728,brevebelowcmb:814,brevecmb:774,breveinvertedbelowcmb:815,breveinvertedcmb:785,breveinverteddoublecmb:865,bridgebelowcmb:810,bridgeinvertedbelowcmb:826,brokenbar:166,bstroke:384,bsuperior:63210,btopbar:387,buhiragana:12406,bukatakana:12502,bullet:8226,bulletinverse:9688,bulletoperator:8729,bullseye:9678,c:99,caarmenian:1390,cabengali:2458,cacute:263,cadeva:2330,cagujarati:2714,cagurmukhi:2586,calsquare:13192,candrabindubengali:2433, +candrabinducmb:784,candrabindudeva:2305,candrabindugujarati:2689,capslock:8682,careof:8453,caron:711,caronbelowcmb:812,caroncmb:780,carriagereturn:8629,cbopomofo:12568,ccaron:269,ccedilla:231,ccedillaacute:7689,ccircle:9426,ccircumflex:265,ccurl:597,cdot:267,cdotaccent:267,cdsquare:13253,cedilla:184,cedillacmb:807,cent:162,centigrade:8451,centinferior:63199,centmonospace:65504,centoldstyle:63394,centsuperior:63200,chaarmenian:1401,chabengali:2459,chadeva:2331,chagujarati:2715,chagurmukhi:2587,chbopomofo:12564, +cheabkhasiancyrillic:1213,checkmark:10003,checyrillic:1095,chedescenderabkhasiancyrillic:1215,chedescendercyrillic:1207,chedieresiscyrillic:1269,cheharmenian:1395,chekhakassiancyrillic:1228,cheverticalstrokecyrillic:1209,chi:967,chieuchacirclekorean:12919,chieuchaparenkorean:12823,chieuchcirclekorean:12905,chieuchkorean:12618,chieuchparenkorean:12809,chochangthai:3594,chochanthai:3592,chochingthai:3593,chochoethai:3596,chook:392,cieucacirclekorean:12918,cieucaparenkorean:12822,cieuccirclekorean:12904, +cieuckorean:12616,cieucparenkorean:12808,cieucuparenkorean:12828,circle:9675,circlecopyrt:169,circlemultiply:8855,circleot:8857,circleplus:8853,circlepostalmark:12342,circlewithlefthalfblack:9680,circlewithrighthalfblack:9681,circumflex:710,circumflexbelowcmb:813,circumflexcmb:770,clear:8999,clickalveolar:450,clickdental:448,clicklateral:449,clickretroflex:451,club:9827,clubsuitblack:9827,clubsuitwhite:9831,cmcubedsquare:13220,cmonospace:65347,cmsquaredsquare:13216,coarmenian:1409,colon:58,colonmonetary:8353, +colonmonospace:65306,colonsign:8353,colonsmall:65109,colontriangularhalfmod:721,colontriangularmod:720,comma:44,commaabovecmb:787,commaaboverightcmb:789,commaaccent:63171,commaarabic:1548,commaarmenian:1373,commainferior:63201,commamonospace:65292,commareversedabovecmb:788,commareversedmod:701,commasmall:65104,commasuperior:63202,commaturnedabovecmb:786,commaturnedmod:699,compass:9788,congruent:8773,contourintegral:8750,control:8963,controlACK:6,controlBEL:7,controlBS:8,controlCAN:24,controlCR:13, +controlDC1:17,controlDC2:18,controlDC3:19,controlDC4:20,controlDEL:127,controlDLE:16,controlEM:25,controlENQ:5,controlEOT:4,controlESC:27,controlETB:23,controlETX:3,controlFF:12,controlFS:28,controlGS:29,controlHT:9,controlLF:10,controlNAK:21,controlRS:30,controlSI:15,controlSO:14,controlSOT:2,controlSTX:1,controlSUB:26,controlSYN:22,controlUS:31,controlVT:11,copyright:169,copyrightsans:63721,copyrightserif:63193,cornerbracketleft:12300,cornerbracketlefthalfwidth:65378,cornerbracketleftvertical:65089, +cornerbracketright:12301,cornerbracketrighthalfwidth:65379,cornerbracketrightvertical:65090,corporationsquare:13183,cosquare:13255,coverkgsquare:13254,cparen:9374,cruzeiro:8354,cstretched:663,curlyand:8911,curlyor:8910,currency:164,cyrBreve:63185,cyrFlex:63186,cyrbreve:63188,cyrflex:63189,d:100,daarmenian:1380,dabengali:2470,dadarabic:1590,dadeva:2342,dadfinalarabic:65214,dadinitialarabic:65215,dadmedialarabic:65216,dagesh:1468,dageshhebrew:1468,dagger:8224,daggerdbl:8225,dagujarati:2726,dagurmukhi:2598, +dahiragana:12384,dakatakana:12480,dalarabic:1583,dalet:1491,daletdagesh:64307,daletdageshhebrew:64307,dalethebrew:1491,dalfinalarabic:65194,dammaarabic:1615,dammalowarabic:1615,dammatanaltonearabic:1612,dammatanarabic:1612,danda:2404,dargahebrew:1447,dargalefthebrew:1447,dasiapneumatacyrilliccmb:1157,dblGrave:63187,dblanglebracketleft:12298,dblanglebracketleftvertical:65085,dblanglebracketright:12299,dblanglebracketrightvertical:65086,dblarchinvertedbelowcmb:811,dblarrowleft:8660,dblarrowright:8658, +dbldanda:2405,dblgrave:63190,dblgravecmb:783,dblintegral:8748,dbllowline:8215,dbllowlinecmb:819,dbloverlinecmb:831,dblprimemod:698,dblverticalbar:8214,dblverticallineabovecmb:782,dbopomofo:12553,dbsquare:13256,dcaron:271,dcedilla:7697,dcircle:9427,dcircumflexbelow:7699,dcroat:273,ddabengali:2465,ddadeva:2337,ddagujarati:2721,ddagurmukhi:2593,ddalarabic:1672,ddalfinalarabic:64393,dddhadeva:2396,ddhabengali:2466,ddhadeva:2338,ddhagujarati:2722,ddhagurmukhi:2594,ddotaccent:7691,ddotbelow:7693,decimalseparatorarabic:1643, +decimalseparatorpersian:1643,decyrillic:1076,degree:176,dehihebrew:1453,dehiragana:12391,deicoptic:1007,dekatakana:12487,deleteleft:9003,deleteright:8998,delta:948,deltaturned:397,denominatorminusonenumeratorbengali:2552,dezh:676,dhabengali:2471,dhadeva:2343,dhagujarati:2727,dhagurmukhi:2599,dhook:599,dialytikatonos:901,dialytikatonoscmb:836,diamond:9830,diamondsuitwhite:9826,dieresis:168,dieresisacute:63191,dieresisbelowcmb:804,dieresiscmb:776,dieresisgrave:63192,dieresistonos:901,dihiragana:12386, +dikatakana:12482,dittomark:12291,divide:247,divides:8739,divisionslash:8725,djecyrillic:1106,dkshade:9619,dlinebelow:7695,dlsquare:13207,dmacron:273,dmonospace:65348,dnblock:9604,dochadathai:3598,dodekthai:3604,dohiragana:12393,dokatakana:12489,dollar:36,dollarinferior:63203,dollarmonospace:65284,dollaroldstyle:63268,dollarsmall:65129,dollarsuperior:63204,dong:8363,dorusquare:13094,dotaccent:729,dotaccentcmb:775,dotbelowcmb:803,dotbelowcomb:803,dotkatakana:12539,dotlessi:305,dotlessj:63166,dotlessjstrokehook:644, +dotmath:8901,dottedcircle:9676,doubleyodpatah:64287,doubleyodpatahhebrew:64287,downtackbelowcmb:798,downtackmod:725,dparen:9375,dsuperior:63211,dtail:598,dtopbar:396,duhiragana:12389,dukatakana:12485,dz:499,dzaltone:675,dzcaron:454,dzcurl:677,dzeabkhasiancyrillic:1249,dzecyrillic:1109,dzhecyrillic:1119,e:101,eacute:233,earth:9793,ebengali:2447,ebopomofo:12572,ebreve:277,ecandradeva:2317,ecandragujarati:2701,ecandravowelsigndeva:2373,ecandravowelsigngujarati:2757,ecaron:283,ecedillabreve:7709,echarmenian:1381, +echyiwnarmenian:1415,ecircle:9428,ecircumflex:234,ecircumflexacute:7871,ecircumflexbelow:7705,ecircumflexdotbelow:7879,ecircumflexgrave:7873,ecircumflexhookabove:7875,ecircumflextilde:7877,ecyrillic:1108,edblgrave:517,edeva:2319,edieresis:235,edot:279,edotaccent:279,edotbelow:7865,eegurmukhi:2575,eematragurmukhi:2631,efcyrillic:1092,egrave:232,egujarati:2703,eharmenian:1383,ehbopomofo:12573,ehiragana:12360,ehookabove:7867,eibopomofo:12575,eight:56,eightarabic:1640,eightbengali:2542,eightcircle:9319, +eightcircleinversesansserif:10129,eightdeva:2414,eighteencircle:9329,eighteenparen:9349,eighteenperiod:9369,eightgujarati:2798,eightgurmukhi:2670,eighthackarabic:1640,eighthangzhou:12328,eighthnotebeamed:9835,eightideographicparen:12839,eightinferior:8328,eightmonospace:65304,eightoldstyle:63288,eightparen:9339,eightperiod:9359,eightpersian:1784,eightroman:8567,eightsuperior:8312,eightthai:3672,einvertedbreve:519,eiotifiedcyrillic:1125,ekatakana:12456,ekatakanahalfwidth:65396,ekonkargurmukhi:2676, +ekorean:12628,elcyrillic:1083,element:8712,elevencircle:9322,elevenparen:9342,elevenperiod:9362,elevenroman:8570,ellipsis:8230,ellipsisvertical:8942,emacron:275,emacronacute:7703,emacrongrave:7701,emcyrillic:1084,emdash:8212,emdashvertical:65073,emonospace:65349,emphasismarkarmenian:1371,emptyset:8709,enbopomofo:12579,encyrillic:1085,endash:8211,endashvertical:65074,endescendercyrillic:1187,eng:331,engbopomofo:12581,enghecyrillic:1189,enhookcyrillic:1224,enspace:8194,eogonek:281,eokorean:12627,eopen:603, +eopenclosed:666,eopenreversed:604,eopenreversedclosed:606,eopenreversedhook:605,eparen:9376,epsilon:949,epsilontonos:941,equal:61,equalmonospace:65309,equalsmall:65126,equalsuperior:8316,equivalence:8801,erbopomofo:12582,ercyrillic:1088,ereversed:600,ereversedcyrillic:1101,escyrillic:1089,esdescendercyrillic:1195,esh:643,eshcurl:646,eshortdeva:2318,eshortvowelsigndeva:2374,eshreversedloop:426,eshsquatreversed:645,esmallhiragana:12359,esmallkatakana:12455,esmallkatakanahalfwidth:65386,estimated:8494, +esuperior:63212,eta:951,etarmenian:1384,etatonos:942,eth:240,etilde:7869,etildebelow:7707,etnahtafoukhhebrew:1425,etnahtafoukhlefthebrew:1425,etnahtahebrew:1425,etnahtalefthebrew:1425,eturned:477,eukorean:12641,euro:8364,evowelsignbengali:2503,evowelsigndeva:2375,evowelsigngujarati:2759,exclam:33,exclamarmenian:1372,exclamdbl:8252,exclamdown:161,exclamdownsmall:63393,exclammonospace:65281,exclamsmall:63265,existential:8707,ezh:658,ezhcaron:495,ezhcurl:659,ezhreversed:441,ezhtail:442,f:102,fadeva:2398, +fagurmukhi:2654,fahrenheit:8457,fathaarabic:1614,fathalowarabic:1614,fathatanarabic:1611,fbopomofo:12552,fcircle:9429,fdotaccent:7711,feharabic:1601,feharmenian:1414,fehfinalarabic:65234,fehinitialarabic:65235,fehmedialarabic:65236,feicoptic:997,female:9792,ff:64256,ffi:64259,ffl:64260,fi:64257,fifteencircle:9326,fifteenparen:9346,fifteenperiod:9366,figuredash:8210,filledbox:9632,filledrect:9644,finalkaf:1498,finalkafdagesh:64314,finalkafdageshhebrew:64314,finalkafhebrew:1498,finalmem:1501,finalmemhebrew:1501, +finalnun:1503,finalnunhebrew:1503,finalpe:1507,finalpehebrew:1507,finaltsadi:1509,finaltsadihebrew:1509,firsttonechinese:713,fisheye:9673,fitacyrillic:1139,five:53,fivearabic:1637,fivebengali:2539,fivecircle:9316,fivecircleinversesansserif:10126,fivedeva:2411,fiveeighths:8541,fivegujarati:2795,fivegurmukhi:2667,fivehackarabic:1637,fivehangzhou:12325,fiveideographicparen:12836,fiveinferior:8325,fivemonospace:65301,fiveoldstyle:63285,fiveparen:9336,fiveperiod:9356,fivepersian:1781,fiveroman:8564,fivesuperior:8309, +fivethai:3669,fl:64258,florin:402,fmonospace:65350,fmsquare:13209,fofanthai:3615,fofathai:3613,fongmanthai:3663,forall:8704,four:52,fourarabic:1636,fourbengali:2538,fourcircle:9315,fourcircleinversesansserif:10125,fourdeva:2410,fourgujarati:2794,fourgurmukhi:2666,fourhackarabic:1636,fourhangzhou:12324,fourideographicparen:12835,fourinferior:8324,fourmonospace:65300,fournumeratorbengali:2551,fouroldstyle:63284,fourparen:9335,fourperiod:9355,fourpersian:1780,fourroman:8563,foursuperior:8308,fourteencircle:9325, +fourteenparen:9345,fourteenperiod:9365,fourthai:3668,fourthtonechinese:715,fparen:9377,fraction:8260,franc:8355,g:103,gabengali:2455,gacute:501,gadeva:2327,gafarabic:1711,gaffinalarabic:64403,gafinitialarabic:64404,gafmedialarabic:64405,gagujarati:2711,gagurmukhi:2583,gahiragana:12364,gakatakana:12460,gamma:947,gammalatinsmall:611,gammasuperior:736,gangiacoptic:1003,gbopomofo:12557,gbreve:287,gcaron:487,gcedilla:291,gcircle:9430,gcircumflex:285,gcommaaccent:291,gdot:289,gdotaccent:289,gecyrillic:1075, +gehiragana:12370,gekatakana:12466,geometricallyequal:8785,gereshaccenthebrew:1436,gereshhebrew:1523,gereshmuqdamhebrew:1437,germandbls:223,gershayimaccenthebrew:1438,gershayimhebrew:1524,getamark:12307,ghabengali:2456,ghadarmenian:1394,ghadeva:2328,ghagujarati:2712,ghagurmukhi:2584,ghainarabic:1594,ghainfinalarabic:65230,ghaininitialarabic:65231,ghainmedialarabic:65232,ghemiddlehookcyrillic:1173,ghestrokecyrillic:1171,gheupturncyrillic:1169,ghhadeva:2394,ghhagurmukhi:2650,ghook:608,ghzsquare:13203, +gihiragana:12366,gikatakana:12462,gimarmenian:1379,gimel:1490,gimeldagesh:64306,gimeldageshhebrew:64306,gimelhebrew:1490,gjecyrillic:1107,glottalinvertedstroke:446,glottalstop:660,glottalstopinverted:662,glottalstopmod:704,glottalstopreversed:661,glottalstopreversedmod:705,glottalstopreversedsuperior:740,glottalstopstroke:673,glottalstopstrokereversed:674,gmacron:7713,gmonospace:65351,gohiragana:12372,gokatakana:12468,gparen:9378,gpasquare:13228,gradient:8711,grave:96,gravebelowcmb:790,gravecmb:768, +gravecomb:768,gravedeva:2387,gravelowmod:718,gravemonospace:65344,gravetonecmb:832,greater:62,greaterequal:8805,greaterequalorless:8923,greatermonospace:65310,greaterorequivalent:8819,greaterorless:8823,greateroverequal:8807,greatersmall:65125,gscript:609,gstroke:485,guhiragana:12368,guillemotleft:171,guillemotright:187,guilsinglleft:8249,guilsinglright:8250,gukatakana:12464,guramusquare:13080,gysquare:13257,h:104,haabkhasiancyrillic:1193,haaltonearabic:1729,habengali:2489,hadescendercyrillic:1203, +hadeva:2361,hagujarati:2745,hagurmukhi:2617,haharabic:1581,hahfinalarabic:65186,hahinitialarabic:65187,hahiragana:12399,hahmedialarabic:65188,haitusquare:13098,hakatakana:12495,hakatakanahalfwidth:65418,halantgurmukhi:2637,hamzaarabic:1569,hamzalowarabic:1569,hangulfiller:12644,hardsigncyrillic:1098,harpoonleftbarbup:8636,harpoonrightbarbup:8640,hasquare:13258,hatafpatah:1458,hatafpatah16:1458,hatafpatah23:1458,hatafpatah2f:1458,hatafpatahhebrew:1458,hatafpatahnarrowhebrew:1458,hatafpatahquarterhebrew:1458, +hatafpatahwidehebrew:1458,hatafqamats:1459,hatafqamats1b:1459,hatafqamats28:1459,hatafqamats34:1459,hatafqamatshebrew:1459,hatafqamatsnarrowhebrew:1459,hatafqamatsquarterhebrew:1459,hatafqamatswidehebrew:1459,hatafsegol:1457,hatafsegol17:1457,hatafsegol24:1457,hatafsegol30:1457,hatafsegolhebrew:1457,hatafsegolnarrowhebrew:1457,hatafsegolquarterhebrew:1457,hatafsegolwidehebrew:1457,hbar:295,hbopomofo:12559,hbrevebelow:7723,hcedilla:7721,hcircle:9431,hcircumflex:293,hdieresis:7719,hdotaccent:7715,hdotbelow:7717, +he:1492,heart:9829,heartsuitblack:9829,heartsuitwhite:9825,hedagesh:64308,hedageshhebrew:64308,hehaltonearabic:1729,heharabic:1607,hehebrew:1492,hehfinalaltonearabic:64423,hehfinalalttwoarabic:65258,hehfinalarabic:65258,hehhamzaabovefinalarabic:64421,hehhamzaaboveisolatedarabic:64420,hehinitialaltonearabic:64424,hehinitialarabic:65259,hehiragana:12408,hehmedialaltonearabic:64425,hehmedialarabic:65260,heiseierasquare:13179,hekatakana:12504,hekatakanahalfwidth:65421,hekutaarusquare:13110,henghook:615, +herutusquare:13113,het:1495,hethebrew:1495,hhook:614,hhooksuperior:689,hieuhacirclekorean:12923,hieuhaparenkorean:12827,hieuhcirclekorean:12909,hieuhkorean:12622,hieuhparenkorean:12813,hihiragana:12402,hikatakana:12498,hikatakanahalfwidth:65419,hiriq:1460,hiriq14:1460,hiriq21:1460,hiriq2d:1460,hiriqhebrew:1460,hiriqnarrowhebrew:1460,hiriqquarterhebrew:1460,hiriqwidehebrew:1460,hlinebelow:7830,hmonospace:65352,hoarmenian:1392,hohipthai:3627,hohiragana:12411,hokatakana:12507,hokatakanahalfwidth:65422, +holam:1465,holam19:1465,holam26:1465,holam32:1465,holamhebrew:1465,holamnarrowhebrew:1465,holamquarterhebrew:1465,holamwidehebrew:1465,honokhukthai:3630,hookabovecomb:777,hookcmb:777,hookpalatalizedbelowcmb:801,hookretroflexbelowcmb:802,hoonsquare:13122,horicoptic:1001,horizontalbar:8213,horncmb:795,hotsprings:9832,house:8962,hparen:9379,hsuperior:688,hturned:613,huhiragana:12405,huiitosquare:13107,hukatakana:12501,hukatakanahalfwidth:65420,hungarumlaut:733,hungarumlautcmb:779,hv:405,hyphen:45,hypheninferior:63205, +hyphenmonospace:65293,hyphensmall:65123,hyphensuperior:63206,hyphentwo:8208,i:105,iacute:237,iacyrillic:1103,ibengali:2439,ibopomofo:12583,ibreve:301,icaron:464,icircle:9432,icircumflex:238,icyrillic:1110,idblgrave:521,ideographearthcircle:12943,ideographfirecircle:12939,ideographicallianceparen:12863,ideographiccallparen:12858,ideographiccentrecircle:12965,ideographicclose:12294,ideographiccomma:12289,ideographiccommaleft:65380,ideographiccongratulationparen:12855,ideographiccorrectcircle:12963, +ideographicearthparen:12847,ideographicenterpriseparen:12861,ideographicexcellentcircle:12957,ideographicfestivalparen:12864,ideographicfinancialcircle:12950,ideographicfinancialparen:12854,ideographicfireparen:12843,ideographichaveparen:12850,ideographichighcircle:12964,ideographiciterationmark:12293,ideographiclaborcircle:12952,ideographiclaborparen:12856,ideographicleftcircle:12967,ideographiclowcircle:12966,ideographicmedicinecircle:12969,ideographicmetalparen:12846,ideographicmoonparen:12842, +ideographicnameparen:12852,ideographicperiod:12290,ideographicprintcircle:12958,ideographicreachparen:12867,ideographicrepresentparen:12857,ideographicresourceparen:12862,ideographicrightcircle:12968,ideographicsecretcircle:12953,ideographicselfparen:12866,ideographicsocietyparen:12851,ideographicspace:12288,ideographicspecialparen:12853,ideographicstockparen:12849,ideographicstudyparen:12859,ideographicsunparen:12848,ideographicsuperviseparen:12860,ideographicwaterparen:12844,ideographicwoodparen:12845, +ideographiczero:12295,ideographmetalcircle:12942,ideographmooncircle:12938,ideographnamecircle:12948,ideographsuncircle:12944,ideographwatercircle:12940,ideographwoodcircle:12941,ideva:2311,idieresis:239,idieresisacute:7727,idieresiscyrillic:1253,idotbelow:7883,iebrevecyrillic:1239,iecyrillic:1077,ieungacirclekorean:12917,ieungaparenkorean:12821,ieungcirclekorean:12903,ieungkorean:12615,ieungparenkorean:12807,igrave:236,igujarati:2695,igurmukhi:2567,ihiragana:12356,ihookabove:7881,iibengali:2440, +iicyrillic:1080,iideva:2312,iigujarati:2696,iigurmukhi:2568,iimatragurmukhi:2624,iinvertedbreve:523,iishortcyrillic:1081,iivowelsignbengali:2496,iivowelsigndeva:2368,iivowelsigngujarati:2752,ij:307,ikatakana:12452,ikatakanahalfwidth:65394,ikorean:12643,ilde:732,iluyhebrew:1452,imacron:299,imacroncyrillic:1251,imageorapproximatelyequal:8787,imatragurmukhi:2623,imonospace:65353,increment:8710,infinity:8734,iniarmenian:1387,integral:8747,integralbottom:8993,integralbt:8993,integralex:63733,integraltop:8992, +integraltp:8992,intersection:8745,intisquare:13061,invbullet:9688,invcircle:9689,invsmileface:9787,iocyrillic:1105,iogonek:303,iota:953,iotadieresis:970,iotadieresistonos:912,iotalatin:617,iotatonos:943,iparen:9380,irigurmukhi:2674,ismallhiragana:12355,ismallkatakana:12451,ismallkatakanahalfwidth:65384,issharbengali:2554,istroke:616,isuperior:63213,iterationhiragana:12445,iterationkatakana:12541,itilde:297,itildebelow:7725,iubopomofo:12585,iucyrillic:1102,ivowelsignbengali:2495,ivowelsigndeva:2367, +ivowelsigngujarati:2751,izhitsacyrillic:1141,izhitsadblgravecyrillic:1143,j:106,jaarmenian:1393,jabengali:2460,jadeva:2332,jagujarati:2716,jagurmukhi:2588,jbopomofo:12560,jcaron:496,jcircle:9433,jcircumflex:309,jcrossedtail:669,jdotlessstroke:607,jecyrillic:1112,jeemarabic:1580,jeemfinalarabic:65182,jeeminitialarabic:65183,jeemmedialarabic:65184,jeharabic:1688,jehfinalarabic:64395,jhabengali:2461,jhadeva:2333,jhagujarati:2717,jhagurmukhi:2589,jheharmenian:1403,jis:12292,jmonospace:65354,jparen:9381, +jsuperior:690,k:107,kabashkircyrillic:1185,kabengali:2453,kacute:7729,kacyrillic:1082,kadescendercyrillic:1179,kadeva:2325,kaf:1499,kafarabic:1603,kafdagesh:64315,kafdageshhebrew:64315,kaffinalarabic:65242,kafhebrew:1499,kafinitialarabic:65243,kafmedialarabic:65244,kafrafehebrew:64333,kagujarati:2709,kagurmukhi:2581,kahiragana:12363,kahookcyrillic:1220,kakatakana:12459,kakatakanahalfwidth:65398,kappa:954,kappasymbolgreek:1008,kapyeounmieumkorean:12657,kapyeounphieuphkorean:12676,kapyeounpieupkorean:12664, +kapyeounssangpieupkorean:12665,karoriisquare:13069,kashidaautoarabic:1600,kashidaautonosidebearingarabic:1600,kasmallkatakana:12533,kasquare:13188,kasraarabic:1616,kasratanarabic:1613,kastrokecyrillic:1183,katahiraprolongmarkhalfwidth:65392,kaverticalstrokecyrillic:1181,kbopomofo:12558,kcalsquare:13193,kcaron:489,kcedilla:311,kcircle:9434,kcommaaccent:311,kdotbelow:7731,keharmenian:1412,kehiragana:12369,kekatakana:12465,kekatakanahalfwidth:65401,kenarmenian:1391,kesmallkatakana:12534,kgreenlandic:312, +khabengali:2454,khacyrillic:1093,khadeva:2326,khagujarati:2710,khagurmukhi:2582,khaharabic:1582,khahfinalarabic:65190,khahinitialarabic:65191,khahmedialarabic:65192,kheicoptic:999,khhadeva:2393,khhagurmukhi:2649,khieukhacirclekorean:12920,khieukhaparenkorean:12824,khieukhcirclekorean:12906,khieukhkorean:12619,khieukhparenkorean:12810,khokhaithai:3586,khokhonthai:3589,khokhuatthai:3587,khokhwaithai:3588,khomutthai:3675,khook:409,khorakhangthai:3590,khzsquare:13201,kihiragana:12365,kikatakana:12461, +kikatakanahalfwidth:65399,kiroguramusquare:13077,kiromeetorusquare:13078,kirosquare:13076,kiyeokacirclekorean:12910,kiyeokaparenkorean:12814,kiyeokcirclekorean:12896,kiyeokkorean:12593,kiyeokparenkorean:12800,kiyeoksioskorean:12595,kjecyrillic:1116,klinebelow:7733,klsquare:13208,kmcubedsquare:13222,kmonospace:65355,kmsquaredsquare:13218,kohiragana:12371,kohmsquare:13248,kokaithai:3585,kokatakana:12467,kokatakanahalfwidth:65402,kooposquare:13086,koppacyrillic:1153,koreanstandardsymbol:12927,koroniscmb:835, +kparen:9382,kpasquare:13226,ksicyrillic:1135,ktsquare:13263,kturned:670,kuhiragana:12367,kukatakana:12463,kukatakanahalfwidth:65400,kvsquare:13240,kwsquare:13246,l:108,labengali:2482,lacute:314,ladeva:2354,lagujarati:2738,lagurmukhi:2610,lakkhangyaothai:3653,lamaleffinalarabic:65276,lamalefhamzaabovefinalarabic:65272,lamalefhamzaaboveisolatedarabic:65271,lamalefhamzabelowfinalarabic:65274,lamalefhamzabelowisolatedarabic:65273,lamalefisolatedarabic:65275,lamalefmaddaabovefinalarabic:65270,lamalefmaddaaboveisolatedarabic:65269, +lamarabic:1604,lambda:955,lambdastroke:411,lamed:1500,lameddagesh:64316,lameddageshhebrew:64316,lamedhebrew:1500,lamfinalarabic:65246,lamhahinitialarabic:64714,laminitialarabic:65247,lamjeeminitialarabic:64713,lamkhahinitialarabic:64715,lamlamhehisolatedarabic:65010,lammedialarabic:65248,lammeemhahinitialarabic:64904,lammeeminitialarabic:64716,largecircle:9711,lbar:410,lbelt:620,lbopomofo:12556,lcaron:318,lcedilla:316,lcircle:9435,lcircumflexbelow:7741,lcommaaccent:316,ldot:320,ldotaccent:320,ldotbelow:7735, +ldotbelowmacron:7737,leftangleabovecmb:794,lefttackbelowcmb:792,less:60,lessequal:8804,lessequalorgreater:8922,lessmonospace:65308,lessorequivalent:8818,lessorgreater:8822,lessoverequal:8806,lesssmall:65124,lezh:622,lfblock:9612,lhookretroflex:621,lira:8356,liwnarmenian:1388,lj:457,ljecyrillic:1113,ll:63168,lladeva:2355,llagujarati:2739,llinebelow:7739,llladeva:2356,llvocalicbengali:2529,llvocalicdeva:2401,llvocalicvowelsignbengali:2531,llvocalicvowelsigndeva:2403,lmiddletilde:619,lmonospace:65356, +lmsquare:13264,lochulathai:3628,logicaland:8743,logicalnot:172,logicalnotreversed:8976,logicalor:8744,lolingthai:3621,longs:383,lowlinecenterline:65102,lowlinecmb:818,lowlinedashed:65101,lozenge:9674,lparen:9383,lslash:322,lsquare:8467,lsuperior:63214,ltshade:9617,luthai:3622,lvocalicbengali:2444,lvocalicdeva:2316,lvocalicvowelsignbengali:2530,lvocalicvowelsigndeva:2402,lxsquare:13267,m:109,mabengali:2478,macron:175,macronbelowcmb:817,macroncmb:772,macronlowmod:717,macronmonospace:65507,macute:7743, +madeva:2350,magujarati:2734,magurmukhi:2606,mahapakhhebrew:1444,mahapakhlefthebrew:1444,mahiragana:12414,maichattawalowleftthai:63637,maichattawalowrightthai:63636,maichattawathai:3659,maichattawaupperleftthai:63635,maieklowleftthai:63628,maieklowrightthai:63627,maiekthai:3656,maiekupperleftthai:63626,maihanakatleftthai:63620,maihanakatthai:3633,maitaikhuleftthai:63625,maitaikhuthai:3655,maitholowleftthai:63631,maitholowrightthai:63630,maithothai:3657,maithoupperleftthai:63629,maitrilowleftthai:63634, +maitrilowrightthai:63633,maitrithai:3658,maitriupperleftthai:63632,maiyamokthai:3654,makatakana:12510,makatakanahalfwidth:65423,male:9794,mansyonsquare:13127,maqafhebrew:1470,mars:9794,masoracirclehebrew:1455,masquare:13187,mbopomofo:12551,mbsquare:13268,mcircle:9436,mcubedsquare:13221,mdotaccent:7745,mdotbelow:7747,meemarabic:1605,meemfinalarabic:65250,meeminitialarabic:65251,meemmedialarabic:65252,meemmeeminitialarabic:64721,meemmeemisolatedarabic:64584,meetorusquare:13133,mehiragana:12417,meizierasquare:13182, +mekatakana:12513,mekatakanahalfwidth:65426,mem:1502,memdagesh:64318,memdageshhebrew:64318,memhebrew:1502,menarmenian:1396,merkhahebrew:1445,merkhakefulahebrew:1446,merkhakefulalefthebrew:1446,merkhalefthebrew:1445,mhook:625,mhzsquare:13202,middledotkatakanahalfwidth:65381,middot:183,mieumacirclekorean:12914,mieumaparenkorean:12818,mieumcirclekorean:12900,mieumkorean:12609,mieumpansioskorean:12656,mieumparenkorean:12804,mieumpieupkorean:12654,mieumsioskorean:12655,mihiragana:12415,mikatakana:12511, +mikatakanahalfwidth:65424,minus:8722,minusbelowcmb:800,minuscircle:8854,minusmod:727,minusplus:8723,minute:8242,miribaarusquare:13130,mirisquare:13129,mlonglegturned:624,mlsquare:13206,mmcubedsquare:13219,mmonospace:65357,mmsquaredsquare:13215,mohiragana:12418,mohmsquare:13249,mokatakana:12514,mokatakanahalfwidth:65427,molsquare:13270,momathai:3617,moverssquare:13223,moverssquaredsquare:13224,mparen:9384,mpasquare:13227,mssquare:13235,msuperior:63215,mturned:623,mu:181,mu1:181,muasquare:13186,muchgreater:8811, +muchless:8810,mufsquare:13196,mugreek:956,mugsquare:13197,muhiragana:12416,mukatakana:12512,mukatakanahalfwidth:65425,mulsquare:13205,multiply:215,mumsquare:13211,munahhebrew:1443,munahlefthebrew:1443,musicalnote:9834,musicalnotedbl:9835,musicflatsign:9837,musicsharpsign:9839,mussquare:13234,muvsquare:13238,muwsquare:13244,mvmegasquare:13241,mvsquare:13239,mwmegasquare:13247,mwsquare:13245,n:110,nabengali:2472,nabla:8711,nacute:324,nadeva:2344,nagujarati:2728,nagurmukhi:2600,nahiragana:12394,nakatakana:12490, +nakatakanahalfwidth:65413,napostrophe:329,nasquare:13185,nbopomofo:12555,nbspace:160,ncaron:328,ncedilla:326,ncircle:9437,ncircumflexbelow:7755,ncommaaccent:326,ndotaccent:7749,ndotbelow:7751,nehiragana:12397,nekatakana:12493,nekatakanahalfwidth:65416,newsheqelsign:8362,nfsquare:13195,ngabengali:2457,ngadeva:2329,ngagujarati:2713,ngagurmukhi:2585,ngonguthai:3591,nhiragana:12435,nhookleft:626,nhookretroflex:627,nieunacirclekorean:12911,nieunaparenkorean:12815,nieuncieuckorean:12597,nieuncirclekorean:12897, +nieunhieuhkorean:12598,nieunkorean:12596,nieunpansioskorean:12648,nieunparenkorean:12801,nieunsioskorean:12647,nieuntikeutkorean:12646,nihiragana:12395,nikatakana:12491,nikatakanahalfwidth:65414,nikhahitleftthai:63641,nikhahitthai:3661,nine:57,ninearabic:1641,ninebengali:2543,ninecircle:9320,ninecircleinversesansserif:10130,ninedeva:2415,ninegujarati:2799,ninegurmukhi:2671,ninehackarabic:1641,ninehangzhou:12329,nineideographicparen:12840,nineinferior:8329,ninemonospace:65305,nineoldstyle:63289,nineparen:9340, +nineperiod:9360,ninepersian:1785,nineroman:8568,ninesuperior:8313,nineteencircle:9330,nineteenparen:9350,nineteenperiod:9370,ninethai:3673,nj:460,njecyrillic:1114,nkatakana:12531,nkatakanahalfwidth:65437,nlegrightlong:414,nlinebelow:7753,nmonospace:65358,nmsquare:13210,nnabengali:2467,nnadeva:2339,nnagujarati:2723,nnagurmukhi:2595,nnnadeva:2345,nohiragana:12398,nokatakana:12494,nokatakanahalfwidth:65417,nonbreakingspace:160,nonenthai:3603,nonuthai:3609,noonarabic:1606,noonfinalarabic:65254,noonghunnaarabic:1722, +noonghunnafinalarabic:64415,nooninitialarabic:65255,noonjeeminitialarabic:64722,noonjeemisolatedarabic:64587,noonmedialarabic:65256,noonmeeminitialarabic:64725,noonmeemisolatedarabic:64590,noonnoonfinalarabic:64653,notcontains:8716,notelement:8713,notelementof:8713,notequal:8800,notgreater:8815,notgreaternorequal:8817,notgreaternorless:8825,notidentical:8802,notless:8814,notlessnorequal:8816,notparallel:8742,notprecedes:8832,notsubset:8836,notsucceeds:8833,notsuperset:8837,nowarmenian:1398,nparen:9385, +nssquare:13233,nsuperior:8319,ntilde:241,nu:957,nuhiragana:12396,nukatakana:12492,nukatakanahalfwidth:65415,nuktabengali:2492,nuktadeva:2364,nuktagujarati:2748,nuktagurmukhi:2620,numbersign:35,numbersignmonospace:65283,numbersignsmall:65119,numeralsigngreek:884,numeralsignlowergreek:885,numero:8470,nun:1504,nundagesh:64320,nundageshhebrew:64320,nunhebrew:1504,nvsquare:13237,nwsquare:13243,nyabengali:2462,nyadeva:2334,nyagujarati:2718,nyagurmukhi:2590,o:111,oacute:243,oangthai:3629,obarred:629,obarredcyrillic:1257, +obarreddieresiscyrillic:1259,obengali:2451,obopomofo:12571,obreve:335,ocandradeva:2321,ocandragujarati:2705,ocandravowelsigndeva:2377,ocandravowelsigngujarati:2761,ocaron:466,ocircle:9438,ocircumflex:244,ocircumflexacute:7889,ocircumflexdotbelow:7897,ocircumflexgrave:7891,ocircumflexhookabove:7893,ocircumflextilde:7895,ocyrillic:1086,odblacute:337,odblgrave:525,odeva:2323,odieresis:246,odieresiscyrillic:1255,odotbelow:7885,oe:339,oekorean:12634,ogonek:731,ogonekcmb:808,ograve:242,ogujarati:2707,oharmenian:1413, +ohiragana:12362,ohookabove:7887,ohorn:417,ohornacute:7899,ohorndotbelow:7907,ohorngrave:7901,ohornhookabove:7903,ohorntilde:7905,ohungarumlaut:337,oi:419,oinvertedbreve:527,okatakana:12458,okatakanahalfwidth:65397,okorean:12631,olehebrew:1451,omacron:333,omacronacute:7763,omacrongrave:7761,omdeva:2384,omega:969,omega1:982,omegacyrillic:1121,omegalatinclosed:631,omegaroundcyrillic:1147,omegatitlocyrillic:1149,omegatonos:974,omgujarati:2768,omicron:959,omicrontonos:972,omonospace:65359,one:49,onearabic:1633, +onebengali:2535,onecircle:9312,onecircleinversesansserif:10122,onedeva:2407,onedotenleader:8228,oneeighth:8539,onefitted:63196,onegujarati:2791,onegurmukhi:2663,onehackarabic:1633,onehalf:189,onehangzhou:12321,oneideographicparen:12832,oneinferior:8321,onemonospace:65297,onenumeratorbengali:2548,oneoldstyle:63281,oneparen:9332,oneperiod:9352,onepersian:1777,onequarter:188,oneroman:8560,onesuperior:185,onethai:3665,onethird:8531,oogonek:491,oogonekmacron:493,oogurmukhi:2579,oomatragurmukhi:2635,oopen:596, +oparen:9386,openbullet:9702,option:8997,ordfeminine:170,ordmasculine:186,orthogonal:8735,oshortdeva:2322,oshortvowelsigndeva:2378,oslash:248,oslashacute:511,osmallhiragana:12361,osmallkatakana:12457,osmallkatakanahalfwidth:65387,ostrokeacute:511,osuperior:63216,otcyrillic:1151,otilde:245,otildeacute:7757,otildedieresis:7759,oubopomofo:12577,overline:8254,overlinecenterline:65098,overlinecmb:773,overlinedashed:65097,overlinedblwavy:65100,overlinewavy:65099,overscore:175,ovowelsignbengali:2507,ovowelsigndeva:2379, +ovowelsigngujarati:2763,p:112,paampssquare:13184,paasentosquare:13099,pabengali:2474,pacute:7765,padeva:2346,pagedown:8671,pageup:8670,pagujarati:2730,pagurmukhi:2602,pahiragana:12401,paiyannoithai:3631,pakatakana:12497,palatalizationcyrilliccmb:1156,palochkacyrillic:1216,pansioskorean:12671,paragraph:182,parallel:8741,parenleft:40,parenleftaltonearabic:64830,parenleftbt:63725,parenleftex:63724,parenleftinferior:8333,parenleftmonospace:65288,parenleftsmall:65113,parenleftsuperior:8317,parenlefttp:63723, +parenleftvertical:65077,parenright:41,parenrightaltonearabic:64831,parenrightbt:63736,parenrightex:63735,parenrightinferior:8334,parenrightmonospace:65289,parenrightsmall:65114,parenrightsuperior:8318,parenrighttp:63734,parenrightvertical:65078,partialdiff:8706,paseqhebrew:1472,pashtahebrew:1433,pasquare:13225,patah:1463,patah11:1463,patah1d:1463,patah2a:1463,patahhebrew:1463,patahnarrowhebrew:1463,patahquarterhebrew:1463,patahwidehebrew:1463,pazerhebrew:1441,pbopomofo:12550,pcircle:9439,pdotaccent:7767, +pe:1508,pecyrillic:1087,pedagesh:64324,pedageshhebrew:64324,peezisquare:13115,pefinaldageshhebrew:64323,peharabic:1662,peharmenian:1402,pehebrew:1508,pehfinalarabic:64343,pehinitialarabic:64344,pehiragana:12410,pehmedialarabic:64345,pekatakana:12506,pemiddlehookcyrillic:1191,perafehebrew:64334,percent:37,percentarabic:1642,percentmonospace:65285,percentsmall:65130,period:46,periodarmenian:1417,periodcentered:183,periodhalfwidth:65377,periodinferior:63207,periodmonospace:65294,periodsmall:65106,periodsuperior:63208, +perispomenigreekcmb:834,perpendicular:8869,perthousand:8240,peseta:8359,pfsquare:13194,phabengali:2475,phadeva:2347,phagujarati:2731,phagurmukhi:2603,phi:966,phi1:981,phieuphacirclekorean:12922,phieuphaparenkorean:12826,phieuphcirclekorean:12908,phieuphkorean:12621,phieuphparenkorean:12812,philatin:632,phinthuthai:3642,phisymbolgreek:981,phook:421,phophanthai:3614,phophungthai:3612,phosamphaothai:3616,pi:960,pieupacirclekorean:12915,pieupaparenkorean:12819,pieupcieuckorean:12662,pieupcirclekorean:12901, +pieupkiyeokkorean:12658,pieupkorean:12610,pieupparenkorean:12805,pieupsioskiyeokkorean:12660,pieupsioskorean:12612,pieupsiostikeutkorean:12661,pieupthieuthkorean:12663,pieuptikeutkorean:12659,pihiragana:12404,pikatakana:12500,pisymbolgreek:982,piwrarmenian:1411,plus:43,plusbelowcmb:799,pluscircle:8853,plusminus:177,plusmod:726,plusmonospace:65291,plussmall:65122,plussuperior:8314,pmonospace:65360,pmsquare:13272,pohiragana:12413,pointingindexdownwhite:9759,pointingindexleftwhite:9756,pointingindexrightwhite:9758, +pointingindexupwhite:9757,pokatakana:12509,poplathai:3611,postalmark:12306,postalmarkface:12320,pparen:9387,precedes:8826,prescription:8478,primemod:697,primereversed:8245,product:8719,projective:8965,prolongedkana:12540,propellor:8984,propersubset:8834,propersuperset:8835,proportion:8759,proportional:8733,psi:968,psicyrillic:1137,psilipneumatacyrilliccmb:1158,pssquare:13232,puhiragana:12407,pukatakana:12503,pvsquare:13236,pwsquare:13242,q:113,qadeva:2392,qadmahebrew:1448,qafarabic:1602,qaffinalarabic:65238, +qafinitialarabic:65239,qafmedialarabic:65240,qamats:1464,qamats10:1464,qamats1a:1464,qamats1c:1464,qamats27:1464,qamats29:1464,qamats33:1464,qamatsde:1464,qamatshebrew:1464,qamatsnarrowhebrew:1464,qamatsqatanhebrew:1464,qamatsqatannarrowhebrew:1464,qamatsqatanquarterhebrew:1464,qamatsqatanwidehebrew:1464,qamatsquarterhebrew:1464,qamatswidehebrew:1464,qarneyparahebrew:1439,qbopomofo:12561,qcircle:9440,qhook:672,qmonospace:65361,qof:1511,qofdagesh:64327,qofdageshhebrew:64327,qofhebrew:1511,qparen:9388, +quarternote:9833,qubuts:1467,qubuts18:1467,qubuts25:1467,qubuts31:1467,qubutshebrew:1467,qubutsnarrowhebrew:1467,qubutsquarterhebrew:1467,qubutswidehebrew:1467,question:63,questionarabic:1567,questionarmenian:1374,questiondown:191,questiondownsmall:63423,questiongreek:894,questionmonospace:65311,questionsmall:63295,quotedbl:34,quotedblbase:8222,quotedblleft:8220,quotedblmonospace:65282,quotedblprime:12318,quotedblprimereversed:12317,quotedblright:8221,quoteleft:8216,quoteleftreversed:8219,quotereversed:8219, +quoteright:8217,quoterightn:329,quotesinglbase:8218,quotesingle:39,quotesinglemonospace:65287,r:114,raarmenian:1404,rabengali:2480,racute:341,radeva:2352,radical:8730,radicalex:63717,radoverssquare:13230,radoverssquaredsquare:13231,radsquare:13229,rafe:1471,rafehebrew:1471,ragujarati:2736,ragurmukhi:2608,rahiragana:12425,rakatakana:12521,rakatakanahalfwidth:65431,ralowerdiagonalbengali:2545,ramiddlediagonalbengali:2544,ramshorn:612,ratio:8758,rbopomofo:12566,rcaron:345,rcedilla:343,rcircle:9441,rcommaaccent:343, +rdblgrave:529,rdotaccent:7769,rdotbelow:7771,rdotbelowmacron:7773,referencemark:8251,reflexsubset:8838,reflexsuperset:8839,registered:174,registersans:63720,registerserif:63194,reharabic:1585,reharmenian:1408,rehfinalarabic:65198,rehiragana:12428,rekatakana:12524,rekatakanahalfwidth:65434,resh:1512,reshdageshhebrew:64328,reshhebrew:1512,reversedtilde:8765,reviahebrew:1431,reviamugrashhebrew:1431,revlogicalnot:8976,rfishhook:638,rfishhookreversed:639,rhabengali:2525,rhadeva:2397,rho:961,rhook:637, +rhookturned:635,rhookturnedsuperior:693,rhosymbolgreek:1009,rhotichookmod:734,rieulacirclekorean:12913,rieulaparenkorean:12817,rieulcirclekorean:12899,rieulhieuhkorean:12608,rieulkiyeokkorean:12602,rieulkiyeoksioskorean:12649,rieulkorean:12601,rieulmieumkorean:12603,rieulpansioskorean:12652,rieulparenkorean:12803,rieulphieuphkorean:12607,rieulpieupkorean:12604,rieulpieupsioskorean:12651,rieulsioskorean:12605,rieulthieuthkorean:12606,rieultikeutkorean:12650,rieulyeorinhieuhkorean:12653,rightangle:8735, +righttackbelowcmb:793,righttriangle:8895,rihiragana:12426,rikatakana:12522,rikatakanahalfwidth:65432,ring:730,ringbelowcmb:805,ringcmb:778,ringhalfleft:703,ringhalfleftarmenian:1369,ringhalfleftbelowcmb:796,ringhalfleftcentered:723,ringhalfright:702,ringhalfrightbelowcmb:825,ringhalfrightcentered:722,rinvertedbreve:531,rittorusquare:13137,rlinebelow:7775,rlongleg:636,rlonglegturned:634,rmonospace:65362,rohiragana:12429,rokatakana:12525,rokatakanahalfwidth:65435,roruathai:3619,rparen:9389,rrabengali:2524, +rradeva:2353,rragurmukhi:2652,rreharabic:1681,rrehfinalarabic:64397,rrvocalicbengali:2528,rrvocalicdeva:2400,rrvocalicgujarati:2784,rrvocalicvowelsignbengali:2500,rrvocalicvowelsigndeva:2372,rrvocalicvowelsigngujarati:2756,rsuperior:63217,rtblock:9616,rturned:633,rturnedsuperior:692,ruhiragana:12427,rukatakana:12523,rukatakanahalfwidth:65433,rupeemarkbengali:2546,rupeesignbengali:2547,rupiah:63197,ruthai:3620,rvocalicbengali:2443,rvocalicdeva:2315,rvocalicgujarati:2699,rvocalicvowelsignbengali:2499, +rvocalicvowelsigndeva:2371,rvocalicvowelsigngujarati:2755,s:115,sabengali:2488,sacute:347,sacutedotaccent:7781,sadarabic:1589,sadeva:2360,sadfinalarabic:65210,sadinitialarabic:65211,sadmedialarabic:65212,sagujarati:2744,sagurmukhi:2616,sahiragana:12373,sakatakana:12469,sakatakanahalfwidth:65403,sallallahoualayhewasallamarabic:65018,samekh:1505,samekhdagesh:64321,samekhdageshhebrew:64321,samekhhebrew:1505,saraaathai:3634,saraaethai:3649,saraaimaimalaithai:3652,saraaimaimuanthai:3651,saraamthai:3635, +saraathai:3632,saraethai:3648,saraiileftthai:63622,saraiithai:3637,saraileftthai:63621,saraithai:3636,saraothai:3650,saraueeleftthai:63624,saraueethai:3639,saraueleftthai:63623,sarauethai:3638,sarauthai:3640,sarauuthai:3641,sbopomofo:12569,scaron:353,scarondotaccent:7783,scedilla:351,schwa:601,schwacyrillic:1241,schwadieresiscyrillic:1243,schwahook:602,scircle:9442,scircumflex:349,scommaaccent:537,sdotaccent:7777,sdotbelow:7779,sdotbelowdotaccent:7785,seagullbelowcmb:828,second:8243,secondtonechinese:714, +section:167,seenarabic:1587,seenfinalarabic:65202,seeninitialarabic:65203,seenmedialarabic:65204,segol:1462,segol13:1462,segol1f:1462,segol2c:1462,segolhebrew:1462,segolnarrowhebrew:1462,segolquarterhebrew:1462,segoltahebrew:1426,segolwidehebrew:1462,seharmenian:1405,sehiragana:12379,sekatakana:12475,sekatakanahalfwidth:65406,semicolon:59,semicolonarabic:1563,semicolonmonospace:65307,semicolonsmall:65108,semivoicedmarkkana:12444,semivoicedmarkkanahalfwidth:65439,sentisquare:13090,sentosquare:13091, +seven:55,sevenarabic:1639,sevenbengali:2541,sevencircle:9318,sevencircleinversesansserif:10128,sevendeva:2413,seveneighths:8542,sevengujarati:2797,sevengurmukhi:2669,sevenhackarabic:1639,sevenhangzhou:12327,sevenideographicparen:12838,seveninferior:8327,sevenmonospace:65303,sevenoldstyle:63287,sevenparen:9338,sevenperiod:9358,sevenpersian:1783,sevenroman:8566,sevensuperior:8311,seventeencircle:9328,seventeenparen:9348,seventeenperiod:9368,seventhai:3671,sfthyphen:173,shaarmenian:1399,shabengali:2486, +shacyrillic:1096,shaddaarabic:1617,shaddadammaarabic:64609,shaddadammatanarabic:64606,shaddafathaarabic:64608,shaddakasraarabic:64610,shaddakasratanarabic:64607,shade:9618,shadedark:9619,shadelight:9617,shademedium:9618,shadeva:2358,shagujarati:2742,shagurmukhi:2614,shalshelethebrew:1427,shbopomofo:12565,shchacyrillic:1097,sheenarabic:1588,sheenfinalarabic:65206,sheeninitialarabic:65207,sheenmedialarabic:65208,sheicoptic:995,sheqel:8362,sheqelhebrew:8362,sheva:1456,sheva115:1456,sheva15:1456,sheva22:1456, +sheva2e:1456,shevahebrew:1456,shevanarrowhebrew:1456,shevaquarterhebrew:1456,shevawidehebrew:1456,shhacyrillic:1211,shimacoptic:1005,shin:1513,shindagesh:64329,shindageshhebrew:64329,shindageshshindot:64300,shindageshshindothebrew:64300,shindageshsindot:64301,shindageshsindothebrew:64301,shindothebrew:1473,shinhebrew:1513,shinshindot:64298,shinshindothebrew:64298,shinsindot:64299,shinsindothebrew:64299,shook:642,sigma:963,sigma1:962,sigmafinal:962,sigmalunatesymbolgreek:1010,sihiragana:12375,sikatakana:12471, +sikatakanahalfwidth:65404,siluqhebrew:1469,siluqlefthebrew:1469,similar:8764,sindothebrew:1474,siosacirclekorean:12916,siosaparenkorean:12820,sioscieuckorean:12670,sioscirclekorean:12902,sioskiyeokkorean:12666,sioskorean:12613,siosnieunkorean:12667,siosparenkorean:12806,siospieupkorean:12669,siostikeutkorean:12668,six:54,sixarabic:1638,sixbengali:2540,sixcircle:9317,sixcircleinversesansserif:10127,sixdeva:2412,sixgujarati:2796,sixgurmukhi:2668,sixhackarabic:1638,sixhangzhou:12326,sixideographicparen:12837, +sixinferior:8326,sixmonospace:65302,sixoldstyle:63286,sixparen:9337,sixperiod:9357,sixpersian:1782,sixroman:8565,sixsuperior:8310,sixteencircle:9327,sixteencurrencydenominatorbengali:2553,sixteenparen:9347,sixteenperiod:9367,sixthai:3670,slash:47,slashmonospace:65295,slong:383,slongdotaccent:7835,smileface:9786,smonospace:65363,sofpasuqhebrew:1475,softhyphen:173,softsigncyrillic:1100,sohiragana:12381,sokatakana:12477,sokatakanahalfwidth:65407,soliduslongoverlaycmb:824,solidusshortoverlaycmb:823,sorusithai:3625, +sosalathai:3624,sosothai:3595,sosuathai:3626,space:32,spacehackarabic:32,spade:9824,spadesuitblack:9824,spadesuitwhite:9828,sparen:9390,squarebelowcmb:827,squarecc:13252,squarecm:13213,squarediagonalcrosshatchfill:9641,squarehorizontalfill:9636,squarekg:13199,squarekm:13214,squarekmcapital:13262,squareln:13265,squarelog:13266,squaremg:13198,squaremil:13269,squaremm:13212,squaremsquared:13217,squareorthogonalcrosshatchfill:9638,squareupperlefttolowerrightfill:9639,squareupperrighttolowerleftfill:9640, +squareverticalfill:9637,squarewhitewithsmallblack:9635,srsquare:13275,ssabengali:2487,ssadeva:2359,ssagujarati:2743,ssangcieuckorean:12617,ssanghieuhkorean:12677,ssangieungkorean:12672,ssangkiyeokkorean:12594,ssangnieunkorean:12645,ssangpieupkorean:12611,ssangsioskorean:12614,ssangtikeutkorean:12600,ssuperior:63218,sterling:163,sterlingmonospace:65505,strokelongoverlaycmb:822,strokeshortoverlaycmb:821,subset:8834,subsetnotequal:8842,subsetorequal:8838,succeeds:8827,suchthat:8715,suhiragana:12377, +sukatakana:12473,sukatakanahalfwidth:65405,sukunarabic:1618,summation:8721,sun:9788,superset:8835,supersetnotequal:8843,supersetorequal:8839,svsquare:13276,syouwaerasquare:13180,t:116,tabengali:2468,tackdown:8868,tackleft:8867,tadeva:2340,tagujarati:2724,tagurmukhi:2596,taharabic:1591,tahfinalarabic:65218,tahinitialarabic:65219,tahiragana:12383,tahmedialarabic:65220,taisyouerasquare:13181,takatakana:12479,takatakanahalfwidth:65408,tatweelarabic:1600,tau:964,tav:1514,tavdages:64330,tavdagesh:64330, +tavdageshhebrew:64330,tavhebrew:1514,tbar:359,tbopomofo:12554,tcaron:357,tccurl:680,tcedilla:355,tcheharabic:1670,tchehfinalarabic:64379,tchehinitialarabic:64380,tchehmedialarabic:64381,tcircle:9443,tcircumflexbelow:7793,tcommaaccent:355,tdieresis:7831,tdotaccent:7787,tdotbelow:7789,tecyrillic:1090,tedescendercyrillic:1197,teharabic:1578,tehfinalarabic:65174,tehhahinitialarabic:64674,tehhahisolatedarabic:64524,tehinitialarabic:65175,tehiragana:12390,tehjeeminitialarabic:64673,tehjeemisolatedarabic:64523, +tehmarbutaarabic:1577,tehmarbutafinalarabic:65172,tehmedialarabic:65176,tehmeeminitialarabic:64676,tehmeemisolatedarabic:64526,tehnoonfinalarabic:64627,tekatakana:12486,tekatakanahalfwidth:65411,telephone:8481,telephoneblack:9742,telishagedolahebrew:1440,telishaqetanahebrew:1449,tencircle:9321,tenideographicparen:12841,tenparen:9341,tenperiod:9361,tenroman:8569,tesh:679,tet:1496,tetdagesh:64312,tetdageshhebrew:64312,tethebrew:1496,tetsecyrillic:1205,tevirhebrew:1435,tevirlefthebrew:1435,thabengali:2469, +thadeva:2341,thagujarati:2725,thagurmukhi:2597,thalarabic:1584,thalfinalarabic:65196,thanthakhatlowleftthai:63640,thanthakhatlowrightthai:63639,thanthakhatthai:3660,thanthakhatupperleftthai:63638,theharabic:1579,thehfinalarabic:65178,thehinitialarabic:65179,thehmedialarabic:65180,thereexists:8707,therefore:8756,theta:952,theta1:977,thetasymbolgreek:977,thieuthacirclekorean:12921,thieuthaparenkorean:12825,thieuthcirclekorean:12907,thieuthkorean:12620,thieuthparenkorean:12811,thirteencircle:9324,thirteenparen:9344, +thirteenperiod:9364,thonangmonthothai:3601,thook:429,thophuthaothai:3602,thorn:254,thothahanthai:3607,thothanthai:3600,thothongthai:3608,thothungthai:3606,thousandcyrillic:1154,thousandsseparatorarabic:1644,thousandsseparatorpersian:1644,three:51,threearabic:1635,threebengali:2537,threecircle:9314,threecircleinversesansserif:10124,threedeva:2409,threeeighths:8540,threegujarati:2793,threegurmukhi:2665,threehackarabic:1635,threehangzhou:12323,threeideographicparen:12834,threeinferior:8323,threemonospace:65299, +threenumeratorbengali:2550,threeoldstyle:63283,threeparen:9334,threeperiod:9354,threepersian:1779,threequarters:190,threequartersemdash:63198,threeroman:8562,threesuperior:179,threethai:3667,thzsquare:13204,tihiragana:12385,tikatakana:12481,tikatakanahalfwidth:65409,tikeutacirclekorean:12912,tikeutaparenkorean:12816,tikeutcirclekorean:12898,tikeutkorean:12599,tikeutparenkorean:12802,tilde:732,tildebelowcmb:816,tildecmb:771,tildecomb:771,tildedoublecmb:864,tildeoperator:8764,tildeoverlaycmb:820,tildeverticalcmb:830, +timescircle:8855,tipehahebrew:1430,tipehalefthebrew:1430,tippigurmukhi:2672,titlocyrilliccmb:1155,tiwnarmenian:1407,tlinebelow:7791,tmonospace:65364,toarmenian:1385,tohiragana:12392,tokatakana:12488,tokatakanahalfwidth:65412,tonebarextrahighmod:741,tonebarextralowmod:745,tonebarhighmod:742,tonebarlowmod:744,tonebarmidmod:743,tonefive:445,tonesix:389,tonetwo:424,tonos:900,tonsquare:13095,topatakthai:3599,tortoiseshellbracketleft:12308,tortoiseshellbracketleftsmall:65117,tortoiseshellbracketleftvertical:65081, +tortoiseshellbracketright:12309,tortoiseshellbracketrightsmall:65118,tortoiseshellbracketrightvertical:65082,totaothai:3605,tpalatalhook:427,tparen:9391,trademark:8482,trademarksans:63722,trademarkserif:63195,tretroflexhook:648,triagdn:9660,triaglf:9668,triagrt:9658,triagup:9650,ts:678,tsadi:1510,tsadidagesh:64326,tsadidageshhebrew:64326,tsadihebrew:1510,tsecyrillic:1094,tsere:1461,tsere12:1461,tsere1e:1461,tsere2b:1461,tserehebrew:1461,tserenarrowhebrew:1461,tserequarterhebrew:1461,tserewidehebrew:1461, +tshecyrillic:1115,tsuperior:63219,ttabengali:2463,ttadeva:2335,ttagujarati:2719,ttagurmukhi:2591,tteharabic:1657,ttehfinalarabic:64359,ttehinitialarabic:64360,ttehmedialarabic:64361,tthabengali:2464,tthadeva:2336,tthagujarati:2720,tthagurmukhi:2592,tturned:647,tuhiragana:12388,tukatakana:12484,tukatakanahalfwidth:65410,tusmallhiragana:12387,tusmallkatakana:12483,tusmallkatakanahalfwidth:65391,twelvecircle:9323,twelveparen:9343,twelveperiod:9363,twelveroman:8571,twentycircle:9331,twentyhangzhou:21316, +twentyparen:9351,twentyperiod:9371,two:50,twoarabic:1634,twobengali:2536,twocircle:9313,twocircleinversesansserif:10123,twodeva:2408,twodotenleader:8229,twodotleader:8229,twodotleadervertical:65072,twogujarati:2792,twogurmukhi:2664,twohackarabic:1634,twohangzhou:12322,twoideographicparen:12833,twoinferior:8322,twomonospace:65298,twonumeratorbengali:2549,twooldstyle:63282,twoparen:9333,twoperiod:9353,twopersian:1778,tworoman:8561,twostroke:443,twosuperior:178,twothai:3666,twothirds:8532,u:117,uacute:250, +ubar:649,ubengali:2441,ubopomofo:12584,ubreve:365,ucaron:468,ucircle:9444,ucircumflex:251,ucircumflexbelow:7799,ucyrillic:1091,udattadeva:2385,udblacute:369,udblgrave:533,udeva:2313,udieresis:252,udieresisacute:472,udieresisbelow:7795,udieresiscaron:474,udieresiscyrillic:1265,udieresisgrave:476,udieresismacron:470,udotbelow:7909,ugrave:249,ugujarati:2697,ugurmukhi:2569,uhiragana:12358,uhookabove:7911,uhorn:432,uhornacute:7913,uhorndotbelow:7921,uhorngrave:7915,uhornhookabove:7917,uhorntilde:7919, +uhungarumlaut:369,uhungarumlautcyrillic:1267,uinvertedbreve:535,ukatakana:12454,ukatakanahalfwidth:65395,ukcyrillic:1145,ukorean:12636,umacron:363,umacroncyrillic:1263,umacrondieresis:7803,umatragurmukhi:2625,umonospace:65365,underscore:95,underscoredbl:8215,underscoremonospace:65343,underscorevertical:65075,underscorewavy:65103,union:8746,universal:8704,uogonek:371,uparen:9392,upblock:9600,upperdothebrew:1476,upsilon:965,upsilondieresis:971,upsilondieresistonos:944,upsilonlatin:650,upsilontonos:973, +uptackbelowcmb:797,uptackmod:724,uragurmukhi:2675,uring:367,ushortcyrillic:1118,usmallhiragana:12357,usmallkatakana:12453,usmallkatakanahalfwidth:65385,ustraightcyrillic:1199,ustraightstrokecyrillic:1201,utilde:361,utildeacute:7801,utildebelow:7797,uubengali:2442,uudeva:2314,uugujarati:2698,uugurmukhi:2570,uumatragurmukhi:2626,uuvowelsignbengali:2498,uuvowelsigndeva:2370,uuvowelsigngujarati:2754,uvowelsignbengali:2497,uvowelsigndeva:2369,uvowelsigngujarati:2753,v:118,vadeva:2357,vagujarati:2741,vagurmukhi:2613, +vakatakana:12535,vav:1493,vavdagesh:64309,vavdagesh65:64309,vavdageshhebrew:64309,vavhebrew:1493,vavholam:64331,vavholamhebrew:64331,vavvavhebrew:1520,vavyodhebrew:1521,vcircle:9445,vdotbelow:7807,vecyrillic:1074,veharabic:1700,vehfinalarabic:64363,vehinitialarabic:64364,vehmedialarabic:64365,vekatakana:12537,venus:9792,verticalbar:124,verticallineabovecmb:781,verticallinebelowcmb:809,verticallinelowmod:716,verticallinemod:712,vewarmenian:1406,vhook:651,vikatakana:12536,viramabengali:2509,viramadeva:2381, +viramagujarati:2765,visargabengali:2435,visargadeva:2307,visargagujarati:2691,vmonospace:65366,voarmenian:1400,voicediterationhiragana:12446,voicediterationkatakana:12542,voicedmarkkana:12443,voicedmarkkanahalfwidth:65438,vokatakana:12538,vparen:9393,vtilde:7805,vturned:652,vuhiragana:12436,vukatakana:12532,w:119,wacute:7811,waekorean:12633,wahiragana:12431,wakatakana:12527,wakatakanahalfwidth:65436,wakorean:12632,wasmallhiragana:12430,wasmallkatakana:12526,wattosquare:13143,wavedash:12316,wavyunderscorevertical:65076, +wawarabic:1608,wawfinalarabic:65262,wawhamzaabovearabic:1572,wawhamzaabovefinalarabic:65158,wbsquare:13277,wcircle:9446,wcircumflex:373,wdieresis:7813,wdotaccent:7815,wdotbelow:7817,wehiragana:12433,weierstrass:8472,wekatakana:12529,wekorean:12638,weokorean:12637,wgrave:7809,whitebullet:9702,whitecircle:9675,whitecircleinverse:9689,whitecornerbracketleft:12302,whitecornerbracketleftvertical:65091,whitecornerbracketright:12303,whitecornerbracketrightvertical:65092,whitediamond:9671,whitediamondcontainingblacksmalldiamond:9672, +whitedownpointingsmalltriangle:9663,whitedownpointingtriangle:9661,whiteleftpointingsmalltriangle:9667,whiteleftpointingtriangle:9665,whitelenticularbracketleft:12310,whitelenticularbracketright:12311,whiterightpointingsmalltriangle:9657,whiterightpointingtriangle:9655,whitesmallsquare:9643,whitesmilingface:9786,whitesquare:9633,whitestar:9734,whitetelephone:9743,whitetortoiseshellbracketleft:12312,whitetortoiseshellbracketright:12313,whiteuppointingsmalltriangle:9653,whiteuppointingtriangle:9651, +wihiragana:12432,wikatakana:12528,wikorean:12639,wmonospace:65367,wohiragana:12434,wokatakana:12530,wokatakanahalfwidth:65382,won:8361,wonmonospace:65510,wowaenthai:3623,wparen:9394,wring:7832,wsuperior:695,wturned:653,wynn:447,x:120,xabovecmb:829,xbopomofo:12562,xcircle:9447,xdieresis:7821,xdotaccent:7819,xeharmenian:1389,xi:958,xmonospace:65368,xparen:9395,xsuperior:739,y:121,yaadosquare:13134,yabengali:2479,yacute:253,yadeva:2351,yaekorean:12626,yagujarati:2735,yagurmukhi:2607,yahiragana:12420, +yakatakana:12516,yakatakanahalfwidth:65428,yakorean:12625,yamakkanthai:3662,yasmallhiragana:12419,yasmallkatakana:12515,yasmallkatakanahalfwidth:65388,yatcyrillic:1123,ycircle:9448,ycircumflex:375,ydieresis:255,ydotaccent:7823,ydotbelow:7925,yeharabic:1610,yehbarreearabic:1746,yehbarreefinalarabic:64431,yehfinalarabic:65266,yehhamzaabovearabic:1574,yehhamzaabovefinalarabic:65162,yehhamzaaboveinitialarabic:65163,yehhamzaabovemedialarabic:65164,yehinitialarabic:65267,yehmedialarabic:65268,yehmeeminitialarabic:64733, +yehmeemisolatedarabic:64600,yehnoonfinalarabic:64660,yehthreedotsbelowarabic:1745,yekorean:12630,yen:165,yenmonospace:65509,yeokorean:12629,yeorinhieuhkorean:12678,yerahbenyomohebrew:1450,yerahbenyomolefthebrew:1450,yericyrillic:1099,yerudieresiscyrillic:1273,yesieungkorean:12673,yesieungpansioskorean:12675,yesieungsioskorean:12674,yetivhebrew:1434,ygrave:7923,yhook:436,yhookabove:7927,yiarmenian:1397,yicyrillic:1111,yikorean:12642,yinyang:9775,yiwnarmenian:1410,ymonospace:65369,yod:1497,yoddagesh:64313, +yoddageshhebrew:64313,yodhebrew:1497,yodyodhebrew:1522,yodyodpatahhebrew:64287,yohiragana:12424,yoikorean:12681,yokatakana:12520,yokatakanahalfwidth:65430,yokorean:12635,yosmallhiragana:12423,yosmallkatakana:12519,yosmallkatakanahalfwidth:65390,yotgreek:1011,yoyaekorean:12680,yoyakorean:12679,yoyakthai:3618,yoyingthai:3597,yparen:9396,ypogegrammeni:890,ypogegrammenigreekcmb:837,yr:422,yring:7833,ysuperior:696,ytilde:7929,yturned:654,yuhiragana:12422,yuikorean:12684,yukatakana:12518,yukatakanahalfwidth:65429, +yukorean:12640,yusbigcyrillic:1131,yusbigiotifiedcyrillic:1133,yuslittlecyrillic:1127,yuslittleiotifiedcyrillic:1129,yusmallhiragana:12421,yusmallkatakana:12517,yusmallkatakanahalfwidth:65389,yuyekorean:12683,yuyeokorean:12682,yyabengali:2527,yyadeva:2399,z:122,zaarmenian:1382,zacute:378,zadeva:2395,zagurmukhi:2651,zaharabic:1592,zahfinalarabic:65222,zahinitialarabic:65223,zahiragana:12374,zahmedialarabic:65224,zainarabic:1586,zainfinalarabic:65200,zakatakana:12470,zaqefgadolhebrew:1429,zaqefqatanhebrew:1428, +zarqahebrew:1432,zayin:1494,zayindagesh:64310,zayindageshhebrew:64310,zayinhebrew:1494,zbopomofo:12567,zcaron:382,zcircle:9449,zcircumflex:7825,zcurl:657,zdot:380,zdotaccent:380,zdotbelow:7827,zecyrillic:1079,zedescendercyrillic:1177,zedieresiscyrillic:1247,zehiragana:12380,zekatakana:12476,zero:48,zeroarabic:1632,zerobengali:2534,zerodeva:2406,zerogujarati:2790,zerogurmukhi:2662,zerohackarabic:1632,zeroinferior:8320,zeromonospace:65296,zerooldstyle:63280,zeropersian:1776,zerosuperior:8304,zerothai:3664, +zerowidthjoiner:65279,zerowidthnonjoiner:8204,zerowidthspace:8203,zeta:950,zhbopomofo:12563,zhearmenian:1386,zhebrevecyrillic:1218,zhecyrillic:1078,zhedescendercyrillic:1175,zhedieresiscyrillic:1245,zihiragana:12376,zikatakana:12472,zinorhebrew:1454,zlinebelow:7829,zmonospace:65370,zohiragana:12382,zokatakana:12478,zparen:9397,zretroflexhook:656,zstroke:438,zuhiragana:12378,zukatakana:12474,".notdef":0};var DingbatsGlyphsUnicode={space:32,a1:9985,a2:9986,a202:9987,a3:9988,a4:9742,a5:9990,a119:9991, +a118:9992,a117:9993,a11:9755,a12:9758,a13:9996,a14:9997,a15:9998,a16:9999,a105:1E4,a17:10001,a18:10002,a19:10003,a20:10004,a21:10005,a22:10006,a23:10007,a24:10008,a25:10009,a26:10010,a27:10011,a28:10012,a6:10013,a7:10014,a8:10015,a9:10016,a10:10017,a29:10018,a30:10019,a31:10020,a32:10021,a33:10022,a34:10023,a35:9733,a36:10025,a37:10026,a38:10027,a39:10028,a40:10029,a41:10030,a42:10031,a43:10032,a44:10033,a45:10034,a46:10035,a47:10036,a48:10037,a49:10038,a50:10039,a51:10040,a52:10041,a53:10042,a54:10043, +a55:10044,a56:10045,a57:10046,a58:10047,a59:10048,a60:10049,a61:10050,a62:10051,a63:10052,a64:10053,a65:10054,a66:10055,a67:10056,a68:10057,a69:10058,a70:10059,a71:9679,a72:10061,a73:9632,a74:10063,a203:10064,a75:10065,a204:10066,a76:9650,a77:9660,a78:9670,a79:10070,a81:9687,a82:10072,a83:10073,a84:10074,a97:10075,a98:10076,a99:10077,a100:10078,a101:10081,a102:10082,a103:10083,a104:10084,a106:10085,a107:10086,a108:10087,a112:9827,a111:9830,a110:9829,a109:9824,a120:9312,a121:9313,a122:9314,a123:9315, +a124:9316,a125:9317,a126:9318,a127:9319,a128:9320,a129:9321,a130:10102,a131:10103,a132:10104,a133:10105,a134:10106,a135:10107,a136:10108,a137:10109,a138:10110,a139:10111,a140:10112,a141:10113,a142:10114,a143:10115,a144:10116,a145:10117,a146:10118,a147:10119,a148:10120,a149:10121,a150:10122,a151:10123,a152:10124,a153:10125,a154:10126,a155:10127,a156:10128,a157:10129,a158:10130,a159:10131,a160:10132,a161:8594,a163:8596,a164:8597,a196:10136,a165:10137,a192:10138,a166:10139,a167:10140,a168:10141,a169:10142, +a170:10143,a171:10144,a172:10145,a173:10146,a162:10147,a174:10148,a175:10149,a176:10150,a177:10151,a178:10152,a179:10153,a193:10154,a180:10155,a199:10156,a181:10157,a200:10158,a182:10159,a201:10161,a183:10162,a184:10163,a197:10164,a185:10165,a194:10166,a198:10167,a186:10168,a195:10169,a187:10170,a188:10171,a189:10172,a190:10173,a191:10174,a89:10088,a90:10089,a93:10090,a94:10091,a91:10092,a92:10093,a205:10094,a85:10095,a206:10096,a86:10097,a87:10098,a88:10099,a95:10100,a96:10101,".notdef":0};var PDFImage= +function PDFImageClosure(){function handleImageData(handler,xref,res,image){if(image instanceof JpegStream&&image.isNativelyDecodable(xref,res)){var dict=image.dict;var colorSpace=dict.get("ColorSpace","CS");colorSpace=ColorSpace.parse(colorSpace,xref,res);var numComps=colorSpace.numComps;var decodePromise=handler.sendWithPromise("JpegDecode",[image.getIR(),numComps]);return decodePromise.then(function(message){var data=message.data;return new Stream(data,0,data.length,image.dict)})}else return Promise.resolve(image)} +function decodeAndClamp(value,addend,coefficient,max){value=addend+value*coefficient;return value<0?0:value>max?max:value}function PDFImage(xref,res,image,inline,smask,mask,isMask){this.image=image;var dict=image.dict;if(dict.has("Filter")){var filter=dict.get("Filter").name;if(filter==="JPXDecode"){var jpxImage=new JpxImage;jpxImage.parseImageProperties(image.stream);image.stream.reset();image.bitsPerComponent=jpxImage.bitsPerComponent;image.numComps=jpxImage.componentsCount}else if(filter==="JBIG2Decode"){image.bitsPerComponent= +1;image.numComps=1}}this.width=dict.get("Width","W");this.height=dict.get("Height","H");if(this.width<1||this.height<1)error("Invalid image width: "+this.width+" or height: "+this.height);this.interpolate=dict.get("Interpolate","I")||false;this.imageMask=dict.get("ImageMask","IM")||false;this.matte=dict.get("Matte")||false;var bitsPerComponent=image.bitsPerComponent;if(!bitsPerComponent){bitsPerComponent=dict.get("BitsPerComponent","BPC");if(!bitsPerComponent)if(this.imageMask)bitsPerComponent=1; +else error("Bits per component missing in image: "+this.imageMask)}this.bpc=bitsPerComponent;if(!this.imageMask){var colorSpace=dict.get("ColorSpace","CS");if(!colorSpace){info("JPX images (which do not require color spaces)");switch(image.numComps){case 1:colorSpace=Name.get("DeviceGray");break;case 3:colorSpace=Name.get("DeviceRGB");break;case 4:colorSpace=Name.get("DeviceCMYK");break;default:error("JPX images with "+this.numComps+" color components not supported.")}}this.colorSpace=ColorSpace.parse(colorSpace, +xref,res);this.numComps=this.colorSpace.numComps}this.decode=dict.get("Decode","D");this.needsDecode=false;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode)||isMask&&!ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=true;var max=(1<<bitsPerComponent)-1;this.decodeCoefficients=[];this.decodeAddends=[];for(var i=0,j=0;i<this.decode.length;i+=2,++j){var dmin=this.decode[i];var dmax=this.decode[i+1];this.decodeCoefficients[j]=dmax-dmin;this.decodeAddends[j]=max* +dmin}}if(smask)this.smask=new PDFImage(xref,res,smask,false);else if(mask)if(isStream(mask))this.mask=new PDFImage(xref,res,mask,false,null,null,true);else this.mask=mask}PDFImage.buildImage=function PDFImage_buildImage(handler,xref,res,image,inline){var imagePromise=handleImageData(handler,xref,res,image);var smaskPromise;var maskPromise;var smask=image.dict.get("SMask");var mask=image.dict.get("Mask");if(smask){smaskPromise=handleImageData(handler,xref,res,smask);maskPromise=Promise.resolve(null)}else{smaskPromise= +Promise.resolve(null);if(mask)if(isStream(mask))maskPromise=handleImageData(handler,xref,res,mask);else if(isArray(mask))maskPromise=Promise.resolve(mask);else{warn("Unsupported mask format.");maskPromise=Promise.resolve(null)}else maskPromise=Promise.resolve(null)}return Promise.all([imagePromise,smaskPromise,maskPromise]).then(function(results){var imageData=results[0];var smaskData=results[1];var maskData=results[2];return new PDFImage(xref,res,imageData,inline,smaskData,maskData)})};PDFImage.resize= +function PDFImage_resize(pixels,bpc,components,w1,h1,w2,h2,dest,alpha01){if(components!==1&&components!==3)error("Unsupported component count for resizing.");var length=w2*h2*components;var temp=dest?dest:bpc<=8?new Uint8Array(length):bpc<=16?new Uint16Array(length):new Uint32Array(length);var xRatio=w1/w2;var yRatio=h1/h2;var i,j,py,newIndex=0,oldIndex;var xScaled=new Uint16Array(w2);var w1Scanline=w1*components;if(alpha01!==1)alpha01=0;for(j=0;j<w2;j++)xScaled[j]=Math.floor(j*xRatio)*components; +if(components===1)for(i=0;i<h2;i++){py=Math.floor(i*yRatio)*w1Scanline;for(j=0;j<w2;j++){oldIndex=py+xScaled[j];temp[newIndex++]=pixels[oldIndex]}}else if(components===3)for(i=0;i<h2;i++){py=Math.floor(i*yRatio)*w1Scanline;for(j=0;j<w2;j++){oldIndex=py+xScaled[j];temp[newIndex++]=pixels[oldIndex++];temp[newIndex++]=pixels[oldIndex++];temp[newIndex++]=pixels[oldIndex++];newIndex+=alpha01}}return temp};PDFImage.createMask=function PDFImage_createMask(imgArray,width,height,imageIsFromDecodeStream,inverseDecode){var computedLength= +(width+7>>3)*height;var actualLength=imgArray.byteLength;var haveFullData=computedLength===actualLength;var data,i;if(imageIsFromDecodeStream&&(!inverseDecode||haveFullData))data=imgArray;else if(!inverseDecode){data=new Uint8Array(actualLength);data.set(imgArray)}else{data=new Uint8Array(computedLength);data.set(imgArray);for(i=actualLength;i<computedLength;i++)data[i]=255}if(inverseDecode)for(i=0;i<actualLength;i++)data[i]=~data[i];return{data:data,width:width,height:height}};PDFImage.prototype= +{get drawWidth(){return Math.max(this.width,this.smask&&this.smask.width||0,this.mask&&this.mask.width||0)},get drawHeight(){return Math.max(this.height,this.smask&&this.smask.height||0,this.mask&&this.mask.height||0)},decodeBuffer:function PDFImage_decodeBuffer(buffer){var bpc=this.bpc;var numComps=this.numComps;var decodeAddends=this.decodeAddends;var decodeCoefficients=this.decodeCoefficients;var max=(1<<bpc)-1;var i,ii;if(bpc===1){for(i=0,ii=buffer.length;i<ii;i++)buffer[i]=+!buffer[i];return}var index= +0;for(i=0,ii=this.width*this.height;i<ii;i++)for(var j=0;j<numComps;j++){buffer[index]=decodeAndClamp(buffer[index],decodeAddends[j],decodeCoefficients[j],max);index++}},getComponents:function PDFImage_getComponents(buffer){var bpc=this.bpc;if(bpc===8)return buffer;var width=this.width;var height=this.height;var numComps=this.numComps;var length=width*height*numComps;var bufferPos=0;var output=bpc<=8?new Uint8Array(length):bpc<=16?new Uint16Array(length):new Uint32Array(length);var rowComps=width* +numComps;var max=(1<<bpc)-1;var i=0,ii,buf;if(bpc===1){var mask,loop1End,loop2End;for(var j=0;j<height;j++){loop1End=i+(rowComps&~7);loop2End=i+rowComps;while(i<loop1End){buf=buffer[bufferPos++];output[i]=buf>>7&1;output[i+1]=buf>>6&1;output[i+2]=buf>>5&1;output[i+3]=buf>>4&1;output[i+4]=buf>>3&1;output[i+5]=buf>>2&1;output[i+6]=buf>>1&1;output[i+7]=buf&1;i+=8}if(i<loop2End){buf=buffer[bufferPos++];mask=128;while(i<loop2End){output[i++]=+!!(buf&mask);mask>>=1}}}}else{var bits=0;buf=0;for(i=0,ii=length;i< +ii;++i){if(i%rowComps===0){buf=0;bits=0}while(bits<bpc){buf=buf<<8|buffer[bufferPos++];bits+=8}var remainingBits=bits-bpc;var value=buf>>remainingBits;output[i]=value<0?0:value>max?max:value;buf=buf&(1<<remainingBits)-1;bits=remainingBits}}return output},fillOpacity:function PDFImage_fillOpacity(rgbaBuf,width,height,actualHeight,image){var smask=this.smask;var mask=this.mask;var alphaBuf,sw,sh,i,ii,j;if(smask){sw=smask.width;sh=smask.height;alphaBuf=new Uint8Array(sw*sh);smask.fillGrayBuffer(alphaBuf); +if(sw!==width||sh!==height)alphaBuf=PDFImage.resize(alphaBuf,smask.bpc,1,sw,sh,width,height)}else if(mask)if(mask instanceof PDFImage){sw=mask.width;sh=mask.height;alphaBuf=new Uint8Array(sw*sh);mask.numComps=1;mask.fillGrayBuffer(alphaBuf);for(i=0,ii=sw*sh;i<ii;++i)alphaBuf[i]=255-alphaBuf[i];if(sw!==width||sh!==height)alphaBuf=PDFImage.resize(alphaBuf,mask.bpc,1,sw,sh,width,height)}else if(isArray(mask)){alphaBuf=new Uint8Array(width*height);var numComps=this.numComps;for(i=0,ii=width*height;i< +ii;++i){var opacity=0;var imageOffset=i*numComps;for(j=0;j<numComps;++j){var color=image[imageOffset+j];var maskOffset=j*2;if(color<mask[maskOffset]||color>mask[maskOffset+1]){opacity=255;break}}alphaBuf[i]=opacity}}else error("Unknown mask format.");if(alphaBuf)for(i=0,j=3,ii=width*actualHeight;i<ii;++i,j+=4)rgbaBuf[j]=alphaBuf[i];else for(i=0,j=3,ii=width*actualHeight;i<ii;++i,j+=4)rgbaBuf[j]=255},undoPreblend:function PDFImage_undoPreblend(buffer,width,height){var matte=this.smask&&this.smask.matte; +if(!matte)return;var matteRgb=this.colorSpace.getRgb(matte,0);var matteR=matteRgb[0];var matteG=matteRgb[1];var matteB=matteRgb[2];var length=width*height*4;var r,g,b;for(var i=0;i<length;i+=4){var alpha=buffer[i+3];if(alpha===0){buffer[i]=255;buffer[i+1]=255;buffer[i+2]=255;continue}var k=255/alpha;r=(buffer[i]-matteR)*k+matteR;g=(buffer[i+1]-matteG)*k+matteG;b=(buffer[i+2]-matteB)*k+matteB;buffer[i]=r<=0?0:r>=255?255:r|0;buffer[i+1]=g<=0?0:g>=255?255:g|0;buffer[i+2]=b<=0?0:b>=255?255:b|0}},createImageData:function PDFImage_createImageData(forceRGBA){var drawWidth= +this.drawWidth;var drawHeight=this.drawHeight;var imgData={width:drawWidth,height:drawHeight};var numComps=this.numComps;var originalWidth=this.width;var originalHeight=this.height;var bpc=this.bpc;var rowBytes=originalWidth*numComps*bpc+7>>3;var imgArray;if(!forceRGBA){var kind;if(this.colorSpace.name==="DeviceGray"&&bpc===1)kind=ImageKind.GRAYSCALE_1BPP;else if(this.colorSpace.name==="DeviceRGB"&&bpc===8&&!this.needsDecode)kind=ImageKind.RGB_24BPP;if(kind&&!this.smask&&!this.mask&&drawWidth===originalWidth&& +drawHeight===originalHeight){imgData.kind=kind;imgArray=this.getImageBytes(originalHeight*rowBytes);if(this.image instanceof DecodeStream)imgData.data=imgArray;else{var newArray=new Uint8Array(imgArray.length);newArray.set(imgArray);imgData.data=newArray}if(this.needsDecode){assert(kind===ImageKind.GRAYSCALE_1BPP);var buffer=imgData.data;for(var i=0,ii=buffer.length;i<ii;i++)buffer[i]^=255}return imgData}if(this.image instanceof JpegStream&&!this.smask&&!this.mask){imgData.kind=ImageKind.RGB_24BPP; +imgData.data=this.getImageBytes(originalHeight*rowBytes,drawWidth,drawHeight,true);return imgData}}imgArray=this.getImageBytes(originalHeight*rowBytes);var actualHeight=0|imgArray.length/rowBytes*drawHeight/originalHeight;var comps=this.getComponents(imgArray);var alpha01,maybeUndoPreblend;if(!forceRGBA&&!this.smask&&!this.mask){imgData.kind=ImageKind.RGB_24BPP;imgData.data=new Uint8Array(drawWidth*drawHeight*3);alpha01=0;maybeUndoPreblend=false}else{imgData.kind=ImageKind.RGBA_32BPP;imgData.data= +new Uint8Array(drawWidth*drawHeight*4);alpha01=1;maybeUndoPreblend=true;this.fillOpacity(imgData.data,drawWidth,drawHeight,actualHeight,comps)}if(this.needsDecode)this.decodeBuffer(comps);this.colorSpace.fillRgb(imgData.data,originalWidth,originalHeight,drawWidth,drawHeight,actualHeight,bpc,comps,alpha01);if(maybeUndoPreblend)this.undoPreblend(imgData.data,drawWidth,actualHeight);return imgData},fillGrayBuffer:function PDFImage_fillGrayBuffer(buffer){var numComps=this.numComps;if(numComps!==1)error("Reading gray scale from a color image: "+ +numComps);var width=this.width;var height=this.height;var bpc=this.bpc;var rowBytes=width*numComps*bpc+7>>3;var imgArray=this.getImageBytes(height*rowBytes);var comps=this.getComponents(imgArray);var i,length;if(bpc===1){length=width*height;if(this.needsDecode)for(i=0;i<length;++i)buffer[i]=comps[i]-1&255;else for(i=0;i<length;++i)buffer[i]=-comps[i]&255;return}if(this.needsDecode)this.decodeBuffer(comps);length=width*height;var scale=255/((1<<bpc)-1);for(i=0;i<length;++i)buffer[i]=scale*comps[i]| +0},getImageBytes:function PDFImage_getImageBytes(length,drawWidth,drawHeight,forceRGB){this.image.reset();this.image.drawWidth=drawWidth||this.width;this.image.drawHeight=drawHeight||this.height;this.image.forceRGB=!!forceRGB;return this.image.getBytes(length)}};return PDFImage}();var Metrics={"Courier":600,"Courier-Bold":600,"Courier-BoldOblique":600,"Courier-Oblique":600,"Helvetica":{"space":278,"exclam":278,"quotedbl":355,"numbersign":556,"dollar":556,"percent":889,"ampersand":667,"quoteright":222, +"parenleft":333,"parenright":333,"asterisk":389,"plus":584,"comma":278,"hyphen":333,"period":278,"slash":278,"zero":556,"one":556,"two":556,"three":556,"four":556,"five":556,"six":556,"seven":556,"eight":556,"nine":556,"colon":278,"semicolon":278,"less":584,"equal":584,"greater":584,"question":556,"at":1015,"A":667,"B":667,"C":722,"D":722,"E":667,"F":611,"G":778,"H":722,"I":278,"J":500,"K":667,"L":556,"M":833,"N":722,"O":778,"P":667,"Q":778,"R":722,"S":667,"T":611,"U":722,"V":667,"W":944,"X":667, +"Y":667,"Z":611,"bracketleft":278,"backslash":278,"bracketright":278,"asciicircum":469,"underscore":556,"quoteleft":222,"a":556,"b":556,"c":500,"d":556,"e":556,"f":278,"g":556,"h":556,"i":222,"j":222,"k":500,"l":222,"m":833,"n":556,"o":556,"p":556,"q":556,"r":333,"s":500,"t":278,"u":556,"v":500,"w":722,"x":500,"y":500,"z":500,"braceleft":334,"bar":260,"braceright":334,"asciitilde":584,"exclamdown":333,"cent":556,"sterling":556,"fraction":167,"yen":556,"florin":556,"section":556,"currency":556,"quotesingle":191, +"quotedblleft":333,"guillemotleft":556,"guilsinglleft":333,"guilsinglright":333,"fi":500,"fl":500,"endash":556,"dagger":556,"daggerdbl":556,"periodcentered":278,"paragraph":537,"bullet":350,"quotesinglbase":222,"quotedblbase":333,"quotedblright":333,"guillemotright":556,"ellipsis":1E3,"perthousand":1E3,"questiondown":611,"grave":333,"acute":333,"circumflex":333,"tilde":333,"macron":333,"breve":333,"dotaccent":333,"dieresis":333,"ring":333,"cedilla":333,"hungarumlaut":333,"ogonek":333,"caron":333, +"emdash":1E3,"AE":1E3,"ordfeminine":370,"Lslash":556,"Oslash":778,"OE":1E3,"ordmasculine":365,"ae":889,"dotlessi":278,"lslash":222,"oslash":611,"oe":944,"germandbls":611,"Idieresis":278,"eacute":556,"abreve":556,"uhungarumlaut":556,"ecaron":556,"Ydieresis":667,"divide":584,"Yacute":667,"Acircumflex":667,"aacute":556,"Ucircumflex":722,"yacute":500,"scommaaccent":500,"ecircumflex":556,"Uring":722,"Udieresis":722,"aogonek":556,"Uacute":722,"uogonek":556,"Edieresis":667,"Dcroat":722,"commaaccent":250, +"copyright":737,"Emacron":667,"ccaron":500,"aring":556,"Ncommaaccent":722,"lacute":222,"agrave":556,"Tcommaaccent":611,"Cacute":722,"atilde":556,"Edotaccent":667,"scaron":500,"scedilla":500,"iacute":278,"lozenge":471,"Rcaron":722,"Gcommaaccent":778,"ucircumflex":556,"acircumflex":556,"Amacron":667,"rcaron":333,"ccedilla":500,"Zdotaccent":611,"Thorn":667,"Omacron":778,"Racute":722,"Sacute":667,"dcaron":643,"Umacron":722,"uring":556,"threesuperior":333,"Ograve":778,"Agrave":667,"Abreve":667,"multiply":584, +"uacute":556,"Tcaron":611,"partialdiff":476,"ydieresis":500,"Nacute":722,"icircumflex":278,"Ecircumflex":667,"adieresis":556,"edieresis":556,"cacute":500,"nacute":556,"umacron":556,"Ncaron":722,"Iacute":278,"plusminus":584,"brokenbar":260,"registered":737,"Gbreve":778,"Idotaccent":278,"summation":600,"Egrave":667,"racute":333,"omacron":556,"Zacute":611,"Zcaron":611,"greaterequal":549,"Eth":722,"Ccedilla":722,"lcommaaccent":222,"tcaron":317,"eogonek":556,"Uogonek":722,"Aacute":667,"Adieresis":667, +"egrave":556,"zacute":500,"iogonek":222,"Oacute":778,"oacute":556,"amacron":556,"sacute":500,"idieresis":278,"Ocircumflex":778,"Ugrave":722,"Delta":612,"thorn":556,"twosuperior":333,"Odieresis":778,"mu":556,"igrave":278,"ohungarumlaut":556,"Eogonek":667,"dcroat":556,"threequarters":834,"Scedilla":667,"lcaron":299,"Kcommaaccent":667,"Lacute":556,"trademark":1E3,"edotaccent":556,"Igrave":278,"Imacron":278,"Lcaron":556,"onehalf":834,"lessequal":549,"ocircumflex":556,"ntilde":556,"Uhungarumlaut":722, +"Eacute":667,"emacron":556,"gbreve":556,"onequarter":834,"Scaron":667,"Scommaaccent":667,"Ohungarumlaut":778,"degree":400,"ograve":556,"Ccaron":722,"ugrave":556,"radical":453,"Dcaron":722,"rcommaaccent":333,"Ntilde":722,"otilde":556,"Rcommaaccent":722,"Lcommaaccent":556,"Atilde":667,"Aogonek":667,"Aring":667,"Otilde":778,"zdotaccent":500,"Ecaron":667,"Iogonek":278,"kcommaaccent":500,"minus":584,"Icircumflex":278,"ncaron":556,"tcommaaccent":278,"logicalnot":584,"odieresis":556,"udieresis":556,"notequal":549, +"gcommaaccent":556,"eth":556,"zcaron":500,"ncommaaccent":556,"onesuperior":333,"imacron":278,"Euro":556},"Helvetica-Bold":{"space":278,"exclam":333,"quotedbl":474,"numbersign":556,"dollar":556,"percent":889,"ampersand":722,"quoteright":278,"parenleft":333,"parenright":333,"asterisk":389,"plus":584,"comma":278,"hyphen":333,"period":278,"slash":278,"zero":556,"one":556,"two":556,"three":556,"four":556,"five":556,"six":556,"seven":556,"eight":556,"nine":556,"colon":333,"semicolon":333,"less":584,"equal":584, +"greater":584,"question":611,"at":975,"A":722,"B":722,"C":722,"D":722,"E":667,"F":611,"G":778,"H":722,"I":278,"J":556,"K":722,"L":611,"M":833,"N":722,"O":778,"P":667,"Q":778,"R":722,"S":667,"T":611,"U":722,"V":667,"W":944,"X":667,"Y":667,"Z":611,"bracketleft":333,"backslash":278,"bracketright":333,"asciicircum":584,"underscore":556,"quoteleft":278,"a":556,"b":611,"c":556,"d":611,"e":556,"f":333,"g":611,"h":611,"i":278,"j":278,"k":556,"l":278,"m":889,"n":611,"o":611,"p":611,"q":611,"r":389,"s":556, +"t":333,"u":611,"v":556,"w":778,"x":556,"y":556,"z":500,"braceleft":389,"bar":280,"braceright":389,"asciitilde":584,"exclamdown":333,"cent":556,"sterling":556,"fraction":167,"yen":556,"florin":556,"section":556,"currency":556,"quotesingle":238,"quotedblleft":500,"guillemotleft":556,"guilsinglleft":333,"guilsinglright":333,"fi":611,"fl":611,"endash":556,"dagger":556,"daggerdbl":556,"periodcentered":278,"paragraph":556,"bullet":350,"quotesinglbase":278,"quotedblbase":500,"quotedblright":500,"guillemotright":556, +"ellipsis":1E3,"perthousand":1E3,"questiondown":611,"grave":333,"acute":333,"circumflex":333,"tilde":333,"macron":333,"breve":333,"dotaccent":333,"dieresis":333,"ring":333,"cedilla":333,"hungarumlaut":333,"ogonek":333,"caron":333,"emdash":1E3,"AE":1E3,"ordfeminine":370,"Lslash":611,"Oslash":778,"OE":1E3,"ordmasculine":365,"ae":889,"dotlessi":278,"lslash":278,"oslash":611,"oe":944,"germandbls":611,"Idieresis":278,"eacute":556,"abreve":556,"uhungarumlaut":611,"ecaron":556,"Ydieresis":667,"divide":584, +"Yacute":667,"Acircumflex":722,"aacute":556,"Ucircumflex":722,"yacute":556,"scommaaccent":556,"ecircumflex":556,"Uring":722,"Udieresis":722,"aogonek":556,"Uacute":722,"uogonek":611,"Edieresis":667,"Dcroat":722,"commaaccent":250,"copyright":737,"Emacron":667,"ccaron":556,"aring":556,"Ncommaaccent":722,"lacute":278,"agrave":556,"Tcommaaccent":611,"Cacute":722,"atilde":556,"Edotaccent":667,"scaron":556,"scedilla":556,"iacute":278,"lozenge":494,"Rcaron":722,"Gcommaaccent":778,"ucircumflex":611,"acircumflex":556, +"Amacron":722,"rcaron":389,"ccedilla":556,"Zdotaccent":611,"Thorn":667,"Omacron":778,"Racute":722,"Sacute":667,"dcaron":743,"Umacron":722,"uring":611,"threesuperior":333,"Ograve":778,"Agrave":722,"Abreve":722,"multiply":584,"uacute":611,"Tcaron":611,"partialdiff":494,"ydieresis":556,"Nacute":722,"icircumflex":278,"Ecircumflex":667,"adieresis":556,"edieresis":556,"cacute":556,"nacute":611,"umacron":611,"Ncaron":722,"Iacute":278,"plusminus":584,"brokenbar":280,"registered":737,"Gbreve":778,"Idotaccent":278, +"summation":600,"Egrave":667,"racute":389,"omacron":611,"Zacute":611,"Zcaron":611,"greaterequal":549,"Eth":722,"Ccedilla":722,"lcommaaccent":278,"tcaron":389,"eogonek":556,"Uogonek":722,"Aacute":722,"Adieresis":722,"egrave":556,"zacute":500,"iogonek":278,"Oacute":778,"oacute":611,"amacron":556,"sacute":556,"idieresis":278,"Ocircumflex":778,"Ugrave":722,"Delta":612,"thorn":611,"twosuperior":333,"Odieresis":778,"mu":611,"igrave":278,"ohungarumlaut":611,"Eogonek":667,"dcroat":611,"threequarters":834, +"Scedilla":667,"lcaron":400,"Kcommaaccent":722,"Lacute":611,"trademark":1E3,"edotaccent":556,"Igrave":278,"Imacron":278,"Lcaron":611,"onehalf":834,"lessequal":549,"ocircumflex":611,"ntilde":611,"Uhungarumlaut":722,"Eacute":667,"emacron":556,"gbreve":611,"onequarter":834,"Scaron":667,"Scommaaccent":667,"Ohungarumlaut":778,"degree":400,"ograve":611,"Ccaron":722,"ugrave":611,"radical":549,"Dcaron":722,"rcommaaccent":389,"Ntilde":722,"otilde":611,"Rcommaaccent":722,"Lcommaaccent":611,"Atilde":722,"Aogonek":722, +"Aring":722,"Otilde":778,"zdotaccent":500,"Ecaron":667,"Iogonek":278,"kcommaaccent":556,"minus":584,"Icircumflex":278,"ncaron":611,"tcommaaccent":333,"logicalnot":584,"odieresis":611,"udieresis":611,"notequal":549,"gcommaaccent":611,"eth":611,"zcaron":500,"ncommaaccent":611,"onesuperior":333,"imacron":278,"Euro":556},"Helvetica-BoldOblique":{"space":278,"exclam":333,"quotedbl":474,"numbersign":556,"dollar":556,"percent":889,"ampersand":722,"quoteright":278,"parenleft":333,"parenright":333,"asterisk":389, +"plus":584,"comma":278,"hyphen":333,"period":278,"slash":278,"zero":556,"one":556,"two":556,"three":556,"four":556,"five":556,"six":556,"seven":556,"eight":556,"nine":556,"colon":333,"semicolon":333,"less":584,"equal":584,"greater":584,"question":611,"at":975,"A":722,"B":722,"C":722,"D":722,"E":667,"F":611,"G":778,"H":722,"I":278,"J":556,"K":722,"L":611,"M":833,"N":722,"O":778,"P":667,"Q":778,"R":722,"S":667,"T":611,"U":722,"V":667,"W":944,"X":667,"Y":667,"Z":611,"bracketleft":333,"backslash":278, +"bracketright":333,"asciicircum":584,"underscore":556,"quoteleft":278,"a":556,"b":611,"c":556,"d":611,"e":556,"f":333,"g":611,"h":611,"i":278,"j":278,"k":556,"l":278,"m":889,"n":611,"o":611,"p":611,"q":611,"r":389,"s":556,"t":333,"u":611,"v":556,"w":778,"x":556,"y":556,"z":500,"braceleft":389,"bar":280,"braceright":389,"asciitilde":584,"exclamdown":333,"cent":556,"sterling":556,"fraction":167,"yen":556,"florin":556,"section":556,"currency":556,"quotesingle":238,"quotedblleft":500,"guillemotleft":556, +"guilsinglleft":333,"guilsinglright":333,"fi":611,"fl":611,"endash":556,"dagger":556,"daggerdbl":556,"periodcentered":278,"paragraph":556,"bullet":350,"quotesinglbase":278,"quotedblbase":500,"quotedblright":500,"guillemotright":556,"ellipsis":1E3,"perthousand":1E3,"questiondown":611,"grave":333,"acute":333,"circumflex":333,"tilde":333,"macron":333,"breve":333,"dotaccent":333,"dieresis":333,"ring":333,"cedilla":333,"hungarumlaut":333,"ogonek":333,"caron":333,"emdash":1E3,"AE":1E3,"ordfeminine":370, +"Lslash":611,"Oslash":778,"OE":1E3,"ordmasculine":365,"ae":889,"dotlessi":278,"lslash":278,"oslash":611,"oe":944,"germandbls":611,"Idieresis":278,"eacute":556,"abreve":556,"uhungarumlaut":611,"ecaron":556,"Ydieresis":667,"divide":584,"Yacute":667,"Acircumflex":722,"aacute":556,"Ucircumflex":722,"yacute":556,"scommaaccent":556,"ecircumflex":556,"Uring":722,"Udieresis":722,"aogonek":556,"Uacute":722,"uogonek":611,"Edieresis":667,"Dcroat":722,"commaaccent":250,"copyright":737,"Emacron":667,"ccaron":556, +"aring":556,"Ncommaaccent":722,"lacute":278,"agrave":556,"Tcommaaccent":611,"Cacute":722,"atilde":556,"Edotaccent":667,"scaron":556,"scedilla":556,"iacute":278,"lozenge":494,"Rcaron":722,"Gcommaaccent":778,"ucircumflex":611,"acircumflex":556,"Amacron":722,"rcaron":389,"ccedilla":556,"Zdotaccent":611,"Thorn":667,"Omacron":778,"Racute":722,"Sacute":667,"dcaron":743,"Umacron":722,"uring":611,"threesuperior":333,"Ograve":778,"Agrave":722,"Abreve":722,"multiply":584,"uacute":611,"Tcaron":611,"partialdiff":494, +"ydieresis":556,"Nacute":722,"icircumflex":278,"Ecircumflex":667,"adieresis":556,"edieresis":556,"cacute":556,"nacute":611,"umacron":611,"Ncaron":722,"Iacute":278,"plusminus":584,"brokenbar":280,"registered":737,"Gbreve":778,"Idotaccent":278,"summation":600,"Egrave":667,"racute":389,"omacron":611,"Zacute":611,"Zcaron":611,"greaterequal":549,"Eth":722,"Ccedilla":722,"lcommaaccent":278,"tcaron":389,"eogonek":556,"Uogonek":722,"Aacute":722,"Adieresis":722,"egrave":556,"zacute":500,"iogonek":278,"Oacute":778, +"oacute":611,"amacron":556,"sacute":556,"idieresis":278,"Ocircumflex":778,"Ugrave":722,"Delta":612,"thorn":611,"twosuperior":333,"Odieresis":778,"mu":611,"igrave":278,"ohungarumlaut":611,"Eogonek":667,"dcroat":611,"threequarters":834,"Scedilla":667,"lcaron":400,"Kcommaaccent":722,"Lacute":611,"trademark":1E3,"edotaccent":556,"Igrave":278,"Imacron":278,"Lcaron":611,"onehalf":834,"lessequal":549,"ocircumflex":611,"ntilde":611,"Uhungarumlaut":722,"Eacute":667,"emacron":556,"gbreve":611,"onequarter":834, +"Scaron":667,"Scommaaccent":667,"Ohungarumlaut":778,"degree":400,"ograve":611,"Ccaron":722,"ugrave":611,"radical":549,"Dcaron":722,"rcommaaccent":389,"Ntilde":722,"otilde":611,"Rcommaaccent":722,"Lcommaaccent":611,"Atilde":722,"Aogonek":722,"Aring":722,"Otilde":778,"zdotaccent":500,"Ecaron":667,"Iogonek":278,"kcommaaccent":556,"minus":584,"Icircumflex":278,"ncaron":611,"tcommaaccent":333,"logicalnot":584,"odieresis":611,"udieresis":611,"notequal":549,"gcommaaccent":611,"eth":611,"zcaron":500,"ncommaaccent":611, +"onesuperior":333,"imacron":278,"Euro":556},"Helvetica-Oblique":{"space":278,"exclam":278,"quotedbl":355,"numbersign":556,"dollar":556,"percent":889,"ampersand":667,"quoteright":222,"parenleft":333,"parenright":333,"asterisk":389,"plus":584,"comma":278,"hyphen":333,"period":278,"slash":278,"zero":556,"one":556,"two":556,"three":556,"four":556,"five":556,"six":556,"seven":556,"eight":556,"nine":556,"colon":278,"semicolon":278,"less":584,"equal":584,"greater":584,"question":556,"at":1015,"A":667,"B":667, +"C":722,"D":722,"E":667,"F":611,"G":778,"H":722,"I":278,"J":500,"K":667,"L":556,"M":833,"N":722,"O":778,"P":667,"Q":778,"R":722,"S":667,"T":611,"U":722,"V":667,"W":944,"X":667,"Y":667,"Z":611,"bracketleft":278,"backslash":278,"bracketright":278,"asciicircum":469,"underscore":556,"quoteleft":222,"a":556,"b":556,"c":500,"d":556,"e":556,"f":278,"g":556,"h":556,"i":222,"j":222,"k":500,"l":222,"m":833,"n":556,"o":556,"p":556,"q":556,"r":333,"s":500,"t":278,"u":556,"v":500,"w":722,"x":500,"y":500,"z":500, +"braceleft":334,"bar":260,"braceright":334,"asciitilde":584,"exclamdown":333,"cent":556,"sterling":556,"fraction":167,"yen":556,"florin":556,"section":556,"currency":556,"quotesingle":191,"quotedblleft":333,"guillemotleft":556,"guilsinglleft":333,"guilsinglright":333,"fi":500,"fl":500,"endash":556,"dagger":556,"daggerdbl":556,"periodcentered":278,"paragraph":537,"bullet":350,"quotesinglbase":222,"quotedblbase":333,"quotedblright":333,"guillemotright":556,"ellipsis":1E3,"perthousand":1E3,"questiondown":611, +"grave":333,"acute":333,"circumflex":333,"tilde":333,"macron":333,"breve":333,"dotaccent":333,"dieresis":333,"ring":333,"cedilla":333,"hungarumlaut":333,"ogonek":333,"caron":333,"emdash":1E3,"AE":1E3,"ordfeminine":370,"Lslash":556,"Oslash":778,"OE":1E3,"ordmasculine":365,"ae":889,"dotlessi":278,"lslash":222,"oslash":611,"oe":944,"germandbls":611,"Idieresis":278,"eacute":556,"abreve":556,"uhungarumlaut":556,"ecaron":556,"Ydieresis":667,"divide":584,"Yacute":667,"Acircumflex":667,"aacute":556,"Ucircumflex":722, +"yacute":500,"scommaaccent":500,"ecircumflex":556,"Uring":722,"Udieresis":722,"aogonek":556,"Uacute":722,"uogonek":556,"Edieresis":667,"Dcroat":722,"commaaccent":250,"copyright":737,"Emacron":667,"ccaron":500,"aring":556,"Ncommaaccent":722,"lacute":222,"agrave":556,"Tcommaaccent":611,"Cacute":722,"atilde":556,"Edotaccent":667,"scaron":500,"scedilla":500,"iacute":278,"lozenge":471,"Rcaron":722,"Gcommaaccent":778,"ucircumflex":556,"acircumflex":556,"Amacron":667,"rcaron":333,"ccedilla":500,"Zdotaccent":611, +"Thorn":667,"Omacron":778,"Racute":722,"Sacute":667,"dcaron":643,"Umacron":722,"uring":556,"threesuperior":333,"Ograve":778,"Agrave":667,"Abreve":667,"multiply":584,"uacute":556,"Tcaron":611,"partialdiff":476,"ydieresis":500,"Nacute":722,"icircumflex":278,"Ecircumflex":667,"adieresis":556,"edieresis":556,"cacute":500,"nacute":556,"umacron":556,"Ncaron":722,"Iacute":278,"plusminus":584,"brokenbar":260,"registered":737,"Gbreve":778,"Idotaccent":278,"summation":600,"Egrave":667,"racute":333,"omacron":556, +"Zacute":611,"Zcaron":611,"greaterequal":549,"Eth":722,"Ccedilla":722,"lcommaaccent":222,"tcaron":317,"eogonek":556,"Uogonek":722,"Aacute":667,"Adieresis":667,"egrave":556,"zacute":500,"iogonek":222,"Oacute":778,"oacute":556,"amacron":556,"sacute":500,"idieresis":278,"Ocircumflex":778,"Ugrave":722,"Delta":612,"thorn":556,"twosuperior":333,"Odieresis":778,"mu":556,"igrave":278,"ohungarumlaut":556,"Eogonek":667,"dcroat":556,"threequarters":834,"Scedilla":667,"lcaron":299,"Kcommaaccent":667,"Lacute":556, +"trademark":1E3,"edotaccent":556,"Igrave":278,"Imacron":278,"Lcaron":556,"onehalf":834,"lessequal":549,"ocircumflex":556,"ntilde":556,"Uhungarumlaut":722,"Eacute":667,"emacron":556,"gbreve":556,"onequarter":834,"Scaron":667,"Scommaaccent":667,"Ohungarumlaut":778,"degree":400,"ograve":556,"Ccaron":722,"ugrave":556,"radical":453,"Dcaron":722,"rcommaaccent":333,"Ntilde":722,"otilde":556,"Rcommaaccent":722,"Lcommaaccent":556,"Atilde":667,"Aogonek":667,"Aring":667,"Otilde":778,"zdotaccent":500,"Ecaron":667, +"Iogonek":278,"kcommaaccent":500,"minus":584,"Icircumflex":278,"ncaron":556,"tcommaaccent":278,"logicalnot":584,"odieresis":556,"udieresis":556,"notequal":549,"gcommaaccent":556,"eth":556,"zcaron":500,"ncommaaccent":556,"onesuperior":333,"imacron":278,"Euro":556},"Symbol":{"space":250,"exclam":333,"universal":713,"numbersign":500,"existential":549,"percent":833,"ampersand":778,"suchthat":439,"parenleft":333,"parenright":333,"asteriskmath":500,"plus":549,"comma":250,"minus":549,"period":250,"slash":278, +"zero":500,"one":500,"two":500,"three":500,"four":500,"five":500,"six":500,"seven":500,"eight":500,"nine":500,"colon":278,"semicolon":278,"less":549,"equal":549,"greater":549,"question":444,"congruent":549,"Alpha":722,"Beta":667,"Chi":722,"Delta":612,"Epsilon":611,"Phi":763,"Gamma":603,"Eta":722,"Iota":333,"theta1":631,"Kappa":722,"Lambda":686,"Mu":889,"Nu":722,"Omicron":722,"Pi":768,"Theta":741,"Rho":556,"Sigma":592,"Tau":611,"Upsilon":690,"sigma1":439,"Omega":768,"Xi":645,"Psi":795,"Zeta":611,"bracketleft":333, +"therefore":863,"bracketright":333,"perpendicular":658,"underscore":500,"radicalex":500,"alpha":631,"beta":549,"chi":549,"delta":494,"epsilon":439,"phi":521,"gamma":411,"eta":603,"iota":329,"phi1":603,"kappa":549,"lambda":549,"mu":576,"nu":521,"omicron":549,"pi":549,"theta":521,"rho":549,"sigma":603,"tau":439,"upsilon":576,"omega1":713,"omega":686,"xi":493,"psi":686,"zeta":494,"braceleft":480,"bar":200,"braceright":480,"similar":549,"Euro":750,"Upsilon1":620,"minute":247,"lessequal":549,"fraction":167, +"infinity":713,"florin":500,"club":753,"diamond":753,"heart":753,"spade":753,"arrowboth":1042,"arrowleft":987,"arrowup":603,"arrowright":987,"arrowdown":603,"degree":400,"plusminus":549,"second":411,"greaterequal":549,"multiply":549,"proportional":713,"partialdiff":494,"bullet":460,"divide":549,"notequal":549,"equivalence":549,"approxequal":549,"ellipsis":1E3,"arrowvertex":603,"arrowhorizex":1E3,"carriagereturn":658,"aleph":823,"Ifraktur":686,"Rfraktur":795,"weierstrass":987,"circlemultiply":768, +"circleplus":768,"emptyset":823,"intersection":768,"union":768,"propersuperset":713,"reflexsuperset":713,"notsubset":713,"propersubset":713,"reflexsubset":713,"element":713,"notelement":713,"angle":768,"gradient":713,"registerserif":790,"copyrightserif":790,"trademarkserif":890,"product":823,"radical":549,"dotmath":250,"logicalnot":713,"logicaland":603,"logicalor":603,"arrowdblboth":1042,"arrowdblleft":987,"arrowdblup":603,"arrowdblright":987,"arrowdbldown":603,"lozenge":494,"angleleft":329,"registersans":790, +"copyrightsans":790,"trademarksans":786,"summation":713,"parenlefttp":384,"parenleftex":384,"parenleftbt":384,"bracketlefttp":384,"bracketleftex":384,"bracketleftbt":384,"bracelefttp":494,"braceleftmid":494,"braceleftbt":494,"braceex":494,"angleright":329,"integral":274,"integraltp":686,"integralex":686,"integralbt":686,"parenrighttp":384,"parenrightex":384,"parenrightbt":384,"bracketrighttp":384,"bracketrightex":384,"bracketrightbt":384,"bracerighttp":494,"bracerightmid":494,"bracerightbt":494,"apple":790}, +"Times-Roman":{"space":250,"exclam":333,"quotedbl":408,"numbersign":500,"dollar":500,"percent":833,"ampersand":778,"quoteright":333,"parenleft":333,"parenright":333,"asterisk":500,"plus":564,"comma":250,"hyphen":333,"period":250,"slash":278,"zero":500,"one":500,"two":500,"three":500,"four":500,"five":500,"six":500,"seven":500,"eight":500,"nine":500,"colon":278,"semicolon":278,"less":564,"equal":564,"greater":564,"question":444,"at":921,"A":722,"B":667,"C":667,"D":722,"E":611,"F":556,"G":722,"H":722, +"I":333,"J":389,"K":722,"L":611,"M":889,"N":722,"O":722,"P":556,"Q":722,"R":667,"S":556,"T":611,"U":722,"V":722,"W":944,"X":722,"Y":722,"Z":611,"bracketleft":333,"backslash":278,"bracketright":333,"asciicircum":469,"underscore":500,"quoteleft":333,"a":444,"b":500,"c":444,"d":500,"e":444,"f":333,"g":500,"h":500,"i":278,"j":278,"k":500,"l":278,"m":778,"n":500,"o":500,"p":500,"q":500,"r":333,"s":389,"t":278,"u":500,"v":500,"w":722,"x":500,"y":500,"z":444,"braceleft":480,"bar":200,"braceright":480,"asciitilde":541, +"exclamdown":333,"cent":500,"sterling":500,"fraction":167,"yen":500,"florin":500,"section":500,"currency":500,"quotesingle":180,"quotedblleft":444,"guillemotleft":500,"guilsinglleft":333,"guilsinglright":333,"fi":556,"fl":556,"endash":500,"dagger":500,"daggerdbl":500,"periodcentered":250,"paragraph":453,"bullet":350,"quotesinglbase":333,"quotedblbase":444,"quotedblright":444,"guillemotright":500,"ellipsis":1E3,"perthousand":1E3,"questiondown":444,"grave":333,"acute":333,"circumflex":333,"tilde":333, +"macron":333,"breve":333,"dotaccent":333,"dieresis":333,"ring":333,"cedilla":333,"hungarumlaut":333,"ogonek":333,"caron":333,"emdash":1E3,"AE":889,"ordfeminine":276,"Lslash":611,"Oslash":722,"OE":889,"ordmasculine":310,"ae":667,"dotlessi":278,"lslash":278,"oslash":500,"oe":722,"germandbls":500,"Idieresis":333,"eacute":444,"abreve":444,"uhungarumlaut":500,"ecaron":444,"Ydieresis":722,"divide":564,"Yacute":722,"Acircumflex":722,"aacute":444,"Ucircumflex":722,"yacute":500,"scommaaccent":389,"ecircumflex":444, +"Uring":722,"Udieresis":722,"aogonek":444,"Uacute":722,"uogonek":500,"Edieresis":611,"Dcroat":722,"commaaccent":250,"copyright":760,"Emacron":611,"ccaron":444,"aring":444,"Ncommaaccent":722,"lacute":278,"agrave":444,"Tcommaaccent":611,"Cacute":667,"atilde":444,"Edotaccent":611,"scaron":389,"scedilla":389,"iacute":278,"lozenge":471,"Rcaron":667,"Gcommaaccent":722,"ucircumflex":500,"acircumflex":444,"Amacron":722,"rcaron":333,"ccedilla":444,"Zdotaccent":611,"Thorn":556,"Omacron":722,"Racute":667,"Sacute":556, +"dcaron":588,"Umacron":722,"uring":500,"threesuperior":300,"Ograve":722,"Agrave":722,"Abreve":722,"multiply":564,"uacute":500,"Tcaron":611,"partialdiff":476,"ydieresis":500,"Nacute":722,"icircumflex":278,"Ecircumflex":611,"adieresis":444,"edieresis":444,"cacute":444,"nacute":500,"umacron":500,"Ncaron":722,"Iacute":333,"plusminus":564,"brokenbar":200,"registered":760,"Gbreve":722,"Idotaccent":333,"summation":600,"Egrave":611,"racute":333,"omacron":500,"Zacute":611,"Zcaron":611,"greaterequal":549,"Eth":722, +"Ccedilla":667,"lcommaaccent":278,"tcaron":326,"eogonek":444,"Uogonek":722,"Aacute":722,"Adieresis":722,"egrave":444,"zacute":444,"iogonek":278,"Oacute":722,"oacute":500,"amacron":444,"sacute":389,"idieresis":278,"Ocircumflex":722,"Ugrave":722,"Delta":612,"thorn":500,"twosuperior":300,"Odieresis":722,"mu":500,"igrave":278,"ohungarumlaut":500,"Eogonek":611,"dcroat":500,"threequarters":750,"Scedilla":556,"lcaron":344,"Kcommaaccent":722,"Lacute":611,"trademark":980,"edotaccent":444,"Igrave":333,"Imacron":333, +"Lcaron":611,"onehalf":750,"lessequal":549,"ocircumflex":500,"ntilde":500,"Uhungarumlaut":722,"Eacute":611,"emacron":444,"gbreve":500,"onequarter":750,"Scaron":556,"Scommaaccent":556,"Ohungarumlaut":722,"degree":400,"ograve":500,"Ccaron":667,"ugrave":500,"radical":453,"Dcaron":722,"rcommaaccent":333,"Ntilde":722,"otilde":500,"Rcommaaccent":667,"Lcommaaccent":611,"Atilde":722,"Aogonek":722,"Aring":722,"Otilde":722,"zdotaccent":444,"Ecaron":611,"Iogonek":333,"kcommaaccent":500,"minus":564,"Icircumflex":333, +"ncaron":500,"tcommaaccent":278,"logicalnot":564,"odieresis":500,"udieresis":500,"notequal":549,"gcommaaccent":500,"eth":500,"zcaron":444,"ncommaaccent":500,"onesuperior":300,"imacron":278,"Euro":500},"Times-Bold":{"space":250,"exclam":333,"quotedbl":555,"numbersign":500,"dollar":500,"percent":1E3,"ampersand":833,"quoteright":333,"parenleft":333,"parenright":333,"asterisk":500,"plus":570,"comma":250,"hyphen":333,"period":250,"slash":278,"zero":500,"one":500,"two":500,"three":500,"four":500,"five":500, +"six":500,"seven":500,"eight":500,"nine":500,"colon":333,"semicolon":333,"less":570,"equal":570,"greater":570,"question":500,"at":930,"A":722,"B":667,"C":722,"D":722,"E":667,"F":611,"G":778,"H":778,"I":389,"J":500,"K":778,"L":667,"M":944,"N":722,"O":778,"P":611,"Q":778,"R":722,"S":556,"T":667,"U":722,"V":722,"W":1E3,"X":722,"Y":722,"Z":667,"bracketleft":333,"backslash":278,"bracketright":333,"asciicircum":581,"underscore":500,"quoteleft":333,"a":500,"b":556,"c":444,"d":556,"e":444,"f":333,"g":500, +"h":556,"i":278,"j":333,"k":556,"l":278,"m":833,"n":556,"o":500,"p":556,"q":556,"r":444,"s":389,"t":333,"u":556,"v":500,"w":722,"x":500,"y":500,"z":444,"braceleft":394,"bar":220,"braceright":394,"asciitilde":520,"exclamdown":333,"cent":500,"sterling":500,"fraction":167,"yen":500,"florin":500,"section":500,"currency":500,"quotesingle":278,"quotedblleft":500,"guillemotleft":500,"guilsinglleft":333,"guilsinglright":333,"fi":556,"fl":556,"endash":500,"dagger":500,"daggerdbl":500,"periodcentered":250, +"paragraph":540,"bullet":350,"quotesinglbase":333,"quotedblbase":500,"quotedblright":500,"guillemotright":500,"ellipsis":1E3,"perthousand":1E3,"questiondown":500,"grave":333,"acute":333,"circumflex":333,"tilde":333,"macron":333,"breve":333,"dotaccent":333,"dieresis":333,"ring":333,"cedilla":333,"hungarumlaut":333,"ogonek":333,"caron":333,"emdash":1E3,"AE":1E3,"ordfeminine":300,"Lslash":667,"Oslash":778,"OE":1E3,"ordmasculine":330,"ae":722,"dotlessi":278,"lslash":278,"oslash":500,"oe":722,"germandbls":556, +"Idieresis":389,"eacute":444,"abreve":500,"uhungarumlaut":556,"ecaron":444,"Ydieresis":722,"divide":570,"Yacute":722,"Acircumflex":722,"aacute":500,"Ucircumflex":722,"yacute":500,"scommaaccent":389,"ecircumflex":444,"Uring":722,"Udieresis":722,"aogonek":500,"Uacute":722,"uogonek":556,"Edieresis":667,"Dcroat":722,"commaaccent":250,"copyright":747,"Emacron":667,"ccaron":444,"aring":500,"Ncommaaccent":722,"lacute":278,"agrave":500,"Tcommaaccent":667,"Cacute":722,"atilde":500,"Edotaccent":667,"scaron":389, +"scedilla":389,"iacute":278,"lozenge":494,"Rcaron":722,"Gcommaaccent":778,"ucircumflex":556,"acircumflex":500,"Amacron":722,"rcaron":444,"ccedilla":444,"Zdotaccent":667,"Thorn":611,"Omacron":778,"Racute":722,"Sacute":556,"dcaron":672,"Umacron":722,"uring":556,"threesuperior":300,"Ograve":778,"Agrave":722,"Abreve":722,"multiply":570,"uacute":556,"Tcaron":667,"partialdiff":494,"ydieresis":500,"Nacute":722,"icircumflex":278,"Ecircumflex":667,"adieresis":500,"edieresis":444,"cacute":444,"nacute":556, +"umacron":556,"Ncaron":722,"Iacute":389,"plusminus":570,"brokenbar":220,"registered":747,"Gbreve":778,"Idotaccent":389,"summation":600,"Egrave":667,"racute":444,"omacron":500,"Zacute":667,"Zcaron":667,"greaterequal":549,"Eth":722,"Ccedilla":722,"lcommaaccent":278,"tcaron":416,"eogonek":444,"Uogonek":722,"Aacute":722,"Adieresis":722,"egrave":444,"zacute":444,"iogonek":278,"Oacute":778,"oacute":500,"amacron":500,"sacute":389,"idieresis":278,"Ocircumflex":778,"Ugrave":722,"Delta":612,"thorn":556,"twosuperior":300, +"Odieresis":778,"mu":556,"igrave":278,"ohungarumlaut":500,"Eogonek":667,"dcroat":556,"threequarters":750,"Scedilla":556,"lcaron":394,"Kcommaaccent":778,"Lacute":667,"trademark":1E3,"edotaccent":444,"Igrave":389,"Imacron":389,"Lcaron":667,"onehalf":750,"lessequal":549,"ocircumflex":500,"ntilde":556,"Uhungarumlaut":722,"Eacute":667,"emacron":444,"gbreve":500,"onequarter":750,"Scaron":556,"Scommaaccent":556,"Ohungarumlaut":778,"degree":400,"ograve":500,"Ccaron":722,"ugrave":556,"radical":549,"Dcaron":722, +"rcommaaccent":444,"Ntilde":722,"otilde":500,"Rcommaaccent":722,"Lcommaaccent":667,"Atilde":722,"Aogonek":722,"Aring":722,"Otilde":778,"zdotaccent":444,"Ecaron":667,"Iogonek":389,"kcommaaccent":556,"minus":570,"Icircumflex":389,"ncaron":556,"tcommaaccent":333,"logicalnot":570,"odieresis":500,"udieresis":556,"notequal":549,"gcommaaccent":500,"eth":500,"zcaron":444,"ncommaaccent":556,"onesuperior":300,"imacron":278,"Euro":500},"Times-BoldItalic":{"space":250,"exclam":389,"quotedbl":555,"numbersign":500, +"dollar":500,"percent":833,"ampersand":778,"quoteright":333,"parenleft":333,"parenright":333,"asterisk":500,"plus":570,"comma":250,"hyphen":333,"period":250,"slash":278,"zero":500,"one":500,"two":500,"three":500,"four":500,"five":500,"six":500,"seven":500,"eight":500,"nine":500,"colon":333,"semicolon":333,"less":570,"equal":570,"greater":570,"question":500,"at":832,"A":667,"B":667,"C":667,"D":722,"E":667,"F":667,"G":722,"H":778,"I":389,"J":500,"K":667,"L":611,"M":889,"N":722,"O":722,"P":611,"Q":722, +"R":667,"S":556,"T":611,"U":722,"V":667,"W":889,"X":667,"Y":611,"Z":611,"bracketleft":333,"backslash":278,"bracketright":333,"asciicircum":570,"underscore":500,"quoteleft":333,"a":500,"b":500,"c":444,"d":500,"e":444,"f":333,"g":500,"h":556,"i":278,"j":278,"k":500,"l":278,"m":778,"n":556,"o":500,"p":500,"q":500,"r":389,"s":389,"t":278,"u":556,"v":444,"w":667,"x":500,"y":444,"z":389,"braceleft":348,"bar":220,"braceright":348,"asciitilde":570,"exclamdown":389,"cent":500,"sterling":500,"fraction":167, +"yen":500,"florin":500,"section":500,"currency":500,"quotesingle":278,"quotedblleft":500,"guillemotleft":500,"guilsinglleft":333,"guilsinglright":333,"fi":556,"fl":556,"endash":500,"dagger":500,"daggerdbl":500,"periodcentered":250,"paragraph":500,"bullet":350,"quotesinglbase":333,"quotedblbase":500,"quotedblright":500,"guillemotright":500,"ellipsis":1E3,"perthousand":1E3,"questiondown":500,"grave":333,"acute":333,"circumflex":333,"tilde":333,"macron":333,"breve":333,"dotaccent":333,"dieresis":333, +"ring":333,"cedilla":333,"hungarumlaut":333,"ogonek":333,"caron":333,"emdash":1E3,"AE":944,"ordfeminine":266,"Lslash":611,"Oslash":722,"OE":944,"ordmasculine":300,"ae":722,"dotlessi":278,"lslash":278,"oslash":500,"oe":722,"germandbls":500,"Idieresis":389,"eacute":444,"abreve":500,"uhungarumlaut":556,"ecaron":444,"Ydieresis":611,"divide":570,"Yacute":611,"Acircumflex":667,"aacute":500,"Ucircumflex":722,"yacute":444,"scommaaccent":389,"ecircumflex":444,"Uring":722,"Udieresis":722,"aogonek":500,"Uacute":722, +"uogonek":556,"Edieresis":667,"Dcroat":722,"commaaccent":250,"copyright":747,"Emacron":667,"ccaron":444,"aring":500,"Ncommaaccent":722,"lacute":278,"agrave":500,"Tcommaaccent":611,"Cacute":667,"atilde":500,"Edotaccent":667,"scaron":389,"scedilla":389,"iacute":278,"lozenge":494,"Rcaron":667,"Gcommaaccent":722,"ucircumflex":556,"acircumflex":500,"Amacron":667,"rcaron":389,"ccedilla":444,"Zdotaccent":611,"Thorn":611,"Omacron":722,"Racute":667,"Sacute":556,"dcaron":608,"Umacron":722,"uring":556,"threesuperior":300, +"Ograve":722,"Agrave":667,"Abreve":667,"multiply":570,"uacute":556,"Tcaron":611,"partialdiff":494,"ydieresis":444,"Nacute":722,"icircumflex":278,"Ecircumflex":667,"adieresis":500,"edieresis":444,"cacute":444,"nacute":556,"umacron":556,"Ncaron":722,"Iacute":389,"plusminus":570,"brokenbar":220,"registered":747,"Gbreve":722,"Idotaccent":389,"summation":600,"Egrave":667,"racute":389,"omacron":500,"Zacute":611,"Zcaron":611,"greaterequal":549,"Eth":722,"Ccedilla":667,"lcommaaccent":278,"tcaron":366,"eogonek":444, +"Uogonek":722,"Aacute":667,"Adieresis":667,"egrave":444,"zacute":389,"iogonek":278,"Oacute":722,"oacute":500,"amacron":500,"sacute":389,"idieresis":278,"Ocircumflex":722,"Ugrave":722,"Delta":612,"thorn":500,"twosuperior":300,"Odieresis":722,"mu":576,"igrave":278,"ohungarumlaut":500,"Eogonek":667,"dcroat":500,"threequarters":750,"Scedilla":556,"lcaron":382,"Kcommaaccent":667,"Lacute":611,"trademark":1E3,"edotaccent":444,"Igrave":389,"Imacron":389,"Lcaron":611,"onehalf":750,"lessequal":549,"ocircumflex":500, +"ntilde":556,"Uhungarumlaut":722,"Eacute":667,"emacron":444,"gbreve":500,"onequarter":750,"Scaron":556,"Scommaaccent":556,"Ohungarumlaut":722,"degree":400,"ograve":500,"Ccaron":667,"ugrave":556,"radical":549,"Dcaron":722,"rcommaaccent":389,"Ntilde":722,"otilde":500,"Rcommaaccent":667,"Lcommaaccent":611,"Atilde":667,"Aogonek":667,"Aring":667,"Otilde":722,"zdotaccent":389,"Ecaron":667,"Iogonek":389,"kcommaaccent":500,"minus":606,"Icircumflex":389,"ncaron":556,"tcommaaccent":278,"logicalnot":606,"odieresis":500, +"udieresis":556,"notequal":549,"gcommaaccent":500,"eth":500,"zcaron":389,"ncommaaccent":556,"onesuperior":300,"imacron":278,"Euro":500},"Times-Italic":{"space":250,"exclam":333,"quotedbl":420,"numbersign":500,"dollar":500,"percent":833,"ampersand":778,"quoteright":333,"parenleft":333,"parenright":333,"asterisk":500,"plus":675,"comma":250,"hyphen":333,"period":250,"slash":278,"zero":500,"one":500,"two":500,"three":500,"four":500,"five":500,"six":500,"seven":500,"eight":500,"nine":500,"colon":333,"semicolon":333, +"less":675,"equal":675,"greater":675,"question":500,"at":920,"A":611,"B":611,"C":667,"D":722,"E":611,"F":611,"G":722,"H":722,"I":333,"J":444,"K":667,"L":556,"M":833,"N":667,"O":722,"P":611,"Q":722,"R":611,"S":500,"T":556,"U":722,"V":611,"W":833,"X":611,"Y":556,"Z":556,"bracketleft":389,"backslash":278,"bracketright":389,"asciicircum":422,"underscore":500,"quoteleft":333,"a":500,"b":500,"c":444,"d":500,"e":444,"f":278,"g":500,"h":500,"i":278,"j":278,"k":444,"l":278,"m":722,"n":500,"o":500,"p":500, +"q":500,"r":389,"s":389,"t":278,"u":500,"v":444,"w":667,"x":444,"y":444,"z":389,"braceleft":400,"bar":275,"braceright":400,"asciitilde":541,"exclamdown":389,"cent":500,"sterling":500,"fraction":167,"yen":500,"florin":500,"section":500,"currency":500,"quotesingle":214,"quotedblleft":556,"guillemotleft":500,"guilsinglleft":333,"guilsinglright":333,"fi":500,"fl":500,"endash":500,"dagger":500,"daggerdbl":500,"periodcentered":250,"paragraph":523,"bullet":350,"quotesinglbase":333,"quotedblbase":556,"quotedblright":556, +"guillemotright":500,"ellipsis":889,"perthousand":1E3,"questiondown":500,"grave":333,"acute":333,"circumflex":333,"tilde":333,"macron":333,"breve":333,"dotaccent":333,"dieresis":333,"ring":333,"cedilla":333,"hungarumlaut":333,"ogonek":333,"caron":333,"emdash":889,"AE":889,"ordfeminine":276,"Lslash":556,"Oslash":722,"OE":944,"ordmasculine":310,"ae":667,"dotlessi":278,"lslash":278,"oslash":500,"oe":667,"germandbls":500,"Idieresis":333,"eacute":444,"abreve":500,"uhungarumlaut":500,"ecaron":444,"Ydieresis":556, +"divide":675,"Yacute":556,"Acircumflex":611,"aacute":500,"Ucircumflex":722,"yacute":444,"scommaaccent":389,"ecircumflex":444,"Uring":722,"Udieresis":722,"aogonek":500,"Uacute":722,"uogonek":500,"Edieresis":611,"Dcroat":722,"commaaccent":250,"copyright":760,"Emacron":611,"ccaron":444,"aring":500,"Ncommaaccent":667,"lacute":278,"agrave":500,"Tcommaaccent":556,"Cacute":667,"atilde":500,"Edotaccent":611,"scaron":389,"scedilla":389,"iacute":278,"lozenge":471,"Rcaron":611,"Gcommaaccent":722,"ucircumflex":500, +"acircumflex":500,"Amacron":611,"rcaron":389,"ccedilla":444,"Zdotaccent":556,"Thorn":611,"Omacron":722,"Racute":611,"Sacute":500,"dcaron":544,"Umacron":722,"uring":500,"threesuperior":300,"Ograve":722,"Agrave":611,"Abreve":611,"multiply":675,"uacute":500,"Tcaron":556,"partialdiff":476,"ydieresis":444,"Nacute":667,"icircumflex":278,"Ecircumflex":611,"adieresis":500,"edieresis":444,"cacute":444,"nacute":500,"umacron":500,"Ncaron":667,"Iacute":333,"plusminus":675,"brokenbar":275,"registered":760,"Gbreve":722, +"Idotaccent":333,"summation":600,"Egrave":611,"racute":389,"omacron":500,"Zacute":556,"Zcaron":556,"greaterequal":549,"Eth":722,"Ccedilla":667,"lcommaaccent":278,"tcaron":300,"eogonek":444,"Uogonek":722,"Aacute":611,"Adieresis":611,"egrave":444,"zacute":389,"iogonek":278,"Oacute":722,"oacute":500,"amacron":500,"sacute":389,"idieresis":278,"Ocircumflex":722,"Ugrave":722,"Delta":612,"thorn":500,"twosuperior":300,"Odieresis":722,"mu":500,"igrave":278,"ohungarumlaut":500,"Eogonek":611,"dcroat":500,"threequarters":750, +"Scedilla":500,"lcaron":300,"Kcommaaccent":667,"Lacute":556,"trademark":980,"edotaccent":444,"Igrave":333,"Imacron":333,"Lcaron":611,"onehalf":750,"lessequal":549,"ocircumflex":500,"ntilde":500,"Uhungarumlaut":722,"Eacute":611,"emacron":444,"gbreve":500,"onequarter":750,"Scaron":500,"Scommaaccent":500,"Ohungarumlaut":722,"degree":400,"ograve":500,"Ccaron":667,"ugrave":500,"radical":453,"Dcaron":722,"rcommaaccent":389,"Ntilde":667,"otilde":500,"Rcommaaccent":611,"Lcommaaccent":556,"Atilde":611,"Aogonek":611, +"Aring":611,"Otilde":722,"zdotaccent":389,"Ecaron":611,"Iogonek":333,"kcommaaccent":444,"minus":675,"Icircumflex":333,"ncaron":500,"tcommaaccent":278,"logicalnot":675,"odieresis":500,"udieresis":500,"notequal":549,"gcommaaccent":500,"eth":500,"zcaron":389,"ncommaaccent":500,"onesuperior":300,"imacron":278,"Euro":500},"ZapfDingbats":{"space":278,"a1":974,"a2":961,"a202":974,"a3":980,"a4":719,"a5":789,"a119":790,"a118":791,"a117":690,"a11":960,"a12":939,"a13":549,"a14":855,"a15":911,"a16":933,"a105":911, +"a17":945,"a18":974,"a19":755,"a20":846,"a21":762,"a22":761,"a23":571,"a24":677,"a25":763,"a26":760,"a27":759,"a28":754,"a6":494,"a7":552,"a8":537,"a9":577,"a10":692,"a29":786,"a30":788,"a31":788,"a32":790,"a33":793,"a34":794,"a35":816,"a36":823,"a37":789,"a38":841,"a39":823,"a40":833,"a41":816,"a42":831,"a43":923,"a44":744,"a45":723,"a46":749,"a47":790,"a48":792,"a49":695,"a50":776,"a51":768,"a52":792,"a53":759,"a54":707,"a55":708,"a56":682,"a57":701,"a58":826,"a59":815,"a60":789,"a61":789,"a62":707, +"a63":687,"a64":696,"a65":689,"a66":786,"a67":787,"a68":713,"a69":791,"a70":785,"a71":791,"a72":873,"a73":761,"a74":762,"a203":762,"a75":759,"a204":759,"a76":892,"a77":892,"a78":788,"a79":784,"a81":438,"a82":138,"a83":277,"a84":415,"a97":392,"a98":392,"a99":668,"a100":668,"a89":390,"a90":390,"a93":317,"a94":317,"a91":276,"a92":276,"a205":509,"a85":509,"a206":410,"a86":410,"a87":234,"a88":234,"a95":334,"a96":334,"a101":732,"a102":544,"a103":544,"a104":910,"a106":667,"a107":760,"a108":760,"a112":776, +"a111":595,"a110":694,"a109":626,"a120":788,"a121":788,"a122":788,"a123":788,"a124":788,"a125":788,"a126":788,"a127":788,"a128":788,"a129":788,"a130":788,"a131":788,"a132":788,"a133":788,"a134":788,"a135":788,"a136":788,"a137":788,"a138":788,"a139":788,"a140":788,"a141":788,"a142":788,"a143":788,"a144":788,"a145":788,"a146":788,"a147":788,"a148":788,"a149":788,"a150":788,"a151":788,"a152":788,"a153":788,"a154":788,"a155":788,"a156":788,"a157":788,"a158":788,"a159":788,"a160":894,"a161":838,"a163":1016, +"a164":458,"a196":748,"a165":924,"a192":748,"a166":918,"a167":927,"a168":928,"a169":928,"a170":834,"a171":873,"a172":828,"a173":924,"a162":924,"a174":917,"a175":930,"a176":931,"a177":463,"a178":883,"a179":836,"a193":836,"a180":867,"a199":867,"a181":696,"a200":696,"a182":874,"a201":874,"a183":760,"a184":946,"a197":771,"a185":865,"a194":771,"a198":888,"a186":967,"a195":888,"a187":831,"a188":873,"a189":927,"a190":970,"a191":918}};var EOF={};function isEOF(v){return v===EOF}var Parser=function ParserClosure(){function Parser(lexer, +allowStreams,xref){this.lexer=lexer;this.allowStreams=allowStreams;this.xref=xref;this.imageCache={length:0,adler32:0,stream:null};this.refill()}Parser.prototype={refill:function Parser_refill(){this.buf1=this.lexer.getObj();this.buf2=this.lexer.getObj()},shift:function Parser_shift(){if(isCmd(this.buf2,"ID")){this.buf1=this.buf2;this.buf2=null}else{this.buf1=this.buf2;this.buf2=this.lexer.getObj()}},getObj:function Parser_getObj(cipherTransform){var buf1=this.buf1;this.shift();if(buf1 instanceof +Cmd)switch(buf1.cmd){case "BI":return this.makeInlineImage(cipherTransform);case "[":var array=[];while(!isCmd(this.buf1,"]")&&!isEOF(this.buf1))array.push(this.getObj(cipherTransform));if(isEOF(this.buf1))error("End of file inside array");this.shift();return array;case "<<":var dict=new Dict(this.xref);while(!isCmd(this.buf1,">>")&&!isEOF(this.buf1)){if(!isName(this.buf1)){info("Malformed dictionary: key must be a name object");this.shift();continue}var key=this.buf1.name;this.shift();if(isEOF(this.buf1))break; +dict.set(key,this.getObj(cipherTransform))}if(isEOF(this.buf1))error("End of file inside dictionary");if(isCmd(this.buf2,"stream"))return this.allowStreams?this.makeStream(dict,cipherTransform):dict;this.shift();return dict;default:return buf1}if(isInt(buf1)){var num=buf1;if(isInt(this.buf1)&&isCmd(this.buf2,"R")){var ref=new Ref(num,this.buf1);this.shift();this.shift();return ref}return num}if(isString(buf1)){var str=buf1;if(cipherTransform)str=cipherTransform.decryptString(str);return str}return buf1}, +makeInlineImage:function Parser_makeInlineImage(cipherTransform){var lexer=this.lexer;var stream=lexer.stream;var dict=new Dict(null);while(!isCmd(this.buf1,"ID")&&!isEOF(this.buf1)){if(!isName(this.buf1))error("Dictionary key must be a name object");var key=this.buf1.name;this.shift();if(isEOF(this.buf1))break;dict.set(key,this.getObj(cipherTransform))}var startPos=stream.pos;var state=0,ch,i,ii;var E=69,I=73,SPACE=32,NL=10,CR=13;while((ch=stream.getByte())!==-1)if(state===0)state=ch===E?1:0;else if(state=== +1)state=ch===I?2:0;else{assert(state===2);if(ch===SPACE||ch===NL||ch===CR){var n=5;var followingBytes=stream.peekBytes(n);for(i=0;i<n;i++){ch=followingBytes[i];if(ch!==NL&&ch!==CR&&(ch<SPACE||ch>127)){state=0;break}}if(state===2)break}else state=0}var length=stream.pos-4-startPos;var imageStream=stream.makeSubStream(startPos,length,dict);var MAX_LENGTH_TO_CACHE=1E3;var cacheImage=false,adler32;if(length<MAX_LENGTH_TO_CACHE&&this.imageCache.length===length){var imageBytes=imageStream.getBytes();imageStream.reset(); +var a=1;var b=0;for(i=0,ii=imageBytes.length;i<ii;++i){a=(a+(imageBytes[i]&255))%65521;b=(b+a)%65521}adler32=b<<16|a;if(this.imageCache.stream&&this.imageCache.adler32===adler32){this.buf2=Cmd.get("EI");this.shift();this.imageCache.stream.reset();return this.imageCache.stream}cacheImage=true}if(!cacheImage&&!this.imageCache.stream){this.imageCache.length=length;this.imageCache.stream=null}if(cipherTransform)imageStream=cipherTransform.createStream(imageStream,length);imageStream=this.filter(imageStream, +dict,length);imageStream.dict=dict;if(cacheImage){imageStream.cacheKey="inline_"+length+"_"+adler32;this.imageCache.adler32=adler32;this.imageCache.stream=imageStream}this.buf2=Cmd.get("EI");this.shift();return imageStream},fetchIfRef:function Parser_fetchIfRef(obj){return isRef(obj)?this.xref.fetch(obj):obj},makeStream:function Parser_makeStream(dict,cipherTransform){var lexer=this.lexer;var stream=lexer.stream;lexer.skipToNextLine();var pos=stream.pos-1;var length=this.fetchIfRef(dict.get("Length")); +if(!isInt(length)){info("Bad "+length+" attribute in stream");length=0}stream.pos=pos+length;lexer.nextChar();this.shift();this.shift();if(!isCmd(this.buf1,"endstream")){stream.pos=pos;var SCAN_BLOCK_SIZE=2048;var ENDSTREAM_SIGNATURE_LENGTH=9;var ENDSTREAM_SIGNATURE=[101,110,100,115,116,114,101,97,109];var skipped=0,found=false,i,j;while(stream.pos<stream.end){var scanBytes=stream.peekBytes(SCAN_BLOCK_SIZE);var scanLength=scanBytes.length-ENDSTREAM_SIGNATURE_LENGTH;if(scanLength<=0)break;found=false; +for(i=0,j=0;i<scanLength;i++){var b=scanBytes[i];if(b!==ENDSTREAM_SIGNATURE[j]){i-=j;j=0}else{j++;if(j>=ENDSTREAM_SIGNATURE_LENGTH){i++;found=true;break}}}if(found){skipped+=i-ENDSTREAM_SIGNATURE_LENGTH;stream.pos+=i-ENDSTREAM_SIGNATURE_LENGTH;break}skipped+=scanLength;stream.pos+=scanLength}if(!found)error("Missing endstream");length=skipped;lexer.nextChar();this.shift();this.shift()}this.shift();stream=stream.makeSubStream(pos,length,dict);if(cipherTransform)stream=cipherTransform.createStream(stream, +length);stream=this.filter(stream,dict,length);stream.dict=dict;return stream},filter:function Parser_filter(stream,dict,length){var filter=this.fetchIfRef(dict.get("Filter","F"));var params=this.fetchIfRef(dict.get("DecodeParms","DP"));if(isName(filter))return this.makeFilter(stream,filter.name,length,params);var maybeLength=length;if(isArray(filter)){var filterArray=filter;var paramsArray=params;for(var i=0,ii=filterArray.length;i<ii;++i){filter=filterArray[i];if(!isName(filter))error("Bad filter name: "+ +filter);params=null;if(isArray(paramsArray)&&i in paramsArray)params=paramsArray[i];stream=this.makeFilter(stream,filter.name,maybeLength,params);maybeLength=null}}return stream},makeFilter:function Parser_makeFilter(stream,name,maybeLength,params){if(stream.dict.get("Length")===0)return new NullStream(stream);try{if(params)params=this.fetchIfRef(params);var xrefStreamStats=this.xref.stats.streamTypes;if(name==="FlateDecode"||name==="Fl"){xrefStreamStats[StreamType.FLATE]=true;if(params)return new PredictorStream(new FlateStream(stream, +maybeLength),maybeLength,params);return new FlateStream(stream,maybeLength)}if(name==="LZWDecode"||name==="LZW"){xrefStreamStats[StreamType.LZW]=true;var earlyChange=1;if(params){if(params.has("EarlyChange"))earlyChange=params.get("EarlyChange");return new PredictorStream(new LZWStream(stream,maybeLength,earlyChange),maybeLength,params)}return new LZWStream(stream,maybeLength,earlyChange)}if(name==="DCTDecode"||name==="DCT"){if(isCmd(this.buf1,"ID")){var firstByte=stream.peekByte();if(firstByte=== +10||firstByte===13||firstByte===32)stream.skip()}xrefStreamStats[StreamType.DCT]=true;return new JpegStream(stream,maybeLength,stream.dict,this.xref)}if(name==="JPXDecode"||name==="JPX"){xrefStreamStats[StreamType.JPX]=true;return new JpxStream(stream,maybeLength,stream.dict)}if(name==="ASCII85Decode"||name==="A85"){xrefStreamStats[StreamType.A85]=true;return new Ascii85Stream(stream,maybeLength)}if(name==="ASCIIHexDecode"||name==="AHx"){xrefStreamStats[StreamType.AHX]=true;return new AsciiHexStream(stream, +maybeLength)}if(name==="CCITTFaxDecode"||name==="CCF"){xrefStreamStats[StreamType.CCF]=true;return new CCITTFaxStream(stream,maybeLength,params)}if(name==="RunLengthDecode"||name==="RL"){xrefStreamStats[StreamType.RL]=true;return new RunLengthStream(stream,maybeLength)}if(name==="JBIG2Decode"){xrefStreamStats[StreamType.JBIG]=true;return new Jbig2Stream(stream,maybeLength,stream.dict)}warn('filter "'+name+'" not supported yet');return stream}catch(ex){if(ex instanceof MissingDataException)throw ex; +warn('Invalid stream: "'+ex+'"');return new NullStream(stream)}}};return Parser}();var Lexer=function LexerClosure(){function Lexer(stream,knownCommands){this.stream=stream;this.nextChar();this.strBuf=[];this.knownCommands=knownCommands}Lexer.isSpace=function Lexer_isSpace(ch){return ch===32||ch===9||ch===13||ch===10};var specialChars=[1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,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,2,0,2,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,2,0,2,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,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];function toHexDigit(ch){if(ch>=48&&ch<=57)return ch&15;if(ch>=65&&ch<=70||ch>=97&&ch<=102)return(ch&15)+9;return-1}Lexer.prototype={nextChar:function Lexer_nextChar(){return this.currentChar= +this.stream.getByte()},peekChar:function Lexer_peekChar(){return this.stream.peekByte()},getNumber:function Lexer_getNumber(){var ch=this.currentChar;var eNotation=false;var divideBy=0;var sign=1;if(ch===45){sign=-1;ch=this.nextChar()}else if(ch===43)ch=this.nextChar();if(ch===46){divideBy=10;ch=this.nextChar()}if(ch<48||ch>57){error("Invalid number: "+String.fromCharCode(ch));return 0}var baseValue=ch-48;var powerValue=0;var powerValueSign=1;while((ch=this.nextChar())>=0)if(48<=ch&&ch<=57){var currentDigit= +ch-48;if(eNotation)powerValue=powerValue*10+currentDigit;else{if(divideBy!==0)divideBy*=10;baseValue=baseValue*10+currentDigit}}else if(ch===46)if(divideBy===0)divideBy=1;else break;else if(ch===45)warn("Badly formated number");else if(ch===69||ch===101){ch=this.peekChar();if(ch===43||ch===45){powerValueSign=ch===45?-1:1;this.nextChar()}else if(ch<48||ch>57)break;eNotation=true}else break;if(divideBy!==0)baseValue/=divideBy;if(eNotation)baseValue*=Math.pow(10,powerValueSign*powerValue);return sign* +baseValue},getString:function Lexer_getString(){var numParen=1;var done=false;var strBuf=this.strBuf;strBuf.length=0;var ch=this.nextChar();while(true){var charBuffered=false;switch(ch|0){case -1:warn("Unterminated string");done=true;break;case 40:++numParen;strBuf.push("(");break;case 41:if(--numParen===0){this.nextChar();done=true}else strBuf.push(")");break;case 92:ch=this.nextChar();switch(ch){case -1:warn("Unterminated string");done=true;break;case 110:strBuf.push("\n");break;case 114:strBuf.push("\r"); +break;case 116:strBuf.push("\t");break;case 98:strBuf.push("\b");break;case 102:strBuf.push("\f");break;case 92:case 40:case 41:strBuf.push(String.fromCharCode(ch));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:var x=ch&15;ch=this.nextChar();charBuffered=true;if(ch>=48&&ch<=55){x=(x<<3)+(ch&15);ch=this.nextChar();if(ch>=48&&ch<=55){charBuffered=false;x=(x<<3)+(ch&15)}}strBuf.push(String.fromCharCode(x));break;case 13:if(this.peekChar()===10)this.nextChar();break;case 10:break; +default:strBuf.push(String.fromCharCode(ch));break}break;default:strBuf.push(String.fromCharCode(ch));break}if(done)break;if(!charBuffered)ch=this.nextChar()}return strBuf.join("")},getName:function Lexer_getName(){var ch;var strBuf=this.strBuf;strBuf.length=0;while((ch=this.nextChar())>=0&&!specialChars[ch])if(ch===35){ch=this.nextChar();var x=toHexDigit(ch);if(x!==-1){var x2=toHexDigit(this.nextChar());if(x2===-1)error("Illegal digit in hex char in name: "+x2);strBuf.push(String.fromCharCode(x<< +4|x2))}else strBuf.push("#",String.fromCharCode(ch))}else strBuf.push(String.fromCharCode(ch));if(strBuf.length>128)error("Warning: name token is longer than allowed by the spec: "+strBuf.length);return Name.get(strBuf.join(""))},getHexString:function Lexer_getHexString(){var strBuf=this.strBuf;strBuf.length=0;var ch=this.currentChar;var isFirstHex=true;var firstDigit;var secondDigit;while(true)if(ch<0){warn("Unterminated hex string");break}else if(ch===62){this.nextChar();break}else if(specialChars[ch]=== +1){ch=this.nextChar();continue}else{if(isFirstHex){firstDigit=toHexDigit(ch);if(firstDigit===-1){warn('Ignoring invalid character "'+ch+'" in hex string');ch=this.nextChar();continue}}else{secondDigit=toHexDigit(ch);if(secondDigit===-1){warn('Ignoring invalid character "'+ch+'" in hex string');ch=this.nextChar();continue}strBuf.push(String.fromCharCode(firstDigit<<4|secondDigit))}isFirstHex=!isFirstHex;ch=this.nextChar()}return strBuf.join("")},getObj:function Lexer_getObj(){var comment=false;var ch= +this.currentChar;while(true){if(ch<0)return EOF;if(comment){if(ch===10||ch===13)comment=false}else if(ch===37)comment=true;else if(specialChars[ch]!==1)break;ch=this.nextChar()}switch(ch|0){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return Cmd.get("[");case 93:this.nextChar();return Cmd.get("]");case 60:ch=this.nextChar();if(ch=== +60){this.nextChar();return Cmd.get("<<")}return this.getHexString();case 62:ch=this.nextChar();if(ch===62){this.nextChar();return Cmd.get(">>")}return Cmd.get(">");case 123:this.nextChar();return Cmd.get("{");case 125:this.nextChar();return Cmd.get("}");case 41:error("Illegal character: "+ch);break}var str=String.fromCharCode(ch);var knownCommands=this.knownCommands;var knownCommandFound=knownCommands&&knownCommands[str]!==undefined;while((ch=this.nextChar())>=0&&!specialChars[ch]){var possibleCommand= +str+String.fromCharCode(ch);if(knownCommandFound&&knownCommands[possibleCommand]===undefined)break;if(str.length===128)error("Command token too long: "+str.length);str=possibleCommand;knownCommandFound=knownCommands&&knownCommands[str]!==undefined}if(str==="true")return true;if(str==="false")return false;if(str==="null")return null;return Cmd.get(str)},skipToNextLine:function Lexer_skipToNextLine(){var ch=this.currentChar;while(ch>=0){if(ch===13){ch=this.nextChar();if(ch===10)this.nextChar();break}else if(ch=== +10){this.nextChar();break}ch=this.nextChar()}}};return Lexer}();var Linearization={create:function LinearizationCreate(stream){function getInt(name,allowZeroValue){var obj=linDict.get(name);if(isInt(obj)&&(allowZeroValue?obj>=0:obj>0))return obj;throw new Error('The "'+name+'" parameter in the linearization '+"dictionary is invalid.");}function getHints(){var hints=linDict.get("H"),hintsLength,item;if(isArray(hints)&&((hintsLength=hints.length)===2||hintsLength===4)){for(var index=0;index<hintsLength;index++)if(!(isInt(item= +hints[index])&&item>0))throw new Error("Hint ("+index+") in the linearization dictionary is invalid.");return hints}throw new Error("Hint array in the linearization dictionary is invalid.");}var parser=new Parser(new Lexer(stream),false,null);var obj1=parser.getObj();var obj2=parser.getObj();var obj3=parser.getObj();var linDict=parser.getObj();var obj,length;if(!(isInt(obj1)&&isInt(obj2)&&isCmd(obj3,"obj")&&isDict(linDict)&&isNum(obj=linDict.get("Linearized"))&&obj>0))return null;else if((length= +getInt("L"))!==stream.length)throw new Error('The "L" parameter in the linearization dictionary '+"does not equal the stream length.");return{length:length,hints:getHints(),objectNumberFirst:getInt("O"),endFirst:getInt("E"),numPages:getInt("N"),mainXRefEntriesOffset:getInt("T"),pageFirst:linDict.has("P")?getInt("P",true):0}}};var PostScriptParser=function PostScriptParserClosure(){function PostScriptParser(lexer){this.lexer=lexer;this.operators=[];this.token=null;this.prev=null}PostScriptParser.prototype= +{nextToken:function PostScriptParser_nextToken(){this.prev=this.token;this.token=this.lexer.getToken()},accept:function PostScriptParser_accept(type){if(this.token.type===type){this.nextToken();return true}return false},expect:function PostScriptParser_expect(type){if(this.accept(type))return true;error("Unexpected symbol: found "+this.token.type+" expected "+type+".")},parse:function PostScriptParser_parse(){this.nextToken();this.expect(PostScriptTokenTypes.LBRACE);this.parseBlock();this.expect(PostScriptTokenTypes.RBRACE); +return this.operators},parseBlock:function PostScriptParser_parseBlock(){while(true)if(this.accept(PostScriptTokenTypes.NUMBER))this.operators.push(this.prev.value);else if(this.accept(PostScriptTokenTypes.OPERATOR))this.operators.push(this.prev.value);else if(this.accept(PostScriptTokenTypes.LBRACE))this.parseCondition();else return},parseCondition:function PostScriptParser_parseCondition(){var conditionLocation=this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(PostScriptTokenTypes.RBRACE); +if(this.accept(PostScriptTokenTypes.IF)){this.operators[conditionLocation]=this.operators.length;this.operators[conditionLocation+1]="jz"}else if(this.accept(PostScriptTokenTypes.LBRACE)){var jumpLocation=this.operators.length;this.operators.push(null,null);var endOfTrue=this.operators.length;this.parseBlock();this.expect(PostScriptTokenTypes.RBRACE);this.expect(PostScriptTokenTypes.IFELSE);this.operators[jumpLocation]=this.operators.length;this.operators[jumpLocation+1]="j";this.operators[conditionLocation]= +endOfTrue;this.operators[conditionLocation+1]="jz"}else error("PS Function: error parsing conditional.")}};return PostScriptParser}();var PostScriptTokenTypes={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};var PostScriptToken=function PostScriptTokenClosure(){function PostScriptToken(type,value){this.type=type;this.value=value}var opCache={};PostScriptToken.getOperator=function PostScriptToken_getOperator(op){var opValue=opCache[op];if(opValue)return opValue;return opCache[op]=new PostScriptToken(PostScriptTokenTypes.OPERATOR, +op)};PostScriptToken.LBRACE=new PostScriptToken(PostScriptTokenTypes.LBRACE,"{");PostScriptToken.RBRACE=new PostScriptToken(PostScriptTokenTypes.RBRACE,"}");PostScriptToken.IF=new PostScriptToken(PostScriptTokenTypes.IF,"IF");PostScriptToken.IFELSE=new PostScriptToken(PostScriptTokenTypes.IFELSE,"IFELSE");return PostScriptToken}();var PostScriptLexer=function PostScriptLexerClosure(){function PostScriptLexer(stream){this.stream=stream;this.nextChar();this.strBuf=[]}PostScriptLexer.prototype={nextChar:function PostScriptLexer_nextChar(){return this.currentChar= +this.stream.getByte()},getToken:function PostScriptLexer_getToken(){var comment=false;var ch=this.currentChar;while(true){if(ch<0)return EOF;if(comment){if(ch===10||ch===13)comment=false}else if(ch===37)comment=true;else if(!Lexer.isSpace(ch))break;ch=this.nextChar()}switch(ch|0){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(PostScriptTokenTypes.NUMBER,this.getNumber());case 123:this.nextChar();return PostScriptToken.LBRACE; +case 125:this.nextChar();return PostScriptToken.RBRACE}var strBuf=this.strBuf;strBuf.length=0;strBuf[0]=String.fromCharCode(ch);while((ch=this.nextChar())>=0&&(ch>=65&&ch<=90||ch>=97&&ch<=122))strBuf.push(String.fromCharCode(ch));var str=strBuf.join("");switch(str.toLowerCase()){case "if":return PostScriptToken.IF;case "ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(str)}},getNumber:function PostScriptLexer_getNumber(){var ch=this.currentChar;var strBuf=this.strBuf; +strBuf.length=0;strBuf[0]=String.fromCharCode(ch);while((ch=this.nextChar())>=0)if(ch>=48&&ch<=57||ch===45||ch===46)strBuf.push(String.fromCharCode(ch));else break;var value=parseFloat(strBuf.join(""));if(isNaN(value))error("Invalid floating point number: "+value);return value}};return PostScriptLexer}();var Stream=function StreamClosure(){function Stream(arrayBuffer,start,length,dict){this.bytes=arrayBuffer instanceof Uint8Array?arrayBuffer:new Uint8Array(arrayBuffer);this.start=start||0;this.pos= +this.start;this.end=start+length||this.bytes.length;this.dict=dict}Stream.prototype={get length(){return this.end-this.start},get isEmpty(){return this.length===0},getByte:function Stream_getByte(){if(this.pos>=this.end)return-1;return this.bytes[this.pos++]},getUint16:function Stream_getUint16(){var b0=this.getByte();var b1=this.getByte();return(b0<<8)+b1},getInt32:function Stream_getInt32(){var b0=this.getByte();var b1=this.getByte();var b2=this.getByte();var b3=this.getByte();return(b0<<24)+(b1<< +16)+(b2<<8)+b3},getBytes:function Stream_getBytes(length){var bytes=this.bytes;var pos=this.pos;var strEnd=this.end;if(!length)return bytes.subarray(pos,strEnd);var end=pos+length;if(end>strEnd)end=strEnd;this.pos=end;return bytes.subarray(pos,end)},peekByte:function Stream_peekByte(){var peekedByte=this.getByte();this.pos--;return peekedByte},peekBytes:function Stream_peekBytes(length){var bytes=this.getBytes(length);this.pos-=bytes.length;return bytes},skip:function Stream_skip(n){if(!n)n=1;this.pos+= +n},reset:function Stream_reset(){this.pos=this.start},moveStart:function Stream_moveStart(){this.start=this.pos},makeSubStream:function Stream_makeSubStream(start,length,dict){return new Stream(this.bytes.buffer,start,length,dict)},isStream:true};return Stream}();var StringStream=function StringStreamClosure(){function StringStream(str){var length=str.length;var bytes=new Uint8Array(length);for(var n=0;n<length;++n)bytes[n]=str.charCodeAt(n);Stream.call(this,bytes)}StringStream.prototype=Stream.prototype; +return StringStream}();var DecodeStream=function DecodeStreamClosure(){var emptyBuffer=new Uint8Array(0);function DecodeStream(maybeMinBufferLength){this.pos=0;this.bufferLength=0;this.eof=false;this.buffer=emptyBuffer;this.minBufferLength=512;if(maybeMinBufferLength)while(this.minBufferLength<maybeMinBufferLength)this.minBufferLength*=2}DecodeStream.prototype={get isEmpty(){while(!this.eof&&this.bufferLength===0)this.readBlock();return this.bufferLength===0},ensureBuffer:function DecodeStream_ensureBuffer(requested){var buffer= +this.buffer;if(requested<=buffer.byteLength)return buffer;var size=this.minBufferLength;while(size<requested)size*=2;var buffer2=new Uint8Array(size);buffer2.set(buffer);return this.buffer=buffer2},getByte:function DecodeStream_getByte(){var pos=this.pos;while(this.bufferLength<=pos){if(this.eof)return-1;this.readBlock()}return this.buffer[this.pos++]},getUint16:function DecodeStream_getUint16(){var b0=this.getByte();var b1=this.getByte();return(b0<<8)+b1},getInt32:function DecodeStream_getInt32(){var b0= +this.getByte();var b1=this.getByte();var b2=this.getByte();var b3=this.getByte();return(b0<<24)+(b1<<16)+(b2<<8)+b3},getBytes:function DecodeStream_getBytes(length){var end,pos=this.pos;if(length){this.ensureBuffer(pos+length);end=pos+length;while(!this.eof&&this.bufferLength<end)this.readBlock();var bufEnd=this.bufferLength;if(end>bufEnd)end=bufEnd}else{while(!this.eof)this.readBlock();end=this.bufferLength}this.pos=end;return this.buffer.subarray(pos,end)},peekByte:function DecodeStream_peekByte(){var peekedByte= +this.getByte();this.pos--;return peekedByte},peekBytes:function DecodeStream_peekBytes(length){var bytes=this.getBytes(length);this.pos-=bytes.length;return bytes},makeSubStream:function DecodeStream_makeSubStream(start,length,dict){var end=start+length;while(this.bufferLength<=end&&!this.eof)this.readBlock();return new Stream(this.buffer,start,length,dict)},skip:function DecodeStream_skip(n){if(!n)n=1;this.pos+=n},reset:function DecodeStream_reset(){this.pos=0},getBaseStreams:function DecodeStream_getBaseStreams(){if(this.str&& +this.str.getBaseStreams)return this.str.getBaseStreams();return[]}};return DecodeStream}();var StreamsSequenceStream=function StreamsSequenceStreamClosure(){function StreamsSequenceStream(streams){this.streams=streams;DecodeStream.call(this,null)}StreamsSequenceStream.prototype=Object.create(DecodeStream.prototype);StreamsSequenceStream.prototype.readBlock=function streamSequenceStreamReadBlock(){var streams=this.streams;if(streams.length===0){this.eof=true;return}var stream=streams.shift();var chunk= +stream.getBytes();var bufferLength=this.bufferLength;var newLength=bufferLength+chunk.length;var buffer=this.ensureBuffer(newLength);buffer.set(chunk,bufferLength);this.bufferLength=newLength};StreamsSequenceStream.prototype.getBaseStreams=function StreamsSequenceStream_getBaseStreams(){var baseStreams=[];for(var i=0,ii=this.streams.length;i<ii;i++){var stream=this.streams[i];if(stream.getBaseStreams)Util.appendToArray(baseStreams,stream.getBaseStreams())}return baseStreams};return StreamsSequenceStream}(); +var FlateStream=function FlateStreamClosure(){var codeLenCodeMap=new Uint32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);var lengthDecode=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]);var distDecode=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]);var fixedLitCodeTab=[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,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005, +524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573, +459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999, +524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9];var fixedDistCodeTab=[new Uint32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];function FlateStream(str,maybeLength){this.str=str;this.dict=str.dict;var cmf=str.getByte();var flg= +str.getByte();if(cmf===-1||flg===-1)error("Invalid header in flate stream: "+cmf+", "+flg);if((cmf&15)!==8)error("Unknown compression method in flate stream: "+cmf+", "+flg);if(((cmf<<8)+flg)%31!==0)error("Bad FCHECK in flate stream: "+cmf+", "+flg);if(flg&32)error("FDICT bit set in flate stream: "+cmf+", "+flg);this.codeSize=0;this.codeBuf=0;DecodeStream.call(this,maybeLength)}FlateStream.prototype=Object.create(DecodeStream.prototype);FlateStream.prototype.getBits=function FlateStream_getBits(bits){var str= +this.str;var codeSize=this.codeSize;var codeBuf=this.codeBuf;var b;while(codeSize<bits){if((b=str.getByte())===-1)error("Bad encoding in flate stream");codeBuf|=b<<codeSize;codeSize+=8}b=codeBuf&(1<<bits)-1;this.codeBuf=codeBuf>>bits;this.codeSize=codeSize-=bits;return b};FlateStream.prototype.getCode=function FlateStream_getCode(table){var str=this.str;var codes=table[0];var maxLen=table[1];var codeSize=this.codeSize;var codeBuf=this.codeBuf;var b;while(codeSize<maxLen){if((b=str.getByte())===-1)break; +codeBuf|=b<<codeSize;codeSize+=8}var code=codes[codeBuf&(1<<maxLen)-1];var codeLen=code>>16;var codeVal=code&65535;if(codeLen<1||codeSize<codeLen)error("Bad encoding in flate stream");this.codeBuf=codeBuf>>codeLen;this.codeSize=codeSize-codeLen;return codeVal};FlateStream.prototype.generateHuffmanTable=function flateStreamGenerateHuffmanTable(lengths){var n=lengths.length;var maxLen=0;var i;for(i=0;i<n;++i)if(lengths[i]>maxLen)maxLen=lengths[i];var size=1<<maxLen;var codes=new Uint32Array(size);for(var len= +1,code=0,skip=2;len<=maxLen;++len,code<<=1,skip<<=1)for(var val=0;val<n;++val)if(lengths[val]===len){var code2=0;var t=code;for(i=0;i<len;++i){code2=code2<<1|t&1;t>>=1}for(i=code2;i<size;i+=skip)codes[i]=len<<16|val;++code}return[codes,maxLen]};FlateStream.prototype.readBlock=function FlateStream_readBlock(){var buffer,len;var str=this.str;var hdr=this.getBits(3);if(hdr&1)this.eof=true;hdr>>=1;if(hdr===0){var b;if((b=str.getByte())===-1)error("Bad block header in flate stream");var blockLen=b;if((b= +str.getByte())===-1)error("Bad block header in flate stream");blockLen|=b<<8;if((b=str.getByte())===-1)error("Bad block header in flate stream");var check=b;if((b=str.getByte())===-1)error("Bad block header in flate stream");check|=b<<8;if(check!==(~blockLen&65535)&&(blockLen!==0||check!==0))error("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;var bufferLength=this.bufferLength;buffer=this.ensureBuffer(bufferLength+blockLen);var end=bufferLength+blockLen;this.bufferLength= +end;if(blockLen===0){if(str.peekByte()===-1)this.eof=true}else for(var n=bufferLength;n<end;++n){if((b=str.getByte())===-1){this.eof=true;break}buffer[n]=b}return}var litCodeTable;var distCodeTable;if(hdr===1){litCodeTable=fixedLitCodeTab;distCodeTable=fixedDistCodeTab}else if(hdr===2){var numLitCodes=this.getBits(5)+257;var numDistCodes=this.getBits(5)+1;var numCodeLenCodes=this.getBits(4)+4;var codeLenCodeLengths=new Uint8Array(codeLenCodeMap.length);var i;for(i=0;i<numCodeLenCodes;++i)codeLenCodeLengths[codeLenCodeMap[i]]= +this.getBits(3);var codeLenCodeTab=this.generateHuffmanTable(codeLenCodeLengths);len=0;i=0;var codes=numLitCodes+numDistCodes;var codeLengths=new Uint8Array(codes);var bitsLength,bitsOffset,what;while(i<codes){var code=this.getCode(codeLenCodeTab);if(code===16){bitsLength=2;bitsOffset=3;what=len}else if(code===17){bitsLength=3;bitsOffset=3;what=len=0}else if(code===18){bitsLength=7;bitsOffset=11;what=len=0}else{codeLengths[i++]=len=code;continue}var repeatLength=this.getBits(bitsLength)+bitsOffset; +while(repeatLength-- >0)codeLengths[i++]=what}litCodeTable=this.generateHuffmanTable(codeLengths.subarray(0,numLitCodes));distCodeTable=this.generateHuffmanTable(codeLengths.subarray(numLitCodes,codes))}else error("Unknown block type in flate stream");buffer=this.buffer;var limit=buffer?buffer.length:0;var pos=this.bufferLength;while(true){var code1=this.getCode(litCodeTable);if(code1<256){if(pos+1>=limit){buffer=this.ensureBuffer(pos+1);limit=buffer.length}buffer[pos++]=code1;continue}if(code1=== +256){this.bufferLength=pos;return}code1-=257;code1=lengthDecode[code1];var code2=code1>>16;if(code2>0)code2=this.getBits(code2);len=(code1&65535)+code2;code1=this.getCode(distCodeTable);code1=distDecode[code1];code2=code1>>16;if(code2>0)code2=this.getBits(code2);var dist=(code1&65535)+code2;if(pos+len>=limit){buffer=this.ensureBuffer(pos+len);limit=buffer.length}for(var k=0;k<len;++k,++pos)buffer[pos]=buffer[pos-dist]}};return FlateStream}();var PredictorStream=function PredictorStreamClosure(){function PredictorStream(str, +maybeLength,params){var predictor=this.predictor=params.get("Predictor")||1;if(predictor<=1)return str;if(predictor!==2&&(predictor<10||predictor>15))error("Unsupported predictor: "+predictor);if(predictor===2)this.readBlock=this.readBlockTiff;else this.readBlock=this.readBlockPng;this.str=str;this.dict=str.dict;var colors=this.colors=params.get("Colors")||1;var bits=this.bits=params.get("BitsPerComponent")||8;var columns=this.columns=params.get("Columns")||1;this.pixBytes=colors*bits+7>>3;this.rowBytes= +columns*colors*bits+7>>3;DecodeStream.call(this,maybeLength);return this}PredictorStream.prototype=Object.create(DecodeStream.prototype);PredictorStream.prototype.readBlockTiff=function predictorStreamReadBlockTiff(){var rowBytes=this.rowBytes;var bufferLength=this.bufferLength;var buffer=this.ensureBuffer(bufferLength+rowBytes);var bits=this.bits;var colors=this.colors;var rawBytes=this.str.getBytes(rowBytes);this.eof=!rawBytes.length;if(this.eof)return;var inbuf=0,outbuf=0;var inbits=0,outbits= +0;var pos=bufferLength;var i;if(bits===1)for(i=0;i<rowBytes;++i){var c=rawBytes[i];inbuf=inbuf<<8|c;buffer[pos++]=(c^inbuf>>colors)&255;inbuf&=65535}else if(bits===8){for(i=0;i<colors;++i)buffer[pos++]=rawBytes[i];for(;i<rowBytes;++i){buffer[pos]=buffer[pos-colors]+rawBytes[i];pos++}}else{var compArray=new Uint8Array(colors+1);var bitMask=(1<<bits)-1;var j=0,k=bufferLength;var columns=this.columns;for(i=0;i<columns;++i)for(var kk=0;kk<colors;++kk){if(inbits<bits){inbuf=inbuf<<8|rawBytes[j++]&255; +inbits+=8}compArray[kk]=compArray[kk]+(inbuf>>inbits-bits)&bitMask;inbits-=bits;outbuf=outbuf<<bits|compArray[kk];outbits+=bits;if(outbits>=8){buffer[k++]=outbuf>>outbits-8&255;outbits-=8}}if(outbits>0)buffer[k++]=(outbuf<<8-outbits)+(inbuf&(1<<8-outbits)-1)}this.bufferLength+=rowBytes};PredictorStream.prototype.readBlockPng=function predictorStreamReadBlockPng(){var rowBytes=this.rowBytes;var pixBytes=this.pixBytes;var predictor=this.str.getByte();var rawBytes=this.str.getBytes(rowBytes);this.eof= +!rawBytes.length;if(this.eof)return;var bufferLength=this.bufferLength;var buffer=this.ensureBuffer(bufferLength+rowBytes);var prevRow=buffer.subarray(bufferLength-rowBytes,bufferLength);if(prevRow.length===0)prevRow=new Uint8Array(rowBytes);var i,j=bufferLength,up,c;switch(predictor){case 0:for(i=0;i<rowBytes;++i)buffer[j++]=rawBytes[i];break;case 1:for(i=0;i<pixBytes;++i)buffer[j++]=rawBytes[i];for(;i<rowBytes;++i){buffer[j]=buffer[j-pixBytes]+rawBytes[i]&255;j++}break;case 2:for(i=0;i<rowBytes;++i)buffer[j++]= +prevRow[i]+rawBytes[i]&255;break;case 3:for(i=0;i<pixBytes;++i)buffer[j++]=(prevRow[i]>>1)+rawBytes[i];for(;i<rowBytes;++i){buffer[j]=(prevRow[i]+buffer[j-pixBytes]>>1)+rawBytes[i]&255;j++}break;case 4:for(i=0;i<pixBytes;++i){up=prevRow[i];c=rawBytes[i];buffer[j++]=up+c}for(;i<rowBytes;++i){up=prevRow[i];var upLeft=prevRow[i-pixBytes];var left=buffer[j-pixBytes];var p=left+up-upLeft;var pa=p-left;if(pa<0)pa=-pa;var pb=p-up;if(pb<0)pb=-pb;var pc=p-upLeft;if(pc<0)pc=-pc;c=rawBytes[i];if(pa<=pb&&pa<= +pc)buffer[j++]=left+c;else if(pb<=pc)buffer[j++]=up+c;else buffer[j++]=upLeft+c}break;default:error("Unsupported predictor: "+predictor)}this.bufferLength+=rowBytes};return PredictorStream}();var JpegStream=function JpegStreamClosure(){function JpegStream(stream,maybeLength,dict,xref){this.stream=stream;this.maybeLength=maybeLength;this.dict=dict;DecodeStream.call(this,maybeLength)}JpegStream.prototype=Object.create(DecodeStream.prototype);Object.defineProperty(JpegStream.prototype,"bytes",{get:function JpegStream_bytes(){return shadow(this, +"bytes",this.stream.getBytes(this.maybeLength))},configurable:true});JpegStream.prototype.ensureBuffer=function JpegStream_ensureBuffer(req){if(this.bufferLength)return;try{var jpegImage=new JpegImage;if(this.forceRGB&&this.dict&&isArray(this.dict.get("Decode"))){var decodeArr=this.dict.get("Decode");var bitsPerComponent=this.dict.get("BitsPerComponent")||8;var decodeArrLength=decodeArr.length;var transform=new Int32Array(decodeArrLength);var transformNeeded=false;var maxValue=(1<<bitsPerComponent)- +1;for(var i=0;i<decodeArrLength;i+=2){transform[i]=(decodeArr[i+1]-decodeArr[i])*256|0;transform[i+1]=decodeArr[i]*maxValue|0;if(transform[i]!==256||transform[i+1]!==0)transformNeeded=true}if(transformNeeded)jpegImage.decodeTransform=transform}jpegImage.parse(this.bytes);var data=jpegImage.getData(this.drawWidth,this.drawHeight,this.forceRGB);this.buffer=data;this.bufferLength=data.length;this.eof=true}catch(e){error("JPEG error: "+e)}};JpegStream.prototype.getBytes=function JpegStream_getBytes(length){this.ensureBuffer(); +return this.buffer};JpegStream.prototype.getIR=function JpegStream_getIR(){return PDFJS.createObjectURL(this.bytes,"image/jpeg")};JpegStream.prototype.isNativelySupported=function JpegStream_isNativelySupported(xref,res){var cs=ColorSpace.parse(this.dict.get("ColorSpace","CS"),xref,res);return cs.name==="DeviceGray"||cs.name==="DeviceRGB"};JpegStream.prototype.isNativelyDecodable=function JpegStream_isNativelyDecodable(xref,res){var cs=ColorSpace.parse(this.dict.get("ColorSpace","CS"),xref,res);var numComps= +cs.numComps;return numComps===1||numComps===3};return JpegStream}();var JpxStream=function JpxStreamClosure(){function JpxStream(stream,maybeLength,dict){this.stream=stream;this.maybeLength=maybeLength;this.dict=dict;DecodeStream.call(this,maybeLength)}JpxStream.prototype=Object.create(DecodeStream.prototype);Object.defineProperty(JpxStream.prototype,"bytes",{get:function JpxStream_bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:true});JpxStream.prototype.ensureBuffer= +function JpxStream_ensureBuffer(req){if(this.bufferLength)return;var jpxImage=new JpxImage;jpxImage.parse(this.bytes);var width=jpxImage.width;var height=jpxImage.height;var componentsCount=jpxImage.componentsCount;var tileCount=jpxImage.tiles.length;if(tileCount===1)this.buffer=jpxImage.tiles[0].items;else{var data=new Uint8Array(width*height*componentsCount);for(var k=0;k<tileCount;k++){var tileComponents=jpxImage.tiles[k];var tileWidth=tileComponents.width;var tileHeight=tileComponents.height; +var tileLeft=tileComponents.left;var tileTop=tileComponents.top;var src=tileComponents.items;var srcPosition=0;var dataPosition=(width*tileTop+tileLeft)*componentsCount;var imgRowSize=width*componentsCount;var tileRowSize=tileWidth*componentsCount;for(var j=0;j<tileHeight;j++){var rowBytes=src.subarray(srcPosition,srcPosition+tileRowSize);data.set(rowBytes,dataPosition);srcPosition+=tileRowSize;dataPosition+=imgRowSize}}this.buffer=data}this.bufferLength=this.buffer.length;this.eof=true};return JpxStream}(); +var Jbig2Stream=function Jbig2StreamClosure(){function Jbig2Stream(stream,maybeLength,dict){this.stream=stream;this.maybeLength=maybeLength;this.dict=dict;DecodeStream.call(this,maybeLength)}Jbig2Stream.prototype=Object.create(DecodeStream.prototype);Object.defineProperty(Jbig2Stream.prototype,"bytes",{get:function Jbig2Stream_bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:true});Jbig2Stream.prototype.ensureBuffer=function Jbig2Stream_ensureBuffer(req){if(this.bufferLength)return; +var jbig2Image=new Jbig2Image;var chunks=[],xref=this.dict.xref;var decodeParams=xref.fetchIfRef(this.dict.get("DecodeParms"));if(isArray(decodeParams)){if(decodeParams.length>1)warn("JBIG2 - 'DecodeParms' array with multiple elements "+"not supported.");decodeParams=xref.fetchIfRef(decodeParams[0])}if(decodeParams&&decodeParams.has("JBIG2Globals")){var globalsStream=decodeParams.get("JBIG2Globals");var globals=globalsStream.getBytes();chunks.push({data:globals,start:0,end:globals.length})}chunks.push({data:this.bytes, +start:0,end:this.bytes.length});var data=jbig2Image.parseChunks(chunks);var dataLength=data.length;for(var i=0;i<dataLength;i++)data[i]^=255;this.buffer=data;this.bufferLength=dataLength;this.eof=true};return Jbig2Stream}();var DecryptStream=function DecryptStreamClosure(){function DecryptStream(str,maybeLength,decrypt){this.str=str;this.dict=str.dict;this.decrypt=decrypt;this.nextChunk=null;this.initialized=false;DecodeStream.call(this,maybeLength)}var chunkSize=512;DecryptStream.prototype=Object.create(DecodeStream.prototype); +DecryptStream.prototype.readBlock=function DecryptStream_readBlock(){var chunk;if(this.initialized)chunk=this.nextChunk;else{chunk=this.str.getBytes(chunkSize);this.initialized=true}if(!chunk||chunk.length===0){this.eof=true;return}this.nextChunk=this.str.getBytes(chunkSize);var hasMoreData=this.nextChunk&&this.nextChunk.length>0;var decrypt=this.decrypt;chunk=decrypt(chunk,!hasMoreData);var bufferLength=this.bufferLength;var i,n=chunk.length;var buffer=this.ensureBuffer(bufferLength+n);for(i=0;i< +n;i++)buffer[bufferLength++]=chunk[i];this.bufferLength=bufferLength};return DecryptStream}();var Ascii85Stream=function Ascii85StreamClosure(){function Ascii85Stream(str,maybeLength){this.str=str;this.dict=str.dict;this.input=new Uint8Array(5);if(maybeLength)maybeLength=.8*maybeLength;DecodeStream.call(this,maybeLength)}Ascii85Stream.prototype=Object.create(DecodeStream.prototype);Ascii85Stream.prototype.readBlock=function Ascii85Stream_readBlock(){var TILDA_CHAR=126;var Z_LOWER_CHAR=122;var EOF= +-1;var str=this.str;var c=str.getByte();while(Lexer.isSpace(c))c=str.getByte();if(c===EOF||c===TILDA_CHAR){this.eof=true;return}var bufferLength=this.bufferLength,buffer;var i;if(c===Z_LOWER_CHAR){buffer=this.ensureBuffer(bufferLength+4);for(i=0;i<4;++i)buffer[bufferLength+i]=0;this.bufferLength+=4}else{var input=this.input;input[0]=c;for(i=1;i<5;++i){c=str.getByte();while(Lexer.isSpace(c))c=str.getByte();input[i]=c;if(c===EOF||c===TILDA_CHAR)break}buffer=this.ensureBuffer(bufferLength+i-1);this.bufferLength+= +i-1;if(i<5){for(;i<5;++i)input[i]=33+84;this.eof=true}var t=0;for(i=0;i<5;++i)t=t*85+(input[i]-33);for(i=3;i>=0;--i){buffer[bufferLength+i]=t&255;t>>=8}}};return Ascii85Stream}();var AsciiHexStream=function AsciiHexStreamClosure(){function AsciiHexStream(str,maybeLength){this.str=str;this.dict=str.dict;this.firstDigit=-1;if(maybeLength)maybeLength=.5*maybeLength;DecodeStream.call(this,maybeLength)}AsciiHexStream.prototype=Object.create(DecodeStream.prototype);AsciiHexStream.prototype.readBlock=function AsciiHexStream_readBlock(){var UPSTREAM_BLOCK_SIZE= +8E3;var bytes=this.str.getBytes(UPSTREAM_BLOCK_SIZE);if(!bytes.length){this.eof=true;return}var maxDecodeLength=bytes.length+1>>1;var buffer=this.ensureBuffer(this.bufferLength+maxDecodeLength);var bufferLength=this.bufferLength;var firstDigit=this.firstDigit;for(var i=0,ii=bytes.length;i<ii;i++){var ch=bytes[i],digit;if(ch>=48&&ch<=57)digit=ch&15;else if(ch>=65&&ch<=70||ch>=97&&ch<=102)digit=(ch&15)+9;else if(ch===62){this.eof=true;break}else continue;if(firstDigit<0)firstDigit=digit;else{buffer[bufferLength++]= +firstDigit<<4|digit;firstDigit=-1}}if(firstDigit>=0&&this.eof){buffer[bufferLength++]=firstDigit<<4;firstDigit=-1}this.firstDigit=firstDigit;this.bufferLength=bufferLength};return AsciiHexStream}();var RunLengthStream=function RunLengthStreamClosure(){function RunLengthStream(str,maybeLength){this.str=str;this.dict=str.dict;DecodeStream.call(this,maybeLength)}RunLengthStream.prototype=Object.create(DecodeStream.prototype);RunLengthStream.prototype.readBlock=function RunLengthStream_readBlock(){var repeatHeader= +this.str.getBytes(2);if(!repeatHeader||repeatHeader.length<2||repeatHeader[0]===128){this.eof=true;return}var buffer;var bufferLength=this.bufferLength;var n=repeatHeader[0];if(n<128){buffer=this.ensureBuffer(bufferLength+n+1);buffer[bufferLength++]=repeatHeader[1];if(n>0){var source=this.str.getBytes(n);buffer.set(source,bufferLength);bufferLength+=n}}else{n=257-n;var b=repeatHeader[1];buffer=this.ensureBuffer(bufferLength+n+1);for(var i=0;i<n;i++)buffer[bufferLength++]=b}this.bufferLength=bufferLength}; +return RunLengthStream}();var CCITTFaxStream=function CCITTFaxStreamClosure(){var ccittEOL=-2;var twoDimPass=0;var twoDimHoriz=1;var twoDimVert0=2;var twoDimVertR1=3;var twoDimVertL1=4;var twoDimVertR2=5;var twoDimVertL2=6;var twoDimVertR3=7;var twoDimVertL3=8;var twoDimTable=[[-1,-1],[-1,-1],[7,twoDimVertL3],[7,twoDimVertR3],[6,twoDimVertL2],[6,twoDimVertL2],[6,twoDimVertR2],[6,twoDimVertR2],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass], +[4,twoDimPass],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1], +[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1, +twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0], +[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0]];var whiteTable1=[[-1,-1],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984], +[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]];var whiteTable2=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19], +[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5, +10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192], +[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4, +3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16], +[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14], +[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7], +[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]];var blackTable1=[[-1,-1],[-1,-1],[12,ccittEOL],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12, +2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12, +320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]];var blackTable2=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10, +17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7, +11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12], +[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]];var blackTable3=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2], +[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];function CCITTFaxStream(str,maybeLength,params){this.str=str;this.dict=str.dict;params=params||Dict.empty;this.encoding=params.get("K")||0;this.eoline=params.get("EndOfLine")||false;this.byteAlign=params.get("EncodedByteAlign")||false;this.columns=params.get("Columns")||1728;this.rows=params.get("Rows")||0;var eoblock=params.get("EndOfBlock");if(eoblock===null||eoblock===undefined)eoblock=true;this.eoblock=eoblock;this.black=params.get("BlackIs1")||false; +this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;var code1;while((code1=this.lookBits(12))===0)this.eatBits(1);if(code1===1)this.eatBits(12);if(this.encoding>0){this.nextLine2D=!this.lookBits(1);this.eatBits(1)}DecodeStream.call(this,maybeLength)}CCITTFaxStream.prototype=Object.create(DecodeStream.prototype);CCITTFaxStream.prototype.readBlock= +function CCITTFaxStream_readBlock(){while(!this.eof){var c=this.lookChar();this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=c}};CCITTFaxStream.prototype.addPixels=function ccittFaxStreamAddPixels(a1,blackPixels){var codingLine=this.codingLine;var codingPos=this.codingPos;if(a1>codingLine[codingPos]){if(a1>this.columns){info("row is wrong length");this.err=true;a1=this.columns}if(codingPos&1^blackPixels)++codingPos;codingLine[codingPos]=a1}this.codingPos=codingPos};CCITTFaxStream.prototype.addPixelsNeg= +function ccittFaxStreamAddPixelsNeg(a1,blackPixels){var codingLine=this.codingLine;var codingPos=this.codingPos;if(a1>codingLine[codingPos]){if(a1>this.columns){info("row is wrong length");this.err=true;a1=this.columns}if(codingPos&1^blackPixels)++codingPos;codingLine[codingPos]=a1}else if(a1<codingLine[codingPos]){if(a1<0){info("invalid code");this.err=true;a1=0}while(codingPos>0&&a1<codingLine[codingPos-1])--codingPos;codingLine[codingPos]=a1}this.codingPos=codingPos};CCITTFaxStream.prototype.lookChar= +function CCITTFaxStream_lookChar(){var refLine=this.refLine;var codingLine=this.codingLine;var columns=this.columns;var refPos,blackPixels,bits,i;if(this.outputBits===0){if(this.eof)return null;this.err=false;var code1,code2,code3;if(this.nextLine2D){for(i=0;codingLine[i]<columns;++i)refLine[i]=codingLine[i];refLine[i++]=columns;refLine[i]=columns;codingLine[0]=0;this.codingPos=0;refPos=0;blackPixels=0;while(codingLine[this.codingPos]<columns){code1=this.getTwoDimCode();switch(code1){case twoDimPass:this.addPixels(refLine[refPos+ +1],blackPixels);if(refLine[refPos+1]<columns)refPos+=2;break;case twoDimHoriz:code1=code2=0;if(blackPixels){do code1+=code3=this.getBlackCode();while(code3>=64);do code2+=code3=this.getWhiteCode();while(code3>=64)}else{do code1+=code3=this.getWhiteCode();while(code3>=64);do code2+=code3=this.getBlackCode();while(code3>=64)}this.addPixels(codingLine[this.codingPos]+code1,blackPixels);if(codingLine[this.codingPos]<columns)this.addPixels(codingLine[this.codingPos]+code2,blackPixels^1);while(refLine[refPos]<= +codingLine[this.codingPos]&&refLine[refPos]<columns)refPos+=2;break;case twoDimVertR3:this.addPixels(refLine[refPos]+3,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns)refPos+=2}break;case twoDimVertR2:this.addPixels(refLine[refPos]+2,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns)refPos+=2}break; +case twoDimVertR1:this.addPixels(refLine[refPos]+1,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns)refPos+=2}break;case twoDimVert0:this.addPixels(refLine[refPos],blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns)refPos+=2}break;case twoDimVertL3:this.addPixelsNeg(refLine[refPos]-3,blackPixels);blackPixels^= +1;if(codingLine[this.codingPos]<columns){if(refPos>0)--refPos;else++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns)refPos+=2}break;case twoDimVertL2:this.addPixelsNeg(refLine[refPos]-2,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]<columns){if(refPos>0)--refPos;else++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns)refPos+=2}break;case twoDimVertL1:this.addPixelsNeg(refLine[refPos]-1,blackPixels);blackPixels^=1;if(codingLine[this.codingPos]< +columns){if(refPos>0)--refPos;else++refPos;while(refLine[refPos]<=codingLine[this.codingPos]&&refLine[refPos]<columns)refPos+=2}break;case EOF:this.addPixels(columns,0);this.eof=true;break;default:info("bad 2d code");this.addPixels(columns,0);this.err=true}}}else{codingLine[0]=0;this.codingPos=0;blackPixels=0;while(codingLine[this.codingPos]<columns){code1=0;if(blackPixels){do code1+=code3=this.getBlackCode();while(code3>=64)}else{do code1+=code3=this.getWhiteCode();while(code3>=64)}this.addPixels(codingLine[this.codingPos]+ +code1,blackPixels);blackPixels^=1}}var gotEOL=false;if(!this.eoblock&&this.row===this.rows-1)this.eof=true;else if(this.eoline||!this.byteAlign){code1=this.lookBits(12);if(this.eoline)while(code1!==EOF&&code1!==1){this.eatBits(1);code1=this.lookBits(12)}else while(code1===0){this.eatBits(1);code1=this.lookBits(12)}if(code1===1){this.eatBits(12);gotEOL=true}else if(code1===EOF)this.eof=true}if(this.byteAlign&&!gotEOL)this.inputBits&=~7;if(!this.eof&&this.encoding>0){this.nextLine2D=!this.lookBits(1); +this.eatBits(1)}if(this.eoblock&&gotEOL&&this.byteAlign){code1=this.lookBits(12);if(code1===1){this.eatBits(12);if(this.encoding>0){this.lookBits(1);this.eatBits(1)}if(this.encoding>=0)for(i=0;i<4;++i){code1=this.lookBits(12);if(code1!==1)info("bad rtc code: "+code1);this.eatBits(12);if(this.encoding>0){this.lookBits(1);this.eatBits(1)}}this.eof=true}}else if(this.err&&this.eoline){while(true){code1=this.lookBits(13);if(code1===EOF){this.eof=true;return null}if(code1>>1===1)break;this.eatBits(1)}this.eatBits(12); +if(this.encoding>0){this.eatBits(1);this.nextLine2D=!(code1&1)}}if(codingLine[0]>0)this.outputBits=codingLine[this.codingPos=0];else this.outputBits=codingLine[this.codingPos=1];this.row++}var c;if(this.outputBits>=8){c=this.codingPos&1?0:255;this.outputBits-=8;if(this.outputBits===0&&codingLine[this.codingPos]<columns){this.codingPos++;this.outputBits=codingLine[this.codingPos]-codingLine[this.codingPos-1]}}else{bits=8;c=0;do if(this.outputBits>bits){c<<=bits;if(!(this.codingPos&1))c|=255>>8-bits; +this.outputBits-=bits;bits=0}else{c<<=this.outputBits;if(!(this.codingPos&1))c|=255>>8-this.outputBits;bits-=this.outputBits;this.outputBits=0;if(codingLine[this.codingPos]<columns){this.codingPos++;this.outputBits=codingLine[this.codingPos]-codingLine[this.codingPos-1]}else if(bits>0){c<<=bits;bits=0}}while(bits)}if(this.black)c^=255;return c};CCITTFaxStream.prototype.findTableCode=function ccittFaxStreamFindTableCode(start,end,table,limit){var limitValue=limit||0;for(var i=start;i<=end;++i){var code= +this.lookBits(i);if(code===EOF)return[true,1,false];if(i<end)code<<=end-i;if(!limitValue||code>=limitValue){var p=table[code-limitValue];if(p[0]===i){this.eatBits(i);return[true,p[1],true]}}}return[false,0,false]};CCITTFaxStream.prototype.getTwoDimCode=function ccittFaxStreamGetTwoDimCode(){var code=0;var p;if(this.eoblock){code=this.lookBits(7);p=twoDimTable[code];if(p&&p[0]>0){this.eatBits(p[0]);return p[1]}}else{var result=this.findTableCode(1,7,twoDimTable);if(result[0]&&result[2])return result[1]}info("Bad two dim code"); +return EOF};CCITTFaxStream.prototype.getWhiteCode=function ccittFaxStreamGetWhiteCode(){var code=0;var p;if(this.eoblock){code=this.lookBits(12);if(code===EOF)return 1;if(code>>5===0)p=whiteTable1[code];else p=whiteTable2[code>>3];if(p[0]>0){this.eatBits(p[0]);return p[1]}}else{var result=this.findTableCode(1,9,whiteTable2);if(result[0])return result[1];result=this.findTableCode(11,12,whiteTable1);if(result[0])return result[1]}info("bad white code");this.eatBits(1);return 1};CCITTFaxStream.prototype.getBlackCode= +function ccittFaxStreamGetBlackCode(){var code,p;if(this.eoblock){code=this.lookBits(13);if(code===EOF)return 1;if(code>>7===0)p=blackTable1[code];else if(code>>9===0&&code>>7!==0)p=blackTable2[(code>>1)-64];else p=blackTable3[code>>7];if(p[0]>0){this.eatBits(p[0]);return p[1]}}else{var result=this.findTableCode(2,6,blackTable3);if(result[0])return result[1];result=this.findTableCode(7,12,blackTable2,64);if(result[0])return result[1];result=this.findTableCode(10,13,blackTable1);if(result[0])return result[1]}info("bad black code"); +this.eatBits(1);return 1};CCITTFaxStream.prototype.lookBits=function CCITTFaxStream_lookBits(n){var c;while(this.inputBits<n){if((c=this.str.getByte())===-1){if(this.inputBits===0)return EOF;return this.inputBuf<<n-this.inputBits&65535>>16-n}this.inputBuf=(this.inputBuf<<8)+c;this.inputBits+=8}return this.inputBuf>>this.inputBits-n&65535>>16-n};CCITTFaxStream.prototype.eatBits=function CCITTFaxStream_eatBits(n){if((this.inputBits-=n)<0)this.inputBits=0};return CCITTFaxStream}();var LZWStream=function LZWStreamClosure(){function LZWStream(str, +maybeLength,earlyChange){this.str=str;this.dict=str.dict;this.cachedData=0;this.bitsCached=0;var maxLzwDictionarySize=4096;var lzwState={earlyChange:earlyChange,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(maxLzwDictionarySize),dictionaryLengths:new Uint16Array(maxLzwDictionarySize),dictionaryPrevCodes:new Uint16Array(maxLzwDictionarySize),currentSequence:new Uint8Array(maxLzwDictionarySize),currentSequenceLength:0};for(var i=0;i<256;++i){lzwState.dictionaryValues[i]=i;lzwState.dictionaryLengths[i]= +1}this.lzwState=lzwState;DecodeStream.call(this,maybeLength)}LZWStream.prototype=Object.create(DecodeStream.prototype);LZWStream.prototype.readBits=function LZWStream_readBits(n){var bitsCached=this.bitsCached;var cachedData=this.cachedData;while(bitsCached<n){var c=this.str.getByte();if(c===-1){this.eof=true;return null}cachedData=cachedData<<8|c;bitsCached+=8}this.bitsCached=bitsCached-=n;this.cachedData=cachedData;this.lastCode=null;return cachedData>>>bitsCached&(1<<n)-1};LZWStream.prototype.readBlock= +function LZWStream_readBlock(){var blockSize=512;var estimatedDecodedSize=blockSize*2,decodedSizeDelta=blockSize;var i,j,q;var lzwState=this.lzwState;if(!lzwState)return;var earlyChange=lzwState.earlyChange;var nextCode=lzwState.nextCode;var dictionaryValues=lzwState.dictionaryValues;var dictionaryLengths=lzwState.dictionaryLengths;var dictionaryPrevCodes=lzwState.dictionaryPrevCodes;var codeLength=lzwState.codeLength;var prevCode=lzwState.prevCode;var currentSequence=lzwState.currentSequence;var currentSequenceLength= +lzwState.currentSequenceLength;var decodedLength=0;var currentBufferLength=this.bufferLength;var buffer=this.ensureBuffer(this.bufferLength+estimatedDecodedSize);for(i=0;i<blockSize;i++){var code=this.readBits(codeLength);var hasPrev=currentSequenceLength>0;if(code<256){currentSequence[0]=code;currentSequenceLength=1}else if(code>=258)if(code<nextCode){currentSequenceLength=dictionaryLengths[code];for(j=currentSequenceLength-1,q=code;j>=0;j--){currentSequence[j]=dictionaryValues[q];q=dictionaryPrevCodes[q]}}else currentSequence[currentSequenceLength++]= +currentSequence[0];else if(code===256){codeLength=9;nextCode=258;currentSequenceLength=0;continue}else{this.eof=true;delete this.lzwState;break}if(hasPrev){dictionaryPrevCodes[nextCode]=prevCode;dictionaryLengths[nextCode]=dictionaryLengths[prevCode]+1;dictionaryValues[nextCode]=currentSequence[0];nextCode++;codeLength=nextCode+earlyChange&nextCode+earlyChange-1?codeLength:Math.min(Math.log(nextCode+earlyChange)/.6931471805599453+1,12)|0}prevCode=code;decodedLength+=currentSequenceLength;if(estimatedDecodedSize< +decodedLength){do estimatedDecodedSize+=decodedSizeDelta;while(estimatedDecodedSize<decodedLength);buffer=this.ensureBuffer(this.bufferLength+estimatedDecodedSize)}for(j=0;j<currentSequenceLength;j++)buffer[currentBufferLength++]=currentSequence[j]}lzwState.nextCode=nextCode;lzwState.codeLength=codeLength;lzwState.prevCode=prevCode;lzwState.currentSequenceLength=currentSequenceLength;this.bufferLength=currentBufferLength};return LZWStream}();var NullStream=function NullStreamClosure(){function NullStream(){Stream.call(this, +new Uint8Array(0))}NullStream.prototype=Stream.prototype;return NullStream}();var WorkerMessageHandler=PDFJS.WorkerMessageHandler={setup:function wphSetup(handler){var pdfManager;function loadDocument(recoveryMode){var loadDocumentCapability=createPromiseCapability();var parseSuccess=function parseSuccess(){var numPagesPromise=pdfManager.ensureDoc("numPages");var fingerprintPromise=pdfManager.ensureDoc("fingerprint");var encryptedPromise=pdfManager.ensureXRef("encrypt");Promise.all([numPagesPromise, +fingerprintPromise,encryptedPromise]).then(function onDocReady(results){var doc={numPages:results[0],fingerprint:results[1],encrypted:!!results[2]};loadDocumentCapability.resolve(doc)},parseFailure)};var parseFailure=function parseFailure(e){loadDocumentCapability.reject(e)};pdfManager.ensureDoc("checkHeader",[]).then(function(){pdfManager.ensureDoc("parseStartXRef",[]).then(function(){pdfManager.ensureDoc("parse",[recoveryMode]).then(parseSuccess,parseFailure)},parseFailure)},parseFailure);return loadDocumentCapability.promise} +function getPdfManager(data){var pdfManagerCapability=createPromiseCapability();var source=data.source;var disableRange=data.disableRange;if(source.data){try{pdfManager=new LocalPdfManager(source.data,source.password);pdfManagerCapability.resolve()}catch(ex){pdfManagerCapability.reject(ex)}return pdfManagerCapability.promise}else if(source.chunkedViewerLoading){try{pdfManager=new NetworkPdfManager(source,handler);pdfManagerCapability.resolve()}catch(ex){pdfManagerCapability.reject(ex)}return pdfManagerCapability.promise}var networkManager= +new NetworkManager(source.url,{httpHeaders:source.httpHeaders,withCredentials:source.withCredentials});var cachedChunks=[];var fullRequestXhrId=networkManager.requestFull({onHeadersReceived:function onHeadersReceived(){if(disableRange)return;var fullRequestXhr=networkManager.getRequestXhr(fullRequestXhrId);if(fullRequestXhr.getResponseHeader("Accept-Ranges")!=="bytes")return;var contentEncoding=fullRequestXhr.getResponseHeader("Content-Encoding")||"identity";if(contentEncoding!=="identity")return; +var length=fullRequestXhr.getResponseHeader("Content-Length");length=parseInt(length,10);if(!isInt(length))return;source.length=length;if(length<=2*RANGE_CHUNK_SIZE)return;if(networkManager.isStreamingRequest(fullRequestXhrId))source.disableAutoFetch=true;else networkManager.abortRequest(fullRequestXhrId);try{pdfManager=new NetworkPdfManager(source,handler);pdfManagerCapability.resolve(pdfManager)}catch(ex){pdfManagerCapability.reject(ex)}},onProgressiveData:source.disableStream?null:function onProgressiveData(chunk){if(!pdfManager){cachedChunks.push(chunk); +return}pdfManager.sendProgressiveData(chunk)},onDone:function onDone(args){if(pdfManager)return;var pdfFile;if(args===null){var pdfFileLength=0,pos=0;cachedChunks.forEach(function(chunk){pdfFileLength+=chunk.byteLength});if(source.length&&pdfFileLength!==source.length)warn("reported HTTP length is different from actual");var pdfFileArray=new Uint8Array(pdfFileLength);cachedChunks.forEach(function(chunk){pdfFileArray.set(new Uint8Array(chunk),pos);pos+=chunk.byteLength});pdfFile=pdfFileArray.buffer}else pdfFile= +args.chunk;try{pdfManager=new LocalPdfManager(pdfFile,source.password);pdfManagerCapability.resolve()}catch(ex){pdfManagerCapability.reject(ex)}},onError:function onError(status){var exception;if(status===404){exception=new MissingPDFException('Missing PDF "'+source.url+'".');handler.send("MissingPDF",exception)}else{exception=new UnexpectedResponseException("Unexpected server response ("+status+') while retrieving PDF "'+source.url+'".',status);handler.send("UnexpectedResponse",exception)}},onProgress:function onProgress(evt){handler.send("DocProgress", +{loaded:evt.loaded,total:evt.lengthComputable?evt.total:source.length})}});return pdfManagerCapability.promise}handler.on("test",function wphSetupTest(data){if(!(data instanceof Uint8Array)){handler.send("test",false);return}var supportTransfers=data[0]===255;handler.postMessageTransfers=supportTransfers;var xhr=new XMLHttpRequest;var responseExists="response"in xhr;try{var dummy=xhr.responseType}catch(e){responseExists=false}if(!responseExists){handler.send("test",false);return}handler.send("test", +{supportTypedArray:true,supportTransfers:supportTransfers})});handler.on("GetDocRequest",function wphSetupDoc(data){var onSuccess=function(doc){handler.send("GetDoc",{pdfInfo:doc})};var onFailure=function(e){if(e instanceof PasswordException)if(e.code===PasswordResponses.NEED_PASSWORD)handler.send("NeedPassword",e);else{if(e.code===PasswordResponses.INCORRECT_PASSWORD)handler.send("IncorrectPassword",e)}else if(e instanceof InvalidPDFException)handler.send("InvalidPDF",e);else if(e instanceof MissingPDFException)handler.send("MissingPDF", +e);else if(e instanceof UnexpectedResponseException)handler.send("UnexpectedResponse",e);else handler.send("UnknownError",new UnknownErrorException(e.message,e.toString()))};PDFJS.maxImageSize=data.maxImageSize===undefined?-1:data.maxImageSize;PDFJS.disableFontFace=data.disableFontFace;PDFJS.disableCreateObjectURL=data.disableCreateObjectURL;PDFJS.verbosity=data.verbosity;PDFJS.cMapUrl=data.cMapUrl===undefined?null:data.cMapUrl;PDFJS.cMapPacked=data.cMapPacked===true;getPdfManager(data).then(function(){handler.send("PDFManagerReady", +null);pdfManager.onLoadedStream().then(function(stream){handler.send("DataLoaded",{length:stream.bytes.byteLength})})}).then(function pdfManagerReady(){loadDocument(false).then(onSuccess,function loadFailure(ex){if(!(ex instanceof XRefParseException)){if(ex instanceof PasswordException)pdfManager.passwordChanged().then(pdfManagerReady);onFailure(ex);return}pdfManager.requestLoadedStream();pdfManager.onLoadedStream().then(function(){loadDocument(true).then(onSuccess,onFailure)})},onFailure)},onFailure)}); +handler.on("GetPage",function wphSetupGetPage(data){return pdfManager.getPage(data.pageIndex).then(function(page){var rotatePromise=pdfManager.ensure(page,"rotate");var refPromise=pdfManager.ensure(page,"ref");var viewPromise=pdfManager.ensure(page,"view");return Promise.all([rotatePromise,refPromise,viewPromise]).then(function(results){return{rotate:results[0],ref:results[1],view:results[2]}})})});handler.on("GetPageIndex",function wphSetupGetPageIndex(data){var ref=new Ref(data.ref.num,data.ref.gen); +var catalog=pdfManager.pdfDocument.catalog;return catalog.getPageIndex(ref)});handler.on("GetDestinations",function wphSetupGetDestinations(data){return pdfManager.ensureCatalog("destinations")});handler.on("GetDestination",function wphSetupGetDestination(data){return pdfManager.ensureCatalog("getDestination",[data.id])});handler.on("GetAttachments",function wphSetupGetAttachments(data){return pdfManager.ensureCatalog("attachments")});handler.on("GetJavaScript",function wphSetupGetJavaScript(data){return pdfManager.ensureCatalog("javaScript")}); +handler.on("GetOutline",function wphSetupGetOutline(data){return pdfManager.ensureCatalog("documentOutline")});handler.on("GetMetadata",function wphSetupGetMetadata(data){return Promise.all([pdfManager.ensureDoc("documentInfo"),pdfManager.ensureCatalog("metadata")])});handler.on("GetData",function wphSetupGetData(data){pdfManager.requestLoadedStream();return pdfManager.onLoadedStream().then(function(stream){return stream.bytes})});handler.on("GetStats",function wphSetupGetStats(data){return pdfManager.pdfDocument.xref.stats}); +handler.on("UpdatePassword",function wphSetupUpdatePassword(data){pdfManager.updatePassword(data)});handler.on("GetAnnotations",function wphSetupGetAnnotations(data){return pdfManager.getPage(data.pageIndex).then(function(page){return pdfManager.ensure(page,"getAnnotationsData",[])})});handler.on("RenderPageRequest",function wphSetupRenderPage(data){pdfManager.getPage(data.pageIndex).then(function(page){var pageNum=data.pageIndex+1;var start=Date.now();page.getOperatorList(handler,data.intent).then(function(operatorList){info("page="+ +pageNum+" - getOperatorList: time="+(Date.now()-start)+"ms, len="+operatorList.fnArray.length)},function(e){var minimumStackMessage="worker.js: while trying to getPage() and getOperatorList()";var wrappedException;if(typeof e==="string")wrappedException={message:e,stack:minimumStackMessage};else if(typeof e==="object")wrappedException={message:e.message||e.toString(),stack:e.stack||minimumStackMessage};else wrappedException={message:"Unknown exception type: "+typeof e,stack:minimumStackMessage};handler.send("PageError", +{pageNum:pageNum,error:wrappedException,intent:data.intent})})})},this);handler.on("GetTextContent",function wphExtractText(data){return pdfManager.getPage(data.pageIndex).then(function(page){var pageNum=data.pageIndex+1;var start=Date.now();return page.extractTextContent().then(function(textContent){info("text indexing: page="+pageNum+" - time="+(Date.now()-start)+"ms");return textContent})})});handler.on("Cleanup",function wphCleanup(data){return pdfManager.cleanup()});handler.on("Terminate",function wphTerminate(data){pdfManager.terminate()})}}; +var consoleTimer={};var workerConsole={log:function log(){var args=Array.prototype.slice.call(arguments);globalScope.postMessage({action:"console_log",data:args})},error:function error(){var args=Array.prototype.slice.call(arguments);globalScope.postMessage({action:"console_error",data:args});throw"pdf.js execution error";},time:function time(name){consoleTimer[name]=Date.now()},timeEnd:function timeEnd(name){var time=consoleTimer[name];if(!time)error("Unknown timer name "+name);this.log("Timer:", +name,Date.now()-time)}};if(typeof window==="undefined"){if(!("console"in globalScope))globalScope.console=workerConsole;PDFJS.UnsupportedManager.listen(function(msg){globalScope.postMessage({action:"_unsupported_feature",data:msg})});var handler=new MessageHandler("worker_processor",this);WorkerMessageHandler.setup(handler)}var ArithmeticDecoder=function ArithmeticDecoderClosure(){var QeTable=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0}, +{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0}, +{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0}, +{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21, +nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];function ArithmeticDecoder(data,start,end){this.data=data;this.bp=start;this.dataEnd=end;this.chigh=data[start];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}ArithmeticDecoder.prototype={byteIn:function ArithmeticDecoder_byteIn(){var data=this.data; +var bp=this.bp;if(data[bp]===255){var b1=data[bp+1];if(b1>143){this.clow+=65280;this.ct=8}else{bp++;this.clow+=data[bp]<<9;this.ct=7;this.bp=bp}}else{bp++;this.clow+=bp<this.dataEnd?data[bp]<<8:65280;this.ct=8;this.bp=bp}if(this.clow>65535){this.chigh+=this.clow>>16;this.clow&=65535}},readBit:function ArithmeticDecoder_readBit(contexts,pos){var cx_index=contexts[pos]>>1,cx_mps=contexts[pos]&1;var qeTableIcx=QeTable[cx_index];var qeIcx=qeTableIcx.qe;var d;var a=this.a-qeIcx;if(this.chigh<qeIcx)if(a< +qeIcx){a=qeIcx;d=cx_mps;cx_index=qeTableIcx.nmps}else{a=qeIcx;d=1^cx_mps;if(qeTableIcx.switchFlag===1)cx_mps=d;cx_index=qeTableIcx.nlps}else{this.chigh-=qeIcx;if((a&32768)!==0){this.a=a;return cx_mps}if(a<qeIcx){d=1^cx_mps;if(qeTableIcx.switchFlag===1)cx_mps=d;cx_index=qeTableIcx.nlps}else{d=cx_mps;cx_index=qeTableIcx.nmps}}do{if(this.ct===0)this.byteIn();a<<=1;this.chigh=this.chigh<<1&65535|this.clow>>15&1;this.clow=this.clow<<1&65535;this.ct--}while((a&32768)===0);this.a=a;contexts[pos]=cx_index<< +1|cx_mps;return d}};return ArithmeticDecoder}();var JpegImage=function jpegImage(){var dctZigZag=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);var dctCos1=4017;var dctSin1=799;var dctCos3=3406;var dctSin3=2276;var dctCos6=1567;var dctSin6=3784;var dctSqrt2=5793;var dctSqrt1d2=2896;function constructor(){}function buildHuffmanTable(codeLengths,values){var k= +0,code=[],i,j,length=16;while(length>0&&!codeLengths[length-1])length--;code.push({children:[],index:0});var p=code[0],q;for(i=0;i<length;i++){for(j=0;j<codeLengths[i];j++){p=code.pop();p.children[p.index]=values[k];while(p.index>0)p=code.pop();p.index++;code.push(p);while(code.length<=i){code.push(q={children:[],index:0});p.children[p.index]=q.children;p=q}k++}if(i+1<length){code.push(q={children:[],index:0});p.children[p.index]=q.children;p=q}}return code[0].children}function getBlockBufferOffset(component, +row,col){return 64*((component.blocksPerLine+1)*row+col)}function decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successivePrev,successive){var precision=frame.precision;var samplesPerLine=frame.samplesPerLine;var scanLines=frame.scanLines;var mcusPerLine=frame.mcusPerLine;var progressive=frame.progressive;var maxH=frame.maxH,maxV=frame.maxV;var startOffset=offset,bitsData=0,bitsCount=0;function readBit(){if(bitsCount>0){bitsCount--;return bitsData>>bitsCount&1}bitsData= +data[offset++];if(bitsData===255){var nextByte=data[offset++];if(nextByte)throw"unexpected marker: "+(bitsData<<8|nextByte).toString(16);}bitsCount=7;return bitsData>>>7}function decodeHuffman(tree){var node=tree;var bit;while((bit=readBit())!==null){node=node[bit];if(typeof node==="number")return node;if(typeof node!=="object")throw"invalid huffman sequence";}return null}function receive(length){var n=0;while(length>0){var bit=readBit();if(bit===null)return;n=n<<1|bit;length--}return n}function receiveAndExtend(length){if(length=== +1)return readBit()===1?1:-1;var n=receive(length);if(n>=1<<length-1)return n;return n+(-1<<length)+1}function decodeBaseline(component,offset){var t=decodeHuffman(component.huffmanTableDC);var diff=t===0?0:receiveAndExtend(t);component.blockData[offset]=component.pred+=diff;var k=1;while(k<64){var rs=decodeHuffman(component.huffmanTableAC);var s=rs&15,r=rs>>4;if(s===0){if(r<15)break;k+=16;continue}k+=r;var z=dctZigZag[k];component.blockData[offset+z]=receiveAndExtend(s);k++}}function decodeDCFirst(component, +offset){var t=decodeHuffman(component.huffmanTableDC);var diff=t===0?0:receiveAndExtend(t)<<successive;component.blockData[offset]=component.pred+=diff}function decodeDCSuccessive(component,offset){component.blockData[offset]|=readBit()<<successive}var eobrun=0;function decodeACFirst(component,offset){if(eobrun>0){eobrun--;return}var k=spectralStart,e=spectralEnd;while(k<=e){var rs=decodeHuffman(component.huffmanTableAC);var s=rs&15,r=rs>>4;if(s===0){if(r<15){eobrun=receive(r)+(1<<r)-1;break}k+=16; +continue}k+=r;var z=dctZigZag[k];component.blockData[offset+z]=receiveAndExtend(s)*(1<<successive);k++}}var successiveACState=0,successiveACNextValue;function decodeACSuccessive(component,offset){var k=spectralStart;var e=spectralEnd;var r=0;var s;var rs;while(k<=e){var z=dctZigZag[k];switch(successiveACState){case 0:rs=decodeHuffman(component.huffmanTableAC);s=rs&15;r=rs>>4;if(s===0)if(r<15){eobrun=receive(r)+(1<<r);successiveACState=4}else{r=16;successiveACState=1}else{if(s!==1)throw"invalid ACn encoding"; +successiveACNextValue=receiveAndExtend(s);successiveACState=r?2:3}continue;case 1:case 2:if(component.blockData[offset+z])component.blockData[offset+z]+=readBit()<<successive;else{r--;if(r===0)successiveACState=successiveACState===2?3:0}break;case 3:if(component.blockData[offset+z])component.blockData[offset+z]+=readBit()<<successive;else{component.blockData[offset+z]=successiveACNextValue<<successive;successiveACState=0}break;case 4:if(component.blockData[offset+z])component.blockData[offset+z]+= +readBit()<<successive;break}k++}if(successiveACState===4){eobrun--;if(eobrun===0)successiveACState=0}}function decodeMcu(component,decode,mcu,row,col){var mcuRow=mcu/mcusPerLine|0;var mcuCol=mcu%mcusPerLine;var blockRow=mcuRow*component.v+row;var blockCol=mcuCol*component.h+col;var offset=getBlockBufferOffset(component,blockRow,blockCol);decode(component,offset)}function decodeBlock(component,decode,mcu){var blockRow=mcu/component.blocksPerLine|0;var blockCol=mcu%component.blocksPerLine;var offset= +getBlockBufferOffset(component,blockRow,blockCol);decode(component,offset)}var componentsLength=components.length;var component,i,j,k,n;var decodeFn;if(progressive)if(spectralStart===0)decodeFn=successivePrev===0?decodeDCFirst:decodeDCSuccessive;else decodeFn=successivePrev===0?decodeACFirst:decodeACSuccessive;else decodeFn=decodeBaseline;var mcu=0,marker;var mcuExpected;if(componentsLength===1)mcuExpected=components[0].blocksPerLine*components[0].blocksPerColumn;else mcuExpected=mcusPerLine*frame.mcusPerColumn; +if(!resetInterval)resetInterval=mcuExpected;var h,v;while(mcu<mcuExpected){for(i=0;i<componentsLength;i++)components[i].pred=0;eobrun=0;if(componentsLength===1){component=components[0];for(n=0;n<resetInterval;n++){decodeBlock(component,decodeFn,mcu);mcu++}}else for(n=0;n<resetInterval;n++){for(i=0;i<componentsLength;i++){component=components[i];h=component.h;v=component.v;for(j=0;j<v;j++)for(k=0;k<h;k++)decodeMcu(component,decodeFn,mcu,j,k)}mcu++}bitsCount=0;marker=data[offset]<<8|data[offset+1]; +if(marker<=65280)throw"marker was not found";if(marker>=65488&&marker<=65495)offset+=2;else break}return offset-startOffset}function quantizeAndInverse(component,blockBufferOffset,p){var qt=component.quantizationTable,blockData=component.blockData;var v0,v1,v2,v3,v4,v5,v6,v7;var p0,p1,p2,p3,p4,p5,p6,p7;var t;for(var row=0;row<64;row+=8){p0=blockData[blockBufferOffset+row];p1=blockData[blockBufferOffset+row+1];p2=blockData[blockBufferOffset+row+2];p3=blockData[blockBufferOffset+row+3];p4=blockData[blockBufferOffset+ +row+4];p5=blockData[blockBufferOffset+row+5];p6=blockData[blockBufferOffset+row+6];p7=blockData[blockBufferOffset+row+7];p0*=qt[row];if((p1|p2|p3|p4|p5|p6|p7)===0){t=dctSqrt2*p0+512>>10;p[row]=t;p[row+1]=t;p[row+2]=t;p[row+3]=t;p[row+4]=t;p[row+5]=t;p[row+6]=t;p[row+7]=t;continue}p1*=qt[row+1];p2*=qt[row+2];p3*=qt[row+3];p4*=qt[row+4];p5*=qt[row+5];p6*=qt[row+6];p7*=qt[row+7];v0=dctSqrt2*p0+128>>8;v1=dctSqrt2*p4+128>>8;v2=p2;v3=p6;v4=dctSqrt1d2*(p1-p7)+128>>8;v7=dctSqrt1d2*(p1+p7)+128>>8;v5=p3<<4; +v6=p5<<4;v0=v0+v1+1>>1;v1=v0-v1;t=v2*dctSin6+v3*dctCos6+128>>8;v2=v2*dctCos6-v3*dctSin6+128>>8;v3=t;v4=v4+v6+1>>1;v6=v4-v6;v7=v7+v5+1>>1;v5=v7-v5;v0=v0+v3+1>>1;v3=v0-v3;v1=v1+v2+1>>1;v2=v1-v2;t=v4*dctSin3+v7*dctCos3+2048>>12;v4=v4*dctCos3-v7*dctSin3+2048>>12;v7=t;t=v5*dctSin1+v6*dctCos1+2048>>12;v5=v5*dctCos1-v6*dctSin1+2048>>12;v6=t;p[row]=v0+v7;p[row+7]=v0-v7;p[row+1]=v1+v6;p[row+6]=v1-v6;p[row+2]=v2+v5;p[row+5]=v2-v5;p[row+3]=v3+v4;p[row+4]=v3-v4}for(var col=0;col<8;++col){p0=p[col];p1=p[col+8]; +p2=p[col+16];p3=p[col+24];p4=p[col+32];p5=p[col+40];p6=p[col+48];p7=p[col+56];if((p1|p2|p3|p4|p5|p6|p7)===0){t=dctSqrt2*p0+8192>>14;t=t<-2040?0:t>=2024?255:t+2056>>4;blockData[blockBufferOffset+col]=t;blockData[blockBufferOffset+col+8]=t;blockData[blockBufferOffset+col+16]=t;blockData[blockBufferOffset+col+24]=t;blockData[blockBufferOffset+col+32]=t;blockData[blockBufferOffset+col+40]=t;blockData[blockBufferOffset+col+48]=t;blockData[blockBufferOffset+col+56]=t;continue}v0=dctSqrt2*p0+2048>>12;v1= +dctSqrt2*p4+2048>>12;v2=p2;v3=p6;v4=dctSqrt1d2*(p1-p7)+2048>>12;v7=dctSqrt1d2*(p1+p7)+2048>>12;v5=p3;v6=p5;v0=(v0+v1+1>>1)+4112;v1=v0-v1;t=v2*dctSin6+v3*dctCos6+2048>>12;v2=v2*dctCos6-v3*dctSin6+2048>>12;v3=t;v4=v4+v6+1>>1;v6=v4-v6;v7=v7+v5+1>>1;v5=v7-v5;v0=v0+v3+1>>1;v3=v0-v3;v1=v1+v2+1>>1;v2=v1-v2;t=v4*dctSin3+v7*dctCos3+2048>>12;v4=v4*dctCos3-v7*dctSin3+2048>>12;v7=t;t=v5*dctSin1+v6*dctCos1+2048>>12;v5=v5*dctCos1-v6*dctSin1+2048>>12;v6=t;p0=v0+v7;p7=v0-v7;p1=v1+v6;p6=v1-v6;p2=v2+v5;p5=v2-v5;p3= +v3+v4;p4=v3-v4;p0=p0<16?0:p0>=4080?255:p0>>4;p1=p1<16?0:p1>=4080?255:p1>>4;p2=p2<16?0:p2>=4080?255:p2>>4;p3=p3<16?0:p3>=4080?255:p3>>4;p4=p4<16?0:p4>=4080?255:p4>>4;p5=p5<16?0:p5>=4080?255:p5>>4;p6=p6<16?0:p6>=4080?255:p6>>4;p7=p7<16?0:p7>=4080?255:p7>>4;blockData[blockBufferOffset+col]=p0;blockData[blockBufferOffset+col+8]=p1;blockData[blockBufferOffset+col+16]=p2;blockData[blockBufferOffset+col+24]=p3;blockData[blockBufferOffset+col+32]=p4;blockData[blockBufferOffset+col+40]=p5;blockData[blockBufferOffset+ +col+48]=p6;blockData[blockBufferOffset+col+56]=p7}}function buildComponentData(frame,component){var blocksPerLine=component.blocksPerLine;var blocksPerColumn=component.blocksPerColumn;var computationBuffer=new Int16Array(64);for(var blockRow=0;blockRow<blocksPerColumn;blockRow++)for(var blockCol=0;blockCol<blocksPerLine;blockCol++){var offset=getBlockBufferOffset(component,blockRow,blockCol);quantizeAndInverse(component,offset,computationBuffer)}return component.blockData}function clamp0to255(a){return a<= +0?0:a>=255?255:a}constructor.prototype={parse:function parse(data){function readUint16(){var value=data[offset]<<8|data[offset+1];offset+=2;return value}function readDataBlock(){var length=readUint16();var array=data.subarray(offset,offset+length-2);offset+=array.length;return array}function prepareComponents(frame){var mcusPerLine=Math.ceil(frame.samplesPerLine/8/frame.maxH);var mcusPerColumn=Math.ceil(frame.scanLines/8/frame.maxV);for(var i=0;i<frame.components.length;i++){component=frame.components[i]; +var blocksPerLine=Math.ceil(Math.ceil(frame.samplesPerLine/8)*component.h/frame.maxH);var blocksPerColumn=Math.ceil(Math.ceil(frame.scanLines/8)*component.v/frame.maxV);var blocksPerLineForMcu=mcusPerLine*component.h;var blocksPerColumnForMcu=mcusPerColumn*component.v;var blocksBufferSize=64*blocksPerColumnForMcu*(blocksPerLineForMcu+1);component.blockData=new Int16Array(blocksBufferSize);component.blocksPerLine=blocksPerLine;component.blocksPerColumn=blocksPerColumn}frame.mcusPerLine=mcusPerLine; +frame.mcusPerColumn=mcusPerColumn}var offset=0,length=data.length;var jfif=null;var adobe=null;var pixels=null;var frame,resetInterval;var quantizationTables=[];var huffmanTablesAC=[],huffmanTablesDC=[];var fileMarker=readUint16();if(fileMarker!==65496)throw"SOI not found";fileMarker=readUint16();while(fileMarker!==65497){var i,j,l;switch(fileMarker){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var appData= +readDataBlock();if(fileMarker===65504)if(appData[0]===74&&appData[1]===70&&appData[2]===73&&appData[3]===70&&appData[4]===0)jfif={version:{major:appData[5],minor:appData[6]},densityUnits:appData[7],xDensity:appData[8]<<8|appData[9],yDensity:appData[10]<<8|appData[11],thumbWidth:appData[12],thumbHeight:appData[13],thumbData:appData.subarray(14,14+3*appData[12]*appData[13])};if(fileMarker===65518)if(appData[0]===65&&appData[1]===100&&appData[2]===111&&appData[3]===98&&appData[4]===101&&appData[5]=== +0)adobe={version:appData[6],flags0:appData[7]<<8|appData[8],flags1:appData[9]<<8|appData[10],transformCode:appData[11]};break;case 65499:var quantizationTablesLength=readUint16();var quantizationTablesEnd=quantizationTablesLength+offset-2;var z;while(offset<quantizationTablesEnd){var quantizationTableSpec=data[offset++];var tableData=new Uint16Array(64);if(quantizationTableSpec>>4===0)for(j=0;j<64;j++){z=dctZigZag[j];tableData[z]=data[offset++]}else if(quantizationTableSpec>>4===1)for(j=0;j<64;j++){z= +dctZigZag[j];tableData[z]=readUint16()}else throw"DQT: invalid table spec";quantizationTables[quantizationTableSpec&15]=tableData}break;case 65472:case 65473:case 65474:if(frame)throw"Only single frame JPEGs supported";readUint16();frame={};frame.extended=fileMarker===65473;frame.progressive=fileMarker===65474;frame.precision=data[offset++];frame.scanLines=readUint16();frame.samplesPerLine=readUint16();frame.components=[];frame.componentIds={};var componentsCount=data[offset++],componentId;var maxH= +0,maxV=0;for(i=0;i<componentsCount;i++){componentId=data[offset];var h=data[offset+1]>>4;var v=data[offset+1]&15;if(maxH<h)maxH=h;if(maxV<v)maxV=v;var qId=data[offset+2];l=frame.components.push({h:h,v:v,quantizationTable:quantizationTables[qId]});frame.componentIds[componentId]=l-1;offset+=3}frame.maxH=maxH;frame.maxV=maxV;prepareComponents(frame);break;case 65476:var huffmanLength=readUint16();for(i=2;i<huffmanLength;){var huffmanTableSpec=data[offset++];var codeLengths=new Uint8Array(16);var codeLengthSum= +0;for(j=0;j<16;j++,offset++)codeLengthSum+=codeLengths[j]=data[offset];var huffmanValues=new Uint8Array(codeLengthSum);for(j=0;j<codeLengthSum;j++,offset++)huffmanValues[j]=data[offset];i+=17+codeLengthSum;(huffmanTableSpec>>4===0?huffmanTablesDC:huffmanTablesAC)[huffmanTableSpec&15]=buildHuffmanTable(codeLengths,huffmanValues)}break;case 65501:readUint16();resetInterval=readUint16();break;case 65498:var scanLength=readUint16();var selectorsCount=data[offset++];var components=[],component;for(i=0;i< +selectorsCount;i++){var componentIndex=frame.componentIds[data[offset++]];component=frame.components[componentIndex];var tableSpec=data[offset++];component.huffmanTableDC=huffmanTablesDC[tableSpec>>4];component.huffmanTableAC=huffmanTablesAC[tableSpec&15];components.push(component)}var spectralStart=data[offset++];var spectralEnd=data[offset++];var successiveApproximation=data[offset++];var processed=decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successiveApproximation>> +4,successiveApproximation&15);offset+=processed;break;default:if(data[offset-3]===255&&data[offset-2]>=192&&data[offset-2]<=254){offset-=3;break}throw"unknown JPEG marker "+fileMarker.toString(16);}fileMarker=readUint16()}this.width=frame.samplesPerLine;this.height=frame.scanLines;this.jfif=jfif;this.adobe=adobe;this.components=[];for(i=0;i<frame.components.length;i++){component=frame.components[i];this.components.push({output:buildComponentData(frame,component),scaleX:component.h/frame.maxH,scaleY:component.v/ +frame.maxV,blocksPerLine:component.blocksPerLine,blocksPerColumn:component.blocksPerColumn})}this.numComponents=this.components.length},_getLinearizedBlockData:function getLinearizedBlockData(width,height){var scaleX=this.width/width,scaleY=this.height/height;var component,componentScaleX,componentScaleY,blocksPerScanline;var x,y,i,j,k;var index;var offset=0;var output;var numComponents=this.components.length;var dataLength=width*height*numComponents;var data=new Uint8Array(dataLength);var xScaleBlockOffset= +new Uint32Array(width);var mask3LSB=4294967288;for(i=0;i<numComponents;i++){component=this.components[i];componentScaleX=component.scaleX*scaleX;componentScaleY=component.scaleY*scaleY;offset=i;output=component.output;blocksPerScanline=component.blocksPerLine+1<<3;for(x=0;x<width;x++){j=0|x*componentScaleX;xScaleBlockOffset[x]=(j&mask3LSB)<<3|j&7}for(y=0;y<height;y++){j=0|y*componentScaleY;index=blocksPerScanline*(j&mask3LSB)|(j&7)<<3;for(x=0;x<width;x++){data[offset]=output[index+xScaleBlockOffset[x]]; +offset+=numComponents}}}var transform=this.decodeTransform;if(transform)for(i=0;i<dataLength;)for(j=0,k=0;j<numComponents;j++,i++,k+=2)data[i]=(data[i]*transform[k]>>8)+transform[k+1];return data},_isColorConversionNeeded:function isColorConversionNeeded(){if(this.adobe&&this.adobe.transformCode)return true;else if(this.numComponents===3)return true;else return false},_convertYccToRgb:function convertYccToRgb(data){var Y,Cb,Cr;for(var i=0,length=data.length;i<length;i+=3){Y=data[i];Cb=data[i+1];Cr= +data[i+2];data[i]=clamp0to255(Y-179.456+1.402*Cr);data[i+1]=clamp0to255(Y+135.459-.344*Cb-.714*Cr);data[i+2]=clamp0to255(Y-226.816+1.772*Cb)}return data},_convertYcckToRgb:function convertYcckToRgb(data){var Y,Cb,Cr,k,CbCb,CbCr,CbY,Cbk,CrCr,Crk,CrY,YY,Yk,kk;var offset=0;for(var i=0,length=data.length;i<length;i+=4){Y=data[i];Cb=data[i+1];Cr=data[i+2];k=data[i+3];CbCb=Cb*Cb;CbCr=Cb*Cr;CbY=Cb*Y;Cbk=Cb*k;CrCr=Cr*Cr;Crk=Cr*k;CrY=Cr*Y;YY=Y*Y;Yk=Y*k;kk=k*k;var r=-122.67195406894-6.60635669420364E-5*CbCb+ +4.37130475926232E-4*CbCr-5.4080610064599E-5*CbY+4.8449797120281E-4*Cbk-.154362151871126*Cb-9.57964378445773E-4*CrCr+8.17076911346625E-4*CrY-.00477271405408747*Crk+1.53380253221734*Cr+9.61250184130688E-4*YY-.00266257332283933*Yk+.48357088451265*Y-3.36197177618394E-4*kk+.484791561490776*k;var g=107.268039397724+2.19927104525741E-5*CbCb-6.40992018297945E-4*CbCr+6.59397001245577E-4*CbY+4.26105652938837E-4*Cbk-.176491792462875*Cb-7.78269941513683E-4*CrCr+.00130872261408275*CrY+7.70482631801132E-4*Crk- +.151051492775562*Cr+.00126935368114843*YY-.00265090189010898*Yk+.25802910206845*Y-3.18913117588328E-4*kk-.213742400323665*k;var b=-20.810012546947-5.70115196973677E-4*CbCb-2.63409051004589E-5*CbCr+.0020741088115012*CbY-.00288260236853442*Cbk+.814272968359295*Cb-1.53496057440975E-5*CrCr-1.32689043961446E-4*CrY+5.60833691242812E-4*Crk-.195152027534049*Cr+.00174418132927582*YY-.00255243321439347*Yk+.116935020465145*Y-3.43531996510555E-4*kk+.24165260232407*k;data[offset++]=clamp0to255(r);data[offset++]= +clamp0to255(g);data[offset++]=clamp0to255(b)}return data},_convertYcckToCmyk:function convertYcckToCmyk(data){var Y,Cb,Cr;for(var i=0,length=data.length;i<length;i+=4){Y=data[i];Cb=data[i+1];Cr=data[i+2];data[i]=clamp0to255(434.456-Y-1.402*Cr);data[i+1]=clamp0to255(119.541-Y+.344*Cb+.714*Cr);data[i+2]=clamp0to255(481.816-Y-1.772*Cb)}return data},_convertCmykToRgb:function convertCmykToRgb(data){var c,m,y,k;var offset=0;var min=-255*255*255;var scale=1/255/255;for(var i=0,length=data.length;i<length;i+= +4){c=data[i];m=data[i+1];y=data[i+2];k=data[i+3];var r=c*(-4.387332384609988*c+54.48615194189176*m+18.82290502165302*y+212.25662451639585*k-72734.4411664936)+m*(1.7149763477362134*m-5.6096736904047315*y-17.873870861415444*k-1401.7366389350734)+y*(-2.5217340131683033*y-21.248923337353073*k+4465.541406466231)-k*(21.86122147463605*k+48317.86113160301);var g=c*(8.841041422036149*c+60.118027045597366*m+6.871425592049007*y+31.159100130055922*k-20220.756542821975)+m*(-15.310361306967817*m+17.575251261109482* +y+131.35250912493976*k-48691.05921601825)+y*(4.444339102852739*y+9.8632861493405*k-6341.191035517494)-k*(20.737325471181034*k+47890.15695978492);var b=c*(.8842522430003296*c+8.078677503112928*m+30.89978309703729*y-.23883238689178934*k-3616.812083916688)+m*(10.49593273432072*m+63.02378494754052*y+50.606957656360734*k-28620.90484698408)+y*(.03296041114873217*y+115.60384449646641*k-49363.43385999684)-k*(22.33816807309886*k+45932.16563550634);data[offset++]=r>=0?255:r<=min?0:255+r*scale|0;data[offset++]= +g>=0?255:g<=min?0:255+g*scale|0;data[offset++]=b>=0?255:b<=min?0:255+b*scale|0}return data},getData:function getData(width,height,forceRGBoutput){if(this.numComponents>4)throw"Unsupported color mode";var data=this._getLinearizedBlockData(width,height);if(this.numComponents===3)return this._convertYccToRgb(data);else if(this.numComponents===4)if(this._isColorConversionNeeded())if(forceRGBoutput)return this._convertYcckToRgb(data);else return this._convertYcckToCmyk(data);else if(forceRGBoutput)return this._convertCmykToRgb(data); +return data}};return constructor}();var JpxImage=function JpxImageClosure(){var SubbandsGainLog2={"LL":0,"LH":1,"HL":1,"HH":2};function JpxImage(){this.failOnCorruptedImage=false}JpxImage.prototype={parse:function JpxImage_parse(data){var head=readUint16(data,0);if(head===65359){this.parseCodestream(data,0,data.length);return}var position=0,length=data.length;while(position<length){var headerSize=8;var lbox=readUint32(data,position);var tbox=readUint32(data,position+4);position+=headerSize;if(lbox=== +1){lbox=readUint32(data,position)*4294967296+readUint32(data,position+4);position+=8;headerSize+=8}if(lbox===0)lbox=length-position+headerSize;if(lbox<headerSize)throw new Error("JPX Error: Invalid box field size");var dataLength=lbox-headerSize;var jumpDataLength=true;switch(tbox){case 1783634458:break;case 1785737832:jumpDataLength=false;break;case 1668246642:break;case 1785737827:this.parseCodestream(data,position,position+dataLength);break}if(jumpDataLength)position+=dataLength}},parseImageProperties:function JpxImage_parseImageProperties(stream){var newByte= +stream.getByte();while(newByte>=0){var oldByte=newByte;newByte=stream.getByte();var code=oldByte<<8|newByte;if(code===65361){stream.skip(4);var Xsiz=stream.getInt32()>>>0;var Ysiz=stream.getInt32()>>>0;var XOsiz=stream.getInt32()>>>0;var YOsiz=stream.getInt32()>>>0;stream.skip(16);var Csiz=stream.getUint16();this.width=Xsiz-XOsiz;this.height=Ysiz-YOsiz;this.componentsCount=Csiz;this.bitsPerComponent=8;return}}throw new Error("JPX Error: No size marker found in JPX stream");},parseCodestream:function JpxImage_parseCodestream(data, +start,end){var context={};try{var doNotRecover=false;var position=start;while(position+1<end){var code=readUint16(data,position);position+=2;var length=0,j,sqcd,spqcds,spqcdSize,scalarExpounded,tile;switch(code){case 65359:context.mainHeader=true;break;case 65497:break;case 65361:length=readUint16(data,position);var siz={};siz.Xsiz=readUint32(data,position+4);siz.Ysiz=readUint32(data,position+8);siz.XOsiz=readUint32(data,position+12);siz.YOsiz=readUint32(data,position+16);siz.XTsiz=readUint32(data, +position+20);siz.YTsiz=readUint32(data,position+24);siz.XTOsiz=readUint32(data,position+28);siz.YTOsiz=readUint32(data,position+32);var componentsCount=readUint16(data,position+36);siz.Csiz=componentsCount;var components=[];j=position+38;for(var i=0;i<componentsCount;i++){var component={precision:(data[j]&127)+1,isSigned:!!(data[j]&128),XRsiz:data[j+1],YRsiz:data[j+1]};calculateComponentDimensions(component,siz);components.push(component)}context.SIZ=siz;context.components=components;calculateTileGrids(context, +components);context.QCC=[];context.COC=[];break;case 65365:var Ltlm=readUint16(data,position);position+=Ltlm;break;case 65372:length=readUint16(data,position);var qcd={};j=position+2;sqcd=data[j++];switch(sqcd&31){case 0:spqcdSize=8;scalarExpounded=true;break;case 1:spqcdSize=16;scalarExpounded=false;break;case 2:spqcdSize=16;scalarExpounded=true;break;default:throw new Error("JPX Error: Invalid SQcd value "+sqcd);}qcd.noQuantization=spqcdSize===8;qcd.scalarExpounded=scalarExpounded;qcd.guardBits= +sqcd>>5;spqcds=[];while(j<length+position){var spqcd={};if(spqcdSize===8){spqcd.epsilon=data[j++]>>3;spqcd.mu=0}else{spqcd.epsilon=data[j]>>3;spqcd.mu=(data[j]&7)<<8|data[j+1];j+=2}spqcds.push(spqcd)}qcd.SPqcds=spqcds;if(context.mainHeader)context.QCD=qcd;else{context.currentTile.QCD=qcd;context.currentTile.QCC=[]}break;case 65373:length=readUint16(data,position);var qcc={};j=position+2;var cqcc;if(context.SIZ.Csiz<257)cqcc=data[j++];else{cqcc=readUint16(data,j);j+=2}sqcd=data[j++];switch(sqcd&31){case 0:spqcdSize= +8;scalarExpounded=true;break;case 1:spqcdSize=16;scalarExpounded=false;break;case 2:spqcdSize=16;scalarExpounded=true;break;default:throw new Error("JPX Error: Invalid SQcd value "+sqcd);}qcc.noQuantization=spqcdSize===8;qcc.scalarExpounded=scalarExpounded;qcc.guardBits=sqcd>>5;spqcds=[];while(j<length+position){spqcd={};if(spqcdSize===8){spqcd.epsilon=data[j++]>>3;spqcd.mu=0}else{spqcd.epsilon=data[j]>>3;spqcd.mu=(data[j]&7)<<8|data[j+1];j+=2}spqcds.push(spqcd)}qcc.SPqcds=spqcds;if(context.mainHeader)context.QCC[cqcc]= +qcc;else context.currentTile.QCC[cqcc]=qcc;break;case 65362:length=readUint16(data,position);var cod={};j=position+2;var scod=data[j++];cod.entropyCoderWithCustomPrecincts=!!(scod&1);cod.sopMarkerUsed=!!(scod&2);cod.ephMarkerUsed=!!(scod&4);cod.progressionOrder=data[j++];cod.layersCount=readUint16(data,j);j+=2;cod.multipleComponentTransform=data[j++];cod.decompositionLevelsCount=data[j++];cod.xcb=(data[j++]&15)+2;cod.ycb=(data[j++]&15)+2;var blockStyle=data[j++];cod.selectiveArithmeticCodingBypass= +!!(blockStyle&1);cod.resetContextProbabilities=!!(blockStyle&2);cod.terminationOnEachCodingPass=!!(blockStyle&4);cod.verticalyStripe=!!(blockStyle&8);cod.predictableTermination=!!(blockStyle&16);cod.segmentationSymbolUsed=!!(blockStyle&32);cod.reversibleTransformation=data[j++];if(cod.entropyCoderWithCustomPrecincts){var precinctsSizes=[];while(j<length+position){var precinctsSize=data[j++];precinctsSizes.push({PPx:precinctsSize&15,PPy:precinctsSize>>4})}cod.precinctsSizes=precinctsSizes}var unsupported= +[];if(cod.sopMarkerUsed)unsupported.push("sopMarkerUsed");if(cod.ephMarkerUsed)unsupported.push("ephMarkerUsed");if(cod.selectiveArithmeticCodingBypass)unsupported.push("selectiveArithmeticCodingBypass");if(cod.resetContextProbabilities)unsupported.push("resetContextProbabilities");if(cod.terminationOnEachCodingPass)unsupported.push("terminationOnEachCodingPass");if(cod.verticalyStripe)unsupported.push("verticalyStripe");if(cod.predictableTermination)unsupported.push("predictableTermination");if(unsupported.length> +0){doNotRecover=true;throw new Error("JPX Error: Unsupported COD options ("+unsupported.join(", ")+")");}if(context.mainHeader)context.COD=cod;else{context.currentTile.COD=cod;context.currentTile.COC=[]}break;case 65424:length=readUint16(data,position);tile={};tile.index=readUint16(data,position+2);tile.length=readUint32(data,position+4);tile.dataEnd=tile.length+position-2;tile.partIndex=data[position+8];tile.partsCount=data[position+9];context.mainHeader=false;if(tile.partIndex===0){tile.COD=context.COD; +tile.COC=context.COC.slice(0);tile.QCD=context.QCD;tile.QCC=context.QCC.slice(0)}context.currentTile=tile;break;case 65427:tile=context.currentTile;if(tile.partIndex===0){initializeTile(context,tile.index);buildPackets(context)}length=tile.dataEnd-position;parseTilePackets(context,data,position,length);break;case 65380:length=readUint16(data,position);break;case 65363:throw new Error("JPX Error: Codestream code 0xFF53 (COC) is "+"not implemented");default:throw new Error("JPX Error: Unknown codestream code: "+ +code.toString(16));}position+=length}}catch(e){if(doNotRecover||this.failOnCorruptedImage)throw e;else warn("Trying to recover from "+e.message)}this.tiles=transformComponents(context);this.width=context.SIZ.Xsiz-context.SIZ.XOsiz;this.height=context.SIZ.Ysiz-context.SIZ.YOsiz;this.componentsCount=context.SIZ.Csiz}};function calculateComponentDimensions(component,siz){component.x0=Math.ceil(siz.XOsiz/component.XRsiz);component.x1=Math.ceil(siz.Xsiz/component.XRsiz);component.y0=Math.ceil(siz.YOsiz/ +component.YRsiz);component.y1=Math.ceil(siz.Ysiz/component.YRsiz);component.width=component.x1-component.x0;component.height=component.y1-component.y0}function calculateTileGrids(context,components){var siz=context.SIZ;var tile,tiles=[];var numXtiles=Math.ceil((siz.Xsiz-siz.XTOsiz)/siz.XTsiz);var numYtiles=Math.ceil((siz.Ysiz-siz.YTOsiz)/siz.YTsiz);for(var q=0;q<numYtiles;q++)for(var p=0;p<numXtiles;p++){tile={};tile.tx0=Math.max(siz.XTOsiz+p*siz.XTsiz,siz.XOsiz);tile.ty0=Math.max(siz.YTOsiz+q*siz.YTsiz, +siz.YOsiz);tile.tx1=Math.min(siz.XTOsiz+(p+1)*siz.XTsiz,siz.Xsiz);tile.ty1=Math.min(siz.YTOsiz+(q+1)*siz.YTsiz,siz.Ysiz);tile.width=tile.tx1-tile.tx0;tile.height=tile.ty1-tile.ty0;tile.components=[];tiles.push(tile)}context.tiles=tiles;var componentsCount=siz.Csiz;for(var i=0,ii=componentsCount;i<ii;i++){var component=components[i];for(var j=0,jj=tiles.length;j<jj;j++){var tileComponent={};tile=tiles[j];tileComponent.tcx0=Math.ceil(tile.tx0/component.XRsiz);tileComponent.tcy0=Math.ceil(tile.ty0/component.YRsiz); +tileComponent.tcx1=Math.ceil(tile.tx1/component.XRsiz);tileComponent.tcy1=Math.ceil(tile.ty1/component.YRsiz);tileComponent.width=tileComponent.tcx1-tileComponent.tcx0;tileComponent.height=tileComponent.tcy1-tileComponent.tcy0;tile.components[i]=tileComponent}}}function getBlocksDimensions(context,component,r){var codOrCoc=component.codingStyleParameters;var result={};if(!codOrCoc.entropyCoderWithCustomPrecincts){result.PPx=15;result.PPy=15}else{result.PPx=codOrCoc.precinctsSizes[r].PPx;result.PPy= +codOrCoc.precinctsSizes[r].PPy}result.xcb_=r>0?Math.min(codOrCoc.xcb,result.PPx-1):Math.min(codOrCoc.xcb,result.PPx);result.ycb_=r>0?Math.min(codOrCoc.ycb,result.PPy-1):Math.min(codOrCoc.ycb,result.PPy);return result}function buildPrecincts(context,resolution,dimensions){var precinctWidth=1<<dimensions.PPx;var precinctHeight=1<<dimensions.PPy;var numprecinctswide=resolution.trx1>resolution.trx0?Math.ceil(resolution.trx1/precinctWidth)-Math.floor(resolution.trx0/precinctWidth):0;var numprecinctshigh= +resolution.try1>resolution.try0?Math.ceil(resolution.try1/precinctHeight)-Math.floor(resolution.try0/precinctHeight):0;var numprecincts=numprecinctswide*numprecinctshigh;var precinctXOffset=Math.floor(resolution.trx0/precinctWidth)*precinctWidth;var precinctYOffset=Math.floor(resolution.try0/precinctHeight)*precinctHeight;resolution.precinctParameters={precinctXOffset:precinctXOffset,precinctYOffset:precinctYOffset,precinctWidth:precinctWidth,precinctHeight:precinctHeight,numprecinctswide:numprecinctswide, +numprecinctshigh:numprecinctshigh,numprecincts:numprecincts}}function buildCodeblocks(context,subband,dimensions){var xcb_=dimensions.xcb_;var ycb_=dimensions.ycb_;var codeblockWidth=1<<xcb_;var codeblockHeight=1<<ycb_;var cbx0=subband.tbx0>>xcb_;var cby0=subband.tby0>>ycb_;var cbx1=subband.tbx1+codeblockWidth-1>>xcb_;var cby1=subband.tby1+codeblockHeight-1>>ycb_;var precinctParameters=subband.resolution.precinctParameters;var codeblocks=[];var precincts=[];var i,j,codeblock,precinctNumber;for(j= +cby0;j<cby1;j++)for(i=cbx0;i<cbx1;i++){codeblock={cbx:i,cby:j,tbx0:codeblockWidth*i,tby0:codeblockHeight*j,tbx1:codeblockWidth*(i+1),tby1:codeblockHeight*(j+1)};var pi=Math.floor((codeblock.tbx0-precinctParameters.precinctXOffset)/precinctParameters.precinctWidth);var pj=Math.floor((codeblock.tby0-precinctParameters.precinctYOffset)/precinctParameters.precinctHeight);precinctNumber=pj+pi*precinctParameters.numprecinctswide;codeblock.tbx0_=Math.max(subband.tbx0,codeblock.tbx0);codeblock.tby0_=Math.max(subband.tby0, +codeblock.tby0);codeblock.tbx1_=Math.min(subband.tbx1,codeblock.tbx1);codeblock.tby1_=Math.min(subband.tby1,codeblock.tby1);codeblock.precinctNumber=precinctNumber;codeblock.subbandType=subband.type;codeblock.Lblock=3;codeblocks.push(codeblock);var precinct=precincts[precinctNumber];if(precinct!==undefined){if(i<precinct.cbxMin)precinct.cbxMin=i;else if(i>precinct.cbxMax)precinct.cbxMax=i;if(j<precinct.cbyMin)precinct.cbxMin=j;else if(j>precinct.cbyMax)precinct.cbyMax=j}else precincts[precinctNumber]= +precinct={cbxMin:i,cbyMin:j,cbxMax:i,cbyMax:j};codeblock.precinct=precinct}subband.codeblockParameters={codeblockWidth:xcb_,codeblockHeight:ycb_,numcodeblockwide:cbx1-cbx0+1,numcodeblockhigh:cby1-cby0+1};subband.codeblocks=codeblocks;subband.precincts=precincts}function createPacket(resolution,precinctNumber,layerNumber){var precinctCodeblocks=[];var subbands=resolution.subbands;for(var i=0,ii=subbands.length;i<ii;i++){var subband=subbands[i];var codeblocks=subband.codeblocks;for(var j=0,jj=codeblocks.length;j< +jj;j++){var codeblock=codeblocks[j];if(codeblock.precinctNumber!==precinctNumber)continue;precinctCodeblocks.push(codeblock)}}return{layerNumber:layerNumber,codeblocks:precinctCodeblocks}}function LayerResolutionComponentPositionIterator(context){var siz=context.SIZ;var tileIndex=context.currentTile.index;var tile=context.tiles[tileIndex];var layersCount=tile.codingStyleDefaultParameters.layersCount;var componentsCount=siz.Csiz;var maxDecompositionLevelsCount=0;for(var q=0;q<componentsCount;q++)maxDecompositionLevelsCount= +Math.max(maxDecompositionLevelsCount,tile.components[q].codingStyleParameters.decompositionLevelsCount);var l=0,r=0,i=0,k=0;this.nextPacket=function JpxImage_nextPacket(){for(;l<layersCount;l++){for(;r<=maxDecompositionLevelsCount;r++){for(;i<componentsCount;i++){var component=tile.components[i];if(r>component.codingStyleParameters.decompositionLevelsCount)continue;var resolution=component.resolutions[r];var numprecincts=resolution.precinctParameters.numprecincts;for(;k<numprecincts;){var packet= +createPacket(resolution,k,l);k++;return packet}k=0}i=0}r=0}throw new Error("JPX Error: Out of packets");}}function ResolutionLayerComponentPositionIterator(context){var siz=context.SIZ;var tileIndex=context.currentTile.index;var tile=context.tiles[tileIndex];var layersCount=tile.codingStyleDefaultParameters.layersCount;var componentsCount=siz.Csiz;var maxDecompositionLevelsCount=0;for(var q=0;q<componentsCount;q++)maxDecompositionLevelsCount=Math.max(maxDecompositionLevelsCount,tile.components[q].codingStyleParameters.decompositionLevelsCount); +var r=0,l=0,i=0,k=0;this.nextPacket=function JpxImage_nextPacket(){for(;r<=maxDecompositionLevelsCount;r++){for(;l<layersCount;l++){for(;i<componentsCount;i++){var component=tile.components[i];if(r>component.codingStyleParameters.decompositionLevelsCount)continue;var resolution=component.resolutions[r];var numprecincts=resolution.precinctParameters.numprecincts;for(;k<numprecincts;){var packet=createPacket(resolution,k,l);k++;return packet}k=0}i=0}l=0}throw new Error("JPX Error: Out of packets"); +}}function buildPackets(context){var siz=context.SIZ;var tileIndex=context.currentTile.index;var tile=context.tiles[tileIndex];var componentsCount=siz.Csiz;for(var c=0;c<componentsCount;c++){var component=tile.components[c];var decompositionLevelsCount=component.codingStyleParameters.decompositionLevelsCount;var resolutions=[];var subbands=[];for(var r=0;r<=decompositionLevelsCount;r++){var blocksDimensions=getBlocksDimensions(context,component,r);var resolution={};var scale=1<<decompositionLevelsCount- +r;resolution.trx0=Math.ceil(component.tcx0/scale);resolution.try0=Math.ceil(component.tcy0/scale);resolution.trx1=Math.ceil(component.tcx1/scale);resolution.try1=Math.ceil(component.tcy1/scale);buildPrecincts(context,resolution,blocksDimensions);resolutions.push(resolution);var subband;if(r===0){subband={};subband.type="LL";subband.tbx0=Math.ceil(component.tcx0/scale);subband.tby0=Math.ceil(component.tcy0/scale);subband.tbx1=Math.ceil(component.tcx1/scale);subband.tby1=Math.ceil(component.tcy1/scale); +subband.resolution=resolution;buildCodeblocks(context,subband,blocksDimensions);subbands.push(subband);resolution.subbands=[subband]}else{var bscale=1<<decompositionLevelsCount-r+1;var resolutionSubbands=[];subband={};subband.type="HL";subband.tbx0=Math.ceil(component.tcx0/bscale-.5);subband.tby0=Math.ceil(component.tcy0/bscale);subband.tbx1=Math.ceil(component.tcx1/bscale-.5);subband.tby1=Math.ceil(component.tcy1/bscale);subband.resolution=resolution;buildCodeblocks(context,subband,blocksDimensions); +subbands.push(subband);resolutionSubbands.push(subband);subband={};subband.type="LH";subband.tbx0=Math.ceil(component.tcx0/bscale);subband.tby0=Math.ceil(component.tcy0/bscale-.5);subband.tbx1=Math.ceil(component.tcx1/bscale);subband.tby1=Math.ceil(component.tcy1/bscale-.5);subband.resolution=resolution;buildCodeblocks(context,subband,blocksDimensions);subbands.push(subband);resolutionSubbands.push(subband);subband={};subband.type="HH";subband.tbx0=Math.ceil(component.tcx0/bscale-.5);subband.tby0= +Math.ceil(component.tcy0/bscale-.5);subband.tbx1=Math.ceil(component.tcx1/bscale-.5);subband.tby1=Math.ceil(component.tcy1/bscale-.5);subband.resolution=resolution;buildCodeblocks(context,subband,blocksDimensions);subbands.push(subband);resolutionSubbands.push(subband);resolution.subbands=resolutionSubbands}}component.resolutions=resolutions;component.subbands=subbands}var progressionOrder=tile.codingStyleDefaultParameters.progressionOrder;switch(progressionOrder){case 0:tile.packetsIterator=new LayerResolutionComponentPositionIterator(context); +break;case 1:tile.packetsIterator=new ResolutionLayerComponentPositionIterator(context);break;default:throw new Error("JPX Error: Unsupported progression order "+progressionOrder);}}function parseTilePackets(context,data,offset,dataLength){var position=0;var buffer,bufferSize=0,skipNextBit=false;function readBits(count){while(bufferSize<count){var b=data[offset+position];position++;if(skipNextBit){buffer=buffer<<7|b;bufferSize+=7;skipNextBit=false}else{buffer=buffer<<8|b;bufferSize+=8}if(b===255)skipNextBit= +true}bufferSize-=count;return buffer>>>bufferSize&(1<<count)-1}function alignToByte(){bufferSize=0;if(skipNextBit){position++;skipNextBit=false}}function readCodingpasses(){if(readBits(1)===0)return 1;if(readBits(1)===0)return 2;var value=readBits(2);if(value<3)return value+3;value=readBits(5);if(value<31)return value+6;value=readBits(7);return value+37}var tileIndex=context.currentTile.index;var tile=context.tiles[tileIndex];var packetsIterator=tile.packetsIterator;while(position<dataLength){var packet= +packetsIterator.nextPacket();if(!readBits(1)){alignToByte();continue}var layerNumber=packet.layerNumber;var queue=[],codeblock;for(var i=0,ii=packet.codeblocks.length;i<ii;i++){codeblock=packet.codeblocks[i];var precinct=codeblock.precinct;var codeblockColumn=codeblock.cbx-precinct.cbxMin;var codeblockRow=codeblock.cby-precinct.cbyMin;var codeblockIncluded=false;var firstTimeInclusion=false;var valueReady;if("included"in codeblock)codeblockIncluded=!!readBits(1);else{precinct=codeblock.precinct;var inclusionTree, +zeroBitPlanesTree;if("inclusionTree"in precinct)inclusionTree=precinct.inclusionTree;else{var width=precinct.cbxMax-precinct.cbxMin+1;var height=precinct.cbyMax-precinct.cbyMin+1;inclusionTree=new InclusionTree(width,height,layerNumber);zeroBitPlanesTree=new TagTree(width,height);precinct.inclusionTree=inclusionTree;precinct.zeroBitPlanesTree=zeroBitPlanesTree}if(inclusionTree.reset(codeblockColumn,codeblockRow,layerNumber))while(true)if(readBits(1)){valueReady=!inclusionTree.nextLevel();if(valueReady){codeblock.included= +true;codeblockIncluded=firstTimeInclusion=true;break}}else{inclusionTree.incrementValue(layerNumber);break}}if(!codeblockIncluded)continue;if(firstTimeInclusion){zeroBitPlanesTree=precinct.zeroBitPlanesTree;zeroBitPlanesTree.reset(codeblockColumn,codeblockRow);while(true)if(readBits(1)){valueReady=!zeroBitPlanesTree.nextLevel();if(valueReady)break}else zeroBitPlanesTree.incrementValue();codeblock.zeroBitPlanes=zeroBitPlanesTree.value}var codingpasses=readCodingpasses();while(readBits(1))codeblock.Lblock++; +var codingpassesLog2=log2(codingpasses);var bits=(codingpasses<1<<codingpassesLog2?codingpassesLog2-1:codingpassesLog2)+codeblock.Lblock;var codedDataLength=readBits(bits);queue.push({codeblock:codeblock,codingpasses:codingpasses,dataLength:codedDataLength})}alignToByte();while(queue.length>0){var packetItem=queue.shift();codeblock=packetItem.codeblock;if(!("data"in codeblock))codeblock.data=[];codeblock.data.push({data:data,start:offset+position,end:offset+position+packetItem.dataLength,codingpasses:packetItem.codingpasses}); +position+=packetItem.dataLength}}return position}function copyCoefficients(coefficients,levelWidth,levelHeight,subband,delta,mb,reversible,segmentationSymbolUsed){var x0=subband.tbx0;var y0=subband.tby0;var width=subband.tbx1-subband.tbx0;var codeblocks=subband.codeblocks;var right=subband.type.charAt(0)==="H"?1:0;var bottom=subband.type.charAt(1)==="H"?levelWidth:0;for(var i=0,ii=codeblocks.length;i<ii;++i){var codeblock=codeblocks[i];var blockWidth=codeblock.tbx1_-codeblock.tbx0_;var blockHeight= +codeblock.tby1_-codeblock.tby0_;if(blockWidth===0||blockHeight===0)continue;if(!("data"in codeblock))continue;var bitModel,currentCodingpassType;bitModel=new BitModel(blockWidth,blockHeight,codeblock.subbandType,codeblock.zeroBitPlanes,mb);currentCodingpassType=2;var data=codeblock.data,totalLength=0,codingpasses=0;var j,jj,dataItem;for(j=0,jj=data.length;j<jj;j++){dataItem=data[j];totalLength+=dataItem.end-dataItem.start;codingpasses+=dataItem.codingpasses}var encodedData=new Uint8Array(totalLength); +var position=0;for(j=0,jj=data.length;j<jj;j++){dataItem=data[j];var chunk=dataItem.data.subarray(dataItem.start,dataItem.end);encodedData.set(chunk,position);position+=chunk.length}var decoder=new ArithmeticDecoder(encodedData,0,totalLength);bitModel.setDecoder(decoder);for(j=0;j<codingpasses;j++){switch(currentCodingpassType){case 0:bitModel.runSignificancePropogationPass();break;case 1:bitModel.runMagnitudeRefinementPass();break;case 2:bitModel.runCleanupPass();if(segmentationSymbolUsed)bitModel.checkSegmentationSymbol(); +break}currentCodingpassType=(currentCodingpassType+1)%3}var offset=codeblock.tbx0_-x0+(codeblock.tby0_-y0)*width;var sign=bitModel.coefficentsSign;var magnitude=bitModel.coefficentsMagnitude;var bitsDecoded=bitModel.bitsDecoded;var magnitudeCorrection=reversible?0:.5;var k,n,nb;position=0;var interleave=subband.type!=="LL";for(j=0;j<blockHeight;j++){var row=offset/width|0;var levelOffset=2*row*(levelWidth-width)+right+bottom;for(k=0;k<blockWidth;k++){n=magnitude[position];if(n!==0){n=(n+magnitudeCorrection)* +delta;if(sign[position]!==0)n=-n;nb=bitsDecoded[position];var pos=interleave?levelOffset+(offset<<1):offset;if(reversible&&nb>=mb)coefficients[pos]=n;else coefficients[pos]=n*(1<<mb-nb)}offset++;position++}offset+=width-blockWidth}}}function transformTile(context,tile,c){var component=tile.components[c];var codingStyleParameters=component.codingStyleParameters;var quantizationParameters=component.quantizationParameters;var decompositionLevelsCount=codingStyleParameters.decompositionLevelsCount;var spqcds= +quantizationParameters.SPqcds;var scalarExpounded=quantizationParameters.scalarExpounded;var guardBits=quantizationParameters.guardBits;var segmentationSymbolUsed=codingStyleParameters.segmentationSymbolUsed;var precision=context.components[c].precision;var reversible=codingStyleParameters.reversibleTransformation;var transform=reversible?new ReversibleTransform:new IrreversibleTransform;var subbandCoefficients=[];var b=0;for(var i=0;i<=decompositionLevelsCount;i++){var resolution=component.resolutions[i]; +var width=resolution.trx1-resolution.trx0;var height=resolution.try1-resolution.try0;var coefficients=new Float32Array(width*height);for(var j=0,jj=resolution.subbands.length;j<jj;j++){var mu,epsilon;if(!scalarExpounded){mu=spqcds[0].mu;epsilon=spqcds[0].epsilon+(i>0?1-i:0)}else{mu=spqcds[b].mu;epsilon=spqcds[b].epsilon;b++}var subband=resolution.subbands[j];var gainLog2=SubbandsGainLog2[subband.type];var delta=reversible?1:Math.pow(2,precision+gainLog2-epsilon)*(1+mu/2048);var mb=guardBits+epsilon- +1;copyCoefficients(coefficients,width,height,subband,delta,mb,reversible,segmentationSymbolUsed)}subbandCoefficients.push({width:width,height:height,items:coefficients})}var result=transform.calculate(subbandCoefficients,component.tcx0,component.tcy0);return{left:component.tcx0,top:component.tcy0,width:result.width,height:result.height,items:result.items}}function transformComponents(context){var siz=context.SIZ;var components=context.components;var componentsCount=siz.Csiz;var resultImages=[];for(var i= +0,ii=context.tiles.length;i<ii;i++){var tile=context.tiles[i];var transformedTiles=[];var c;for(c=0;c<componentsCount;c++)transformedTiles[c]=transformTile(context,tile,c);var tile0=transformedTiles[0];var out=new Uint8Array(tile0.items.length*componentsCount);var result={left:tile0.left,top:tile0.top,width:tile0.width,height:tile0.height,items:out};var shift,offset,max,min,maxK;var pos=0,j,jj,y0,y1,y2,r,g,b,k,val;if(tile.codingStyleDefaultParameters.multipleComponentTransform){var fourComponents= +componentsCount===4;var y0items=transformedTiles[0].items;var y1items=transformedTiles[1].items;var y2items=transformedTiles[2].items;var y3items=fourComponents?transformedTiles[3].items:null;shift=components[0].precision-8;offset=(128<<shift)+.5;max=255*(1<<shift);maxK=max*.5;min=-maxK;var component0=tile.components[0];var alpha01=componentsCount-3;jj=y0items.length;if(!component0.codingStyleParameters.reversibleTransformation)for(j=0;j<jj;j++,pos+=alpha01){y0=y0items[j]+offset;y1=y1items[j];y2= +y2items[j];r=y0+1.402*y2;g=y0-.34413*y1-.71414*y2;b=y0+1.772*y1;out[pos++]=r<=0?0:r>=max?255:r>>shift;out[pos++]=g<=0?0:g>=max?255:g>>shift;out[pos++]=b<=0?0:b>=max?255:b>>shift}else for(j=0;j<jj;j++,pos+=alpha01){y0=y0items[j]+offset;y1=y1items[j];y2=y2items[j];g=y0-(y2+y1>>2);r=g+y2;b=g+y1;out[pos++]=r<=0?0:r>=max?255:r>>shift;out[pos++]=g<=0?0:g>=max?255:g>>shift;out[pos++]=b<=0?0:b>=max?255:b>>shift}if(fourComponents)for(j=0,pos=3;j<jj;j++,pos+=4){k=y3items[j];out[pos]=k<=min?0:k>=maxK?255:k+ +offset>>shift}}else for(c=0;c<componentsCount;c++){var items=transformedTiles[c].items;shift=components[c].precision-8;offset=(128<<shift)+.5;max=127.5*(1<<shift);min=-max;for(pos=c,j=0,jj=items.length;j<jj;j++){val=items[j];out[pos]=val<=min?0:val>=max?255:val+offset>>shift;pos+=componentsCount}}resultImages.push(result)}return resultImages}function initializeTile(context,tileIndex){var siz=context.SIZ;var componentsCount=siz.Csiz;var tile=context.tiles[tileIndex];for(var c=0;c<componentsCount;c++){var component= +tile.components[c];var qcdOrQcc=c in context.currentTile.QCC?context.currentTile.QCC[c]:context.currentTile.QCD;component.quantizationParameters=qcdOrQcc;var codOrCoc=c in context.currentTile.COC?context.currentTile.COC[c]:context.currentTile.COD;component.codingStyleParameters=codOrCoc}tile.codingStyleDefaultParameters=context.currentTile.COD}var TagTree=function TagTreeClosure(){function TagTree(width,height){var levelsLength=log2(Math.max(width,height))+1;this.levels=[];for(var i=0;i<levelsLength;i++){var level= +{width:width,height:height,items:[]};this.levels.push(level);width=Math.ceil(width/2);height=Math.ceil(height/2)}}TagTree.prototype={reset:function TagTree_reset(i,j){var currentLevel=0,value=0,level;while(currentLevel<this.levels.length){level=this.levels[currentLevel];var index=i+j*level.width;if(index in level.items){value=level.items[index];break}level.index=index;i>>=1;j>>=1;currentLevel++}currentLevel--;level=this.levels[currentLevel];level.items[level.index]=value;this.currentLevel=currentLevel; +delete this.value},incrementValue:function TagTree_incrementValue(){var level=this.levels[this.currentLevel];level.items[level.index]++},nextLevel:function TagTree_nextLevel(){var currentLevel=this.currentLevel;var level=this.levels[currentLevel];var value=level.items[level.index];currentLevel--;if(currentLevel<0){this.value=value;return false}this.currentLevel=currentLevel;level=this.levels[currentLevel];level.items[level.index]=value;return true}};return TagTree}();var InclusionTree=function InclusionTreeClosure(){function InclusionTree(width, +height,defaultValue){var levelsLength=log2(Math.max(width,height))+1;this.levels=[];for(var i=0;i<levelsLength;i++){var items=new Uint8Array(width*height);for(var j=0,jj=items.length;j<jj;j++)items[j]=defaultValue;var level={width:width,height:height,items:items};this.levels.push(level);width=Math.ceil(width/2);height=Math.ceil(height/2)}}InclusionTree.prototype={reset:function InclusionTree_reset(i,j,stopValue){var currentLevel=0;while(currentLevel<this.levels.length){var level=this.levels[currentLevel]; +var index=i+j*level.width;level.index=index;var value=level.items[index];if(value===255)break;if(value>stopValue){this.currentLevel=currentLevel;this.propagateValues();return false}i>>=1;j>>=1;currentLevel++}this.currentLevel=currentLevel-1;return true},incrementValue:function InclusionTree_incrementValue(stopValue){var level=this.levels[this.currentLevel];level.items[level.index]=stopValue+1;this.propagateValues()},propagateValues:function InclusionTree_propagateValues(){var levelIndex=this.currentLevel; +var level=this.levels[levelIndex];var currentValue=level.items[level.index];while(--levelIndex>=0){level=this.levels[levelIndex];level.items[level.index]=currentValue}},nextLevel:function InclusionTree_nextLevel(){var currentLevel=this.currentLevel;var level=this.levels[currentLevel];var value=level.items[level.index];level.items[level.index]=255;currentLevel--;if(currentLevel<0)return false;this.currentLevel=currentLevel;level=this.levels[currentLevel];level.items[level.index]=value;return true}}; +return InclusionTree}();var BitModel=function BitModelClosure(){var UNIFORM_CONTEXT=17;var RUNLENGTH_CONTEXT=18;var LLAndLHContextsLabel=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]);var HLContextLabel=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]);var HHContextLabel= +new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);function BitModel(width,height,subband,zeroBitPlanes,mb){this.width=width;this.height=height;this.contextLabelTable=subband==="HH"?HHContextLabel:subband==="HL"?HLContextLabel:LLAndLHContextsLabel;var coefficientCount=width*height;this.neighborsSignificance=new Uint8Array(coefficientCount);this.coefficentsSign=new Uint8Array(coefficientCount); +this.coefficentsMagnitude=mb>14?new Uint32Array(coefficientCount):mb>6?new Uint16Array(coefficientCount):new Uint8Array(coefficientCount);this.processingFlags=new Uint8Array(coefficientCount);var bitsDecoded=new Uint8Array(coefficientCount);if(zeroBitPlanes!==0)for(var i=0;i<coefficientCount;i++)bitsDecoded[i]=zeroBitPlanes;this.bitsDecoded=bitsDecoded;this.reset()}BitModel.prototype={setDecoder:function BitModel_setDecoder(decoder){this.decoder=decoder},reset:function BitModel_reset(){this.contexts= +new Int8Array(19);this.contexts[0]=4<<1|0;this.contexts[UNIFORM_CONTEXT]=46<<1|0;this.contexts[RUNLENGTH_CONTEXT]=3<<1|0},setNeighborsSignificance:function BitModel_setNeighborsSignificance(row,column,index){var neighborsSignificance=this.neighborsSignificance;var width=this.width,height=this.height;var left=column>0;var right=column+1<width;var i;if(row>0){i=index-width;if(left)neighborsSignificance[i-1]+=16;if(right)neighborsSignificance[i+1]+=16;neighborsSignificance[i]+=4}if(row+1<height){i=index+ +width;if(left)neighborsSignificance[i-1]+=16;if(right)neighborsSignificance[i+1]+=16;neighborsSignificance[i]+=4}if(left)neighborsSignificance[index-1]+=1;if(right)neighborsSignificance[index+1]+=1;neighborsSignificance[index]|=128},runSignificancePropogationPass:function BitModel_runSignificancePropogationPass(){var decoder=this.decoder;var width=this.width,height=this.height;var coefficentsMagnitude=this.coefficentsMagnitude;var coefficentsSign=this.coefficentsSign;var neighborsSignificance=this.neighborsSignificance; +var processingFlags=this.processingFlags;var contexts=this.contexts;var labels=this.contextLabelTable;var bitsDecoded=this.bitsDecoded;var processedInverseMask=~1;var processedMask=1;var firstMagnitudeBitMask=2;for(var i0=0;i0<height;i0+=4)for(var j=0;j<width;j++){var index=i0*width+j;for(var i1=0;i1<4;i1++,index+=width){var i=i0+i1;if(i>=height)break;processingFlags[index]&=processedInverseMask;if(coefficentsMagnitude[index]||!neighborsSignificance[index])continue;var contextLabel=labels[neighborsSignificance[index]]; +var decision=decoder.readBit(contexts,contextLabel);if(decision){var sign=this.decodeSignBit(i,j,index);coefficentsSign[index]=sign;coefficentsMagnitude[index]=1;this.setNeighborsSignificance(i,j,index);processingFlags[index]|=firstMagnitudeBitMask}bitsDecoded[index]++;processingFlags[index]|=processedMask}}},decodeSignBit:function BitModel_decodeSignBit(row,column,index){var width=this.width,height=this.height;var coefficentsMagnitude=this.coefficentsMagnitude;var coefficentsSign=this.coefficentsSign; +var contribution,sign0,sign1,significance1;var contextLabel,decoded;significance1=column>0&&coefficentsMagnitude[index-1]!==0;if(column+1<width&&coefficentsMagnitude[index+1]!==0){sign1=coefficentsSign[index+1];if(significance1){sign0=coefficentsSign[index-1];contribution=1-sign1-sign0}else contribution=1-sign1-sign1}else if(significance1){sign0=coefficentsSign[index-1];contribution=1-sign0-sign0}else contribution=0;var horizontalContribution=3*contribution;significance1=row>0&&coefficentsMagnitude[index- +width]!==0;if(row+1<height&&coefficentsMagnitude[index+width]!==0){sign1=coefficentsSign[index+width];if(significance1){sign0=coefficentsSign[index-width];contribution=1-sign1-sign0+horizontalContribution}else contribution=1-sign1-sign1+horizontalContribution}else if(significance1){sign0=coefficentsSign[index-width];contribution=1-sign0-sign0+horizontalContribution}else contribution=horizontalContribution;if(contribution>=0){contextLabel=9+contribution;decoded=this.decoder.readBit(this.contexts,contextLabel)}else{contextLabel= +9-contribution;decoded=this.decoder.readBit(this.contexts,contextLabel)^1}return decoded},runMagnitudeRefinementPass:function BitModel_runMagnitudeRefinementPass(){var decoder=this.decoder;var width=this.width,height=this.height;var coefficentsMagnitude=this.coefficentsMagnitude;var neighborsSignificance=this.neighborsSignificance;var contexts=this.contexts;var bitsDecoded=this.bitsDecoded;var processingFlags=this.processingFlags;var processedMask=1;var firstMagnitudeBitMask=2;var length=width*height; +var width4=width*4;for(var index0=0,indexNext;index0<length;index0=indexNext){indexNext=Math.min(length,index0+width4);for(var j=0;j<width;j++)for(var index=index0+j;index<indexNext;index+=width){if(!coefficentsMagnitude[index]||(processingFlags[index]&processedMask)!==0)continue;var contextLabel=16;if((processingFlags[index]&firstMagnitudeBitMask)!==0){processingFlags[index]^=firstMagnitudeBitMask;var significance=neighborsSignificance[index]&127;contextLabel=significance===0?15:14}var bit=decoder.readBit(contexts, +contextLabel);coefficentsMagnitude[index]=coefficentsMagnitude[index]<<1|bit;bitsDecoded[index]++;processingFlags[index]|=processedMask}}},runCleanupPass:function BitModel_runCleanupPass(){var decoder=this.decoder;var width=this.width,height=this.height;var neighborsSignificance=this.neighborsSignificance;var coefficentsMagnitude=this.coefficentsMagnitude;var coefficentsSign=this.coefficentsSign;var contexts=this.contexts;var labels=this.contextLabelTable;var bitsDecoded=this.bitsDecoded;var processingFlags= +this.processingFlags;var processedMask=1;var firstMagnitudeBitMask=2;var oneRowDown=width;var twoRowsDown=width*2;var threeRowsDown=width*3;var iNext;for(var i0=0;i0<height;i0=iNext){iNext=Math.min(i0+4,height);var indexBase=i0*width;var checkAllEmpty=i0+3<height;for(var j=0;j<width;j++){var index0=indexBase+j;var allEmpty=checkAllEmpty&&processingFlags[index0]===0&&processingFlags[index0+oneRowDown]===0&&processingFlags[index0+twoRowsDown]===0&&processingFlags[index0+threeRowsDown]===0&&neighborsSignificance[index0]=== +0&&neighborsSignificance[index0+oneRowDown]===0&&neighborsSignificance[index0+twoRowsDown]===0&&neighborsSignificance[index0+threeRowsDown]===0;var i1=0,index=index0;var i=i0,sign;if(allEmpty){var hasSignificantCoefficent=decoder.readBit(contexts,RUNLENGTH_CONTEXT);if(!hasSignificantCoefficent){bitsDecoded[index0]++;bitsDecoded[index0+oneRowDown]++;bitsDecoded[index0+twoRowsDown]++;bitsDecoded[index0+threeRowsDown]++;continue}i1=decoder.readBit(contexts,UNIFORM_CONTEXT)<<1|decoder.readBit(contexts, +UNIFORM_CONTEXT);if(i1!==0){i=i0+i1;index+=i1*width}sign=this.decodeSignBit(i,j,index);coefficentsSign[index]=sign;coefficentsMagnitude[index]=1;this.setNeighborsSignificance(i,j,index);processingFlags[index]|=firstMagnitudeBitMask;index=index0;for(var i2=i0;i2<=i;i2++,index+=width)bitsDecoded[index]++;i1++}for(i=i0+i1;i<iNext;i++,index+=width){if(coefficentsMagnitude[index]||(processingFlags[index]&processedMask)!==0)continue;var contextLabel=labels[neighborsSignificance[index]];var decision=decoder.readBit(contexts, +contextLabel);if(decision===1){sign=this.decodeSignBit(i,j,index);coefficentsSign[index]=sign;coefficentsMagnitude[index]=1;this.setNeighborsSignificance(i,j,index);processingFlags[index]|=firstMagnitudeBitMask}bitsDecoded[index]++}}}},checkSegmentationSymbol:function BitModel_checkSegmentationSymbol(){var decoder=this.decoder;var contexts=this.contexts;var symbol=decoder.readBit(contexts,UNIFORM_CONTEXT)<<3|decoder.readBit(contexts,UNIFORM_CONTEXT)<<2|decoder.readBit(contexts,UNIFORM_CONTEXT)<<1| +decoder.readBit(contexts,UNIFORM_CONTEXT);if(symbol!==10)throw new Error("JPX Error: Invalid segmentation symbol");}};return BitModel}();var Transform=function TransformClosure(){function Transform(){}Transform.prototype.calculate=function transformCalculate(subbands,u0,v0){var ll=subbands[0];for(var i=1,ii=subbands.length;i<ii;i++)ll=this.iterate(ll,subbands[i],u0,v0);return ll};Transform.prototype.extend=function extend(buffer,offset,size){var i1=offset-1,j1=offset+1;var i2=offset+size-2,j2=offset+ +size;buffer[i1--]=buffer[j1++];buffer[j2++]=buffer[i2--];buffer[i1--]=buffer[j1++];buffer[j2++]=buffer[i2--];buffer[i1--]=buffer[j1++];buffer[j2++]=buffer[i2--];buffer[i1]=buffer[j1];buffer[j2]=buffer[i2]};Transform.prototype.iterate=function Transform_iterate(ll,hl_lh_hh,u0,v0){var llWidth=ll.width,llHeight=ll.height,llItems=ll.items;var width=hl_lh_hh.width;var height=hl_lh_hh.height;var items=hl_lh_hh.items;var i,j,k,l,u,v;for(k=0,i=0;i<llHeight;i++){l=i*2*width;for(j=0;j<llWidth;j++,k++,l+=2)items[l]= +llItems[k]}llItems=ll.items=null;var bufferPadding=4;var rowBuffer=new Float32Array(width+2*bufferPadding);if(width===1){if((u0&1)!==0)for(v=0,k=0;v<height;v++,k+=width)items[k]*=.5}else for(v=0,k=0;v<height;v++,k+=width){rowBuffer.set(items.subarray(k,k+width),bufferPadding);this.extend(rowBuffer,bufferPadding,width);this.filter(rowBuffer,bufferPadding,width);items.set(rowBuffer.subarray(bufferPadding,bufferPadding+width),k)}var numBuffers=16;var colBuffers=[];for(i=0;i<numBuffers;i++)colBuffers.push(new Float32Array(height+ +2*bufferPadding));var b,currentBuffer=0;ll=bufferPadding+height;if(height===1){if((v0&1)!==0)for(u=0;u<width;u++)items[u]*=.5}else for(u=0;u<width;u++){if(currentBuffer===0){numBuffers=Math.min(width-u,numBuffers);for(k=u,l=bufferPadding;l<ll;k+=width,l++)for(b=0;b<numBuffers;b++)colBuffers[b][l]=items[k+b];currentBuffer=numBuffers}currentBuffer--;var buffer=colBuffers[currentBuffer];this.extend(buffer,bufferPadding,height);this.filter(buffer,bufferPadding,height);if(currentBuffer===0){k=u-numBuffers+ +1;for(l=bufferPadding;l<ll;k+=width,l++)for(b=0;b<numBuffers;b++)items[k+b]=colBuffers[b][l]}}return{width:width,height:height,items:items}};return Transform}();var IrreversibleTransform=function IrreversibleTransformClosure(){function IrreversibleTransform(){Transform.call(this)}IrreversibleTransform.prototype=Object.create(Transform.prototype);IrreversibleTransform.prototype.filter=function irreversibleTransformFilter(x,offset,length){var len=length>>1;offset=offset|0;var j,n,current,next;var alpha= +-1.586134342059924;var beta=-.052980118572961;var gamma=.882911075530934;var delta=.443506852043971;var K=1.230174104914001;var K_=1/K;j=offset-3;for(n=len+4;n--;j+=2)x[j]*=K_;j=offset-2;current=delta*x[j-1];for(n=len+3;n--;j+=2){next=delta*x[j+1];x[j]=K*x[j]-current-next;if(n--){j+=2;current=delta*x[j+1];x[j]=K*x[j]-current-next}else break}j=offset-1;current=gamma*x[j-1];for(n=len+2;n--;j+=2){next=gamma*x[j+1];x[j]-=current+next;if(n--){j+=2;current=gamma*x[j+1];x[j]-=current+next}else break}j=offset; +current=beta*x[j-1];for(n=len+1;n--;j+=2){next=beta*x[j+1];x[j]-=current+next;if(n--){j+=2;current=beta*x[j+1];x[j]-=current+next}else break}if(len!==0){j=offset+1;current=alpha*x[j-1];for(n=len;n--;j+=2){next=alpha*x[j+1];x[j]-=current+next;if(n--){j+=2;current=alpha*x[j+1];x[j]-=current+next}else break}}};return IrreversibleTransform}();var ReversibleTransform=function ReversibleTransformClosure(){function ReversibleTransform(){Transform.call(this)}ReversibleTransform.prototype=Object.create(Transform.prototype); +ReversibleTransform.prototype.filter=function reversibleTransformFilter(x,offset,length){var len=length>>1;offset=offset|0;var j,n;for(j=offset,n=len+1;n--;j+=2)x[j]-=x[j-1]+x[j+1]+2>>2;for(j=offset+1,n=len;n--;j+=2)x[j]+=x[j-1]+x[j+1]>>1};return ReversibleTransform}();return JpxImage}();var Jbig2Image=function Jbig2ImageClosure(){function ContextCache(){}ContextCache.prototype={getContexts:function(id){if(id in this)return this[id];return this[id]=new Int8Array(1<<16)}};function DecodingContext(data, +start,end){this.data=data;this.start=start;this.end=end}DecodingContext.prototype={get decoder(){var decoder=new ArithmeticDecoder(this.data,this.start,this.end);return shadow(this,"decoder",decoder)},get contextCache(){var cache=new ContextCache;return shadow(this,"contextCache",cache)}};function decodeInteger(contextCache,procedure,decoder){var contexts=contextCache.getContexts(procedure);var prev=1;function readBits(length){var v=0;for(var i=0;i<length;i++){var bit=decoder.readBit(contexts,prev); +prev=prev<256?prev<<1|bit:(prev<<1|bit)&511|256;v=v<<1|bit}return v>>>0}var sign=readBits(1);var value=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return sign===0?value:value>0?-value:null}function decodeIAID(contextCache,decoder,codeLength){var contexts=contextCache.getContexts("IAID");var prev=1;for(var i=0;i<codeLength;i++){var bit=decoder.readBit(contexts,prev);prev=prev<<1|bit}if(codeLength< +31)return prev&(1<<codeLength)-1;return prev&2147483647}var SegmentTypes=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,"patternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion", +"IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,null,null,null,null,null,null,null,"Extension"];var CodingTemplates=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0, +y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}]];var RefinementTemplates=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0, +y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}];var ReusedContexts=[39717,1941,229,405];var RefinementReusedContexts=[32,8];function decodeBitmapTemplate0(width,height,decodingContext){var decoder=decodingContext.decoder;var contexts=decodingContext.contextCache.getContexts("GB");var contextLabel,i,j,pixel,row,row1,row2,bitmap=[];var OLD_PIXEL_MASK=31735;for(i=0;i<height;i++){row=bitmap[i]=new Uint8Array(width);row1=i<1?row:bitmap[i-1];row2=i<2?row:bitmap[i-2];contextLabel=row2[0]<<13| +row2[1]<<12|row2[2]<<11|row1[0]<<7|row1[1]<<6|row1[2]<<5|row1[3]<<4;for(j=0;j<width;j++){row[j]=pixel=decoder.readBit(contexts,contextLabel);contextLabel=(contextLabel&OLD_PIXEL_MASK)<<1|row2[j+3]<<11|row1[j+4]<<4|pixel}}return bitmap}function decodeBitmap(mmr,width,height,templateIndex,prediction,skip,at,decodingContext){if(mmr)error("JBIG2 error: MMR encoding is not supported");if(templateIndex===0&&!skip&&!prediction&&at.length===4&&at[0].x===3&&at[0].y===-1&&at[1].x===-3&&at[1].y===-1&&at[2].x=== +2&&at[2].y===-2&&at[3].x===-2&&at[3].y===-2)return decodeBitmapTemplate0(width,height,decodingContext);var useskip=!!skip;var template=CodingTemplates[templateIndex].concat(at);template.sort(function(a,b){return a.y-b.y||a.x-b.x});var templateLength=template.length;var templateX=new Int8Array(templateLength);var templateY=new Int8Array(templateLength);var changingTemplateEntries=[];var reuseMask=0,minX=0,maxX=0,minY=0;var c,k;for(k=0;k<templateLength;k++){templateX[k]=template[k].x;templateY[k]=template[k].y; +minX=Math.min(minX,template[k].x);maxX=Math.max(maxX,template[k].x);minY=Math.min(minY,template[k].y);if(k<templateLength-1&&template[k].y===template[k+1].y&&template[k].x===template[k+1].x-1)reuseMask|=1<<templateLength-1-k;else changingTemplateEntries.push(k)}var changingEntriesLength=changingTemplateEntries.length;var changingTemplateX=new Int8Array(changingEntriesLength);var changingTemplateY=new Int8Array(changingEntriesLength);var changingTemplateBit=new Uint16Array(changingEntriesLength);for(c= +0;c<changingEntriesLength;c++){k=changingTemplateEntries[c];changingTemplateX[c]=template[k].x;changingTemplateY[c]=template[k].y;changingTemplateBit[c]=1<<templateLength-1-k}var sbb_left=-minX;var sbb_top=-minY;var sbb_right=width-maxX;var pseudoPixelContext=ReusedContexts[templateIndex];var row=new Uint8Array(width);var bitmap=[];var decoder=decodingContext.decoder;var contexts=decodingContext.contextCache.getContexts("GB");var ltp=0,j,i0,j0,contextLabel=0,bit,shift;for(var i=0;i<height;i++){if(prediction){var sltp= +decoder.readBit(contexts,pseudoPixelContext);ltp^=sltp;if(ltp){bitmap.push(row);continue}}row=new Uint8Array(row);bitmap.push(row);for(j=0;j<width;j++){if(useskip&&skip[i][j]){row[j]=0;continue}if(j>=sbb_left&&j<sbb_right&&i>=sbb_top){contextLabel=contextLabel<<1&reuseMask;for(k=0;k<changingEntriesLength;k++){i0=i+changingTemplateY[k];j0=j+changingTemplateX[k];bit=bitmap[i0][j0];if(bit){bit=changingTemplateBit[k];contextLabel|=bit}}}else{contextLabel=0;shift=templateLength-1;for(k=0;k<templateLength;k++, +shift--){j0=j+templateX[k];if(j0>=0&&j0<width){i0=i+templateY[k];if(i0>=0){bit=bitmap[i0][j0];if(bit)contextLabel|=bit<<shift}}}}var pixel=decoder.readBit(contexts,contextLabel);row[j]=pixel}}return bitmap}function decodeRefinement(width,height,templateIndex,referenceBitmap,offsetX,offsetY,prediction,at,decodingContext){var codingTemplate=RefinementTemplates[templateIndex].coding;if(templateIndex===0)codingTemplate=codingTemplate.concat([at[0]]);var codingTemplateLength=codingTemplate.length;var codingTemplateX= +new Int32Array(codingTemplateLength);var codingTemplateY=new Int32Array(codingTemplateLength);var k;for(k=0;k<codingTemplateLength;k++){codingTemplateX[k]=codingTemplate[k].x;codingTemplateY[k]=codingTemplate[k].y}var referenceTemplate=RefinementTemplates[templateIndex].reference;if(templateIndex===0)referenceTemplate=referenceTemplate.concat([at[1]]);var referenceTemplateLength=referenceTemplate.length;var referenceTemplateX=new Int32Array(referenceTemplateLength);var referenceTemplateY=new Int32Array(referenceTemplateLength); +for(k=0;k<referenceTemplateLength;k++){referenceTemplateX[k]=referenceTemplate[k].x;referenceTemplateY[k]=referenceTemplate[k].y}var referenceWidth=referenceBitmap[0].length;var referenceHeight=referenceBitmap.length;var pseudoPixelContext=RefinementReusedContexts[templateIndex];var bitmap=[];var decoder=decodingContext.decoder;var contexts=decodingContext.contextCache.getContexts("GR");var ltp=0;for(var i=0;i<height;i++){if(prediction){var sltp=decoder.readBit(contexts,pseudoPixelContext);ltp^=sltp; +if(ltp)error("JBIG2 error: prediction is not supported")}var row=new Uint8Array(width);bitmap.push(row);for(var j=0;j<width;j++){var i0,j0;var contextLabel=0;for(k=0;k<codingTemplateLength;k++){i0=i+codingTemplateY[k];j0=j+codingTemplateX[k];if(i0<0||j0<0||j0>=width)contextLabel<<=1;else contextLabel=contextLabel<<1|bitmap[i0][j0]}for(k=0;k<referenceTemplateLength;k++){i0=i+referenceTemplateY[k]+offsetY;j0=j+referenceTemplateX[k]+offsetX;if(i0<0||i0>=referenceHeight||j0<0||j0>=referenceWidth)contextLabel<<= +1;else contextLabel=contextLabel<<1|referenceBitmap[i0][j0]}var pixel=decoder.readBit(contexts,contextLabel);row[j]=pixel}}return bitmap}function decodeSymbolDictionary(huffman,refinement,symbols,numberOfNewSymbols,numberOfExportedSymbols,huffmanTables,templateIndex,at,refinementTemplateIndex,refinementAt,decodingContext){if(huffman)error("JBIG2 error: huffman is not supported");var newSymbols=[];var currentHeight=0;var symbolCodeLength=log2(symbols.length+numberOfNewSymbols);var decoder=decodingContext.decoder; +var contextCache=decodingContext.contextCache;while(newSymbols.length<numberOfNewSymbols){var deltaHeight=decodeInteger(contextCache,"IADH",decoder);currentHeight+=deltaHeight;var currentWidth=0;var totalWidth=0;while(true){var deltaWidth=decodeInteger(contextCache,"IADW",decoder);if(deltaWidth===null)break;currentWidth+=deltaWidth;totalWidth+=currentWidth;var bitmap;if(refinement){var numberOfInstances=decodeInteger(contextCache,"IAAI",decoder);if(numberOfInstances>1)bitmap=decodeTextRegion(huffman, +refinement,currentWidth,currentHeight,0,numberOfInstances,1,symbols.concat(newSymbols),symbolCodeLength,0,0,1,0,huffmanTables,refinementTemplateIndex,refinementAt,decodingContext);else{var symbolId=decodeIAID(contextCache,decoder,symbolCodeLength);var rdx=decodeInteger(contextCache,"IARDX",decoder);var rdy=decodeInteger(contextCache,"IARDY",decoder);var symbol=symbolId<symbols.length?symbols[symbolId]:newSymbols[symbolId-symbols.length];bitmap=decodeRefinement(currentWidth,currentHeight,refinementTemplateIndex, +symbol,rdx,rdy,false,refinementAt,decodingContext)}}else bitmap=decodeBitmap(false,currentWidth,currentHeight,templateIndex,false,null,at,decodingContext);newSymbols.push(bitmap)}}var exportedSymbols=[];var flags=[],currentFlag=false;var totalSymbolsLength=symbols.length+numberOfNewSymbols;while(flags.length<totalSymbolsLength){var runLength=decodeInteger(contextCache,"IAEX",decoder);while(runLength--)flags.push(currentFlag);currentFlag=!currentFlag}for(var i=0,ii=symbols.length;i<ii;i++)if(flags[i])exportedSymbols.push(symbols[i]); +for(var j=0;j<numberOfNewSymbols;i++,j++)if(flags[i])exportedSymbols.push(newSymbols[j]);return exportedSymbols}function decodeTextRegion(huffman,refinement,width,height,defaultPixelValue,numberOfSymbolInstances,stripSize,inputSymbols,symbolCodeLength,transposed,dsOffset,referenceCorner,combinationOperator,huffmanTables,refinementTemplateIndex,refinementAt,decodingContext){if(huffman)error("JBIG2 error: huffman is not supported");var bitmap=[];var i,row;for(i=0;i<height;i++){row=new Uint8Array(width); +if(defaultPixelValue)for(var j=0;j<width;j++)row[j]=defaultPixelValue;bitmap.push(row)}var decoder=decodingContext.decoder;var contextCache=decodingContext.contextCache;var stripT=-decodeInteger(contextCache,"IADT",decoder);var firstS=0;i=0;while(i<numberOfSymbolInstances){var deltaT=decodeInteger(contextCache,"IADT",decoder);stripT+=deltaT;var deltaFirstS=decodeInteger(contextCache,"IAFS",decoder);firstS+=deltaFirstS;var currentS=firstS;do{var currentT=stripSize===1?0:decodeInteger(contextCache, +"IAIT",decoder);var t=stripSize*stripT+currentT;var symbolId=decodeIAID(contextCache,decoder,symbolCodeLength);var applyRefinement=refinement&&decodeInteger(contextCache,"IARI",decoder);var symbolBitmap=inputSymbols[symbolId];var symbolWidth=symbolBitmap[0].length;var symbolHeight=symbolBitmap.length;if(applyRefinement){var rdw=decodeInteger(contextCache,"IARDW",decoder);var rdh=decodeInteger(contextCache,"IARDH",decoder);var rdx=decodeInteger(contextCache,"IARDX",decoder);var rdy=decodeInteger(contextCache, +"IARDY",decoder);symbolWidth+=rdw;symbolHeight+=rdh;symbolBitmap=decodeRefinement(symbolWidth,symbolHeight,refinementTemplateIndex,symbolBitmap,(rdw>>1)+rdx,(rdh>>1)+rdy,false,refinementAt,decodingContext)}var offsetT=t-(referenceCorner&1?0:symbolHeight);var offsetS=currentS-(referenceCorner&2?symbolWidth:0);var s2,t2,symbolRow;if(transposed){for(s2=0;s2<symbolHeight;s2++){row=bitmap[offsetS+s2];if(!row)continue;symbolRow=symbolBitmap[s2];var maxWidth=Math.min(width-offsetT,symbolWidth);switch(combinationOperator){case 0:for(t2= +0;t2<maxWidth;t2++)row[offsetT+t2]|=symbolRow[t2];break;case 2:for(t2=0;t2<maxWidth;t2++)row[offsetT+t2]^=symbolRow[t2];break;default:error("JBIG2 error: operator "+combinationOperator+" is not supported")}}currentS+=symbolHeight-1}else{for(t2=0;t2<symbolHeight;t2++){row=bitmap[offsetT+t2];if(!row)continue;symbolRow=symbolBitmap[t2];switch(combinationOperator){case 0:for(s2=0;s2<symbolWidth;s2++)row[offsetS+s2]|=symbolRow[s2];break;case 2:for(s2=0;s2<symbolWidth;s2++)row[offsetS+s2]^=symbolRow[s2]; +break;default:error("JBIG2 error: operator "+combinationOperator+" is not supported")}}currentS+=symbolWidth-1}i++;var deltaS=decodeInteger(contextCache,"IADS",decoder);if(deltaS===null)break;currentS+=deltaS+dsOffset}while(true)}return bitmap}function readSegmentHeader(data,start){var segmentHeader={};segmentHeader.number=readUint32(data,start);var flags=data[start+4];var segmentType=flags&63;if(!SegmentTypes[segmentType])error("JBIG2 error: invalid segment type: "+segmentType);segmentHeader.type= +segmentType;segmentHeader.typeName=SegmentTypes[segmentType];segmentHeader.deferredNonRetain=!!(flags&128);var pageAssociationFieldSize=!!(flags&64);var referredFlags=data[start+5];var referredToCount=referredFlags>>5&7;var retainBits=[referredFlags&31];var position=start+6;if(referredFlags===7){referredToCount=readUint32(data,position-1)&536870911;position+=3;var bytes=referredToCount+7>>3;retainBits[0]=data[position++];while(--bytes>0)retainBits.push(data[position++])}else if(referredFlags===5|| +referredFlags===6)error("JBIG2 error: invalid referred-to flags");segmentHeader.retainBits=retainBits;var referredToSegmentNumberSize=segmentHeader.number<=256?1:segmentHeader.number<=65536?2:4;var referredTo=[];var i,ii;for(i=0;i<referredToCount;i++){var number=referredToSegmentNumberSize===1?data[position]:referredToSegmentNumberSize===2?readUint16(data,position):readUint32(data,position);referredTo.push(number);position+=referredToSegmentNumberSize}segmentHeader.referredTo=referredTo;if(!pageAssociationFieldSize)segmentHeader.pageAssociation= +data[position++];else{segmentHeader.pageAssociation=readUint32(data,position);position+=4}segmentHeader.length=readUint32(data,position);position+=4;if(segmentHeader.length===4294967295)if(segmentType===38){var genericRegionInfo=readRegionSegmentInformation(data,position);var genericRegionSegmentFlags=data[position+RegionSegmentInformationFieldLength];var genericRegionMmr=!!(genericRegionSegmentFlags&1);var searchPatternLength=6;var searchPattern=new Uint8Array(searchPatternLength);if(!genericRegionMmr){searchPattern[0]= +255;searchPattern[1]=172}searchPattern[2]=genericRegionInfo.height>>>24&255;searchPattern[3]=genericRegionInfo.height>>16&255;searchPattern[4]=genericRegionInfo.height>>8&255;searchPattern[5]=genericRegionInfo.height&255;for(i=position,ii=data.length;i<ii;i++){var j=0;while(j<searchPatternLength&&searchPattern[j]===data[i+j])j++;if(j===searchPatternLength){segmentHeader.length=i+searchPatternLength;break}}if(segmentHeader.length===4294967295)error("JBIG2 error: segment end was not found")}else error("JBIG2 error: invalid unknown segment length"); +segmentHeader.headerEnd=position;return segmentHeader}function readSegments(header,data,start,end){var segments=[];var position=start;while(position<end){var segmentHeader=readSegmentHeader(data,position);position=segmentHeader.headerEnd;var segment={header:segmentHeader,data:data};if(!header.randomAccess){segment.start=position;position+=segmentHeader.length;segment.end=position}segments.push(segment);if(segmentHeader.type===51)break}if(header.randomAccess)for(var i=0,ii=segments.length;i<ii;i++){segments[i].start= +position;position+=segments[i].header.length;segments[i].end=position}return segments}function readRegionSegmentInformation(data,start){return{width:readUint32(data,start),height:readUint32(data,start+4),x:readUint32(data,start+8),y:readUint32(data,start+12),combinationOperator:data[start+16]&7}}var RegionSegmentInformationFieldLength=17;function processSegment(segment,visitor){var header=segment.header;var data=segment.data,position=segment.start,end=segment.end;var args,at,i,atLength;switch(header.type){case 0:var dictionary= +{};var dictionaryFlags=readUint16(data,position);dictionary.huffman=!!(dictionaryFlags&1);dictionary.refinement=!!(dictionaryFlags&2);dictionary.huffmanDHSelector=dictionaryFlags>>2&3;dictionary.huffmanDWSelector=dictionaryFlags>>4&3;dictionary.bitmapSizeSelector=dictionaryFlags>>6&1;dictionary.aggregationInstancesSelector=dictionaryFlags>>7&1;dictionary.bitmapCodingContextUsed=!!(dictionaryFlags&256);dictionary.bitmapCodingContextRetained=!!(dictionaryFlags&512);dictionary.template=dictionaryFlags>> +10&3;dictionary.refinementTemplate=dictionaryFlags>>12&1;position+=2;if(!dictionary.huffman){atLength=dictionary.template===0?4:1;at=[];for(i=0;i<atLength;i++){at.push({x:readInt8(data,position),y:readInt8(data,position+1)});position+=2}dictionary.at=at}if(dictionary.refinement&&!dictionary.refinementTemplate){at=[];for(i=0;i<2;i++){at.push({x:readInt8(data,position),y:readInt8(data,position+1)});position+=2}dictionary.refinementAt=at}dictionary.numberOfExportedSymbols=readUint32(data,position);position+= +4;dictionary.numberOfNewSymbols=readUint32(data,position);position+=4;args=[dictionary,header.number,header.referredTo,data,position,end];break;case 6:case 7:var textRegion={};textRegion.info=readRegionSegmentInformation(data,position);position+=RegionSegmentInformationFieldLength;var textRegionSegmentFlags=readUint16(data,position);position+=2;textRegion.huffman=!!(textRegionSegmentFlags&1);textRegion.refinement=!!(textRegionSegmentFlags&2);textRegion.stripSize=1<<(textRegionSegmentFlags>>2&3);textRegion.referenceCorner= +textRegionSegmentFlags>>4&3;textRegion.transposed=!!(textRegionSegmentFlags&64);textRegion.combinationOperator=textRegionSegmentFlags>>7&3;textRegion.defaultPixelValue=textRegionSegmentFlags>>9&1;textRegion.dsOffset=textRegionSegmentFlags<<17>>27;textRegion.refinementTemplate=textRegionSegmentFlags>>15&1;if(textRegion.huffman){var textRegionHuffmanFlags=readUint16(data,position);position+=2;textRegion.huffmanFS=textRegionHuffmanFlags&3;textRegion.huffmanDS=textRegionHuffmanFlags>>2&3;textRegion.huffmanDT= +textRegionHuffmanFlags>>4&3;textRegion.huffmanRefinementDW=textRegionHuffmanFlags>>6&3;textRegion.huffmanRefinementDH=textRegionHuffmanFlags>>8&3;textRegion.huffmanRefinementDX=textRegionHuffmanFlags>>10&3;textRegion.huffmanRefinementDY=textRegionHuffmanFlags>>12&3;textRegion.huffmanRefinementSizeSelector=!!(textRegionHuffmanFlags&14)}if(textRegion.refinement&&!textRegion.refinementTemplate){at=[];for(i=0;i<2;i++){at.push({x:readInt8(data,position),y:readInt8(data,position+1)});position+=2}textRegion.refinementAt= +at}textRegion.numberOfSymbolInstances=readUint32(data,position);position+=4;if(textRegion.huffman)error("JBIG2 error: huffman is not supported");args=[textRegion,header.referredTo,data,position,end];break;case 38:case 39:var genericRegion={};genericRegion.info=readRegionSegmentInformation(data,position);position+=RegionSegmentInformationFieldLength;var genericRegionSegmentFlags=data[position++];genericRegion.mmr=!!(genericRegionSegmentFlags&1);genericRegion.template=genericRegionSegmentFlags>>1&3; +genericRegion.prediction=!!(genericRegionSegmentFlags&8);if(!genericRegion.mmr){atLength=genericRegion.template===0?4:1;at=[];for(i=0;i<atLength;i++){at.push({x:readInt8(data,position),y:readInt8(data,position+1)});position+=2}genericRegion.at=at}args=[genericRegion,data,position,end];break;case 48:var pageInfo={width:readUint32(data,position),height:readUint32(data,position+4),resolutionX:readUint32(data,position+8),resolutionY:readUint32(data,position+12)};if(pageInfo.height===4294967295)delete pageInfo.height; +var pageSegmentFlags=data[position+16];var pageStripingInformatiom=readUint16(data,position+17);pageInfo.lossless=!!(pageSegmentFlags&1);pageInfo.refinement=!!(pageSegmentFlags&2);pageInfo.defaultPixelValue=pageSegmentFlags>>2&1;pageInfo.combinationOperator=pageSegmentFlags>>3&3;pageInfo.requiresBuffer=!!(pageSegmentFlags&32);pageInfo.combinationOperatorOverride=!!(pageSegmentFlags&64);args=[pageInfo];break;case 49:break;case 50:break;case 51:break;case 62:break;default:error("JBIG2 error: segment type "+ +header.typeName+"("+header.type+") is not implemented")}var callbackName="on"+header.typeName;if(callbackName in visitor)visitor[callbackName].apply(visitor,args)}function processSegments(segments,visitor){for(var i=0,ii=segments.length;i<ii;i++)processSegment(segments[i],visitor)}function parseJbig2(data,start,end){var position=start;if(data[position]!==151||data[position+1]!==74||data[position+2]!==66||data[position+3]!==50||data[position+4]!==13||data[position+5]!==10||data[position+6]!==26||data[position+ +7]!==10)error("JBIG2 error: invalid header");var header={};position+=8;var flags=data[position++];header.randomAccess=!(flags&1);if(!(flags&2)){header.numberOfPages=readUint32(data,position);position+=4}var segments=readSegments(header,data,position,end);error("Not implemented")}function parseJbig2Chunks(chunks){var visitor=new SimpleSegmentVisitor;for(var i=0,ii=chunks.length;i<ii;i++){var chunk=chunks[i];var segments=readSegments({},chunk.data,chunk.start,chunk.end);processSegments(segments,visitor)}return visitor.buffer} +function SimpleSegmentVisitor(){}SimpleSegmentVisitor.prototype={onPageInformation:function SimpleSegmentVisitor_onPageInformation(info){this.currentPageInfo=info;var rowSize=info.width+7>>3;var buffer=new Uint8Array(rowSize*info.height);if(info.defaultPixelValue)for(var i=0,ii=buffer.length;i<ii;i++)buffer[i]=255;this.buffer=buffer},drawBitmap:function SimpleSegmentVisitor_drawBitmap(regionInfo,bitmap){var pageInfo=this.currentPageInfo;var width=regionInfo.width,height=regionInfo.height;var rowSize= +pageInfo.width+7>>3;var combinationOperator=pageInfo.combinationOperatorOverride?regionInfo.combinationOperator:pageInfo.combinationOperator;var buffer=this.buffer;var mask0=128>>(regionInfo.x&7);var offset0=regionInfo.y*rowSize+(regionInfo.x>>3);var i,j,mask,offset;switch(combinationOperator){case 0:for(i=0;i<height;i++){mask=mask0;offset=offset0;for(j=0;j<width;j++){if(bitmap[i][j])buffer[offset]|=mask;mask>>=1;if(!mask){mask=128;offset++}}offset0+=rowSize}break;case 2:for(i=0;i<height;i++){mask= +mask0;offset=offset0;for(j=0;j<width;j++){if(bitmap[i][j])buffer[offset]^=mask;mask>>=1;if(!mask){mask=128;offset++}}offset0+=rowSize}break;default:error("JBIG2 error: operator "+combinationOperator+" is not supported")}},onImmediateGenericRegion:function SimpleSegmentVisitor_onImmediateGenericRegion(region,data,start,end){var regionInfo=region.info;var decodingContext=new DecodingContext(data,start,end);var bitmap=decodeBitmap(region.mmr,regionInfo.width,regionInfo.height,region.template,region.prediction, +null,region.at,decodingContext);this.drawBitmap(regionInfo,bitmap)},onImmediateLosslessGenericRegion:function SimpleSegmentVisitor_onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion.apply(this,arguments)},onSymbolDictionary:function SimpleSegmentVisitor_onSymbolDictionary(dictionary,currentSegment,referredSegments,data,start,end){var huffmanTables;if(dictionary.huffman)error("JBIG2 error: huffman is not supported");var symbols=this.symbols;if(!symbols)this.symbols=symbols={};var inputSymbols= +[];for(var i=0,ii=referredSegments.length;i<ii;i++)inputSymbols=inputSymbols.concat(symbols[referredSegments[i]]);var decodingContext=new DecodingContext(data,start,end);symbols[currentSegment]=decodeSymbolDictionary(dictionary.huffman,dictionary.refinement,inputSymbols,dictionary.numberOfNewSymbols,dictionary.numberOfExportedSymbols,huffmanTables,dictionary.template,dictionary.at,dictionary.refinementTemplate,dictionary.refinementAt,decodingContext)},onImmediateTextRegion:function SimpleSegmentVisitor_onImmediateTextRegion(region, +referredSegments,data,start,end){var regionInfo=region.info;var huffmanTables;var symbols=this.symbols;var inputSymbols=[];for(var i=0,ii=referredSegments.length;i<ii;i++)inputSymbols=inputSymbols.concat(symbols[referredSegments[i]]);var symbolCodeLength=log2(inputSymbols.length);var decodingContext=new DecodingContext(data,start,end);var bitmap=decodeTextRegion(region.huffman,region.refinement,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.numberOfSymbolInstances,region.stripSize, +inputSymbols,symbolCodeLength,region.transposed,region.dsOffset,region.referenceCorner,region.combinationOperator,huffmanTables,region.refinementTemplate,region.refinementAt,decodingContext);this.drawBitmap(regionInfo,bitmap)},onImmediateLosslessTextRegion:function SimpleSegmentVisitor_onImmediateLosslessTextRegion(){this.onImmediateTextRegion.apply(this,arguments)}};function Jbig2Image(){}Jbig2Image.prototype={parseChunks:function Jbig2Image_parseChunks(chunks){return parseJbig2Chunks(chunks)}}; +return Jbig2Image}();var bidi=PDFJS.bidi=function bidiClosure(){var baseTypes=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ON","CS","ON","CS","ON","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","ON","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON", +"ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","ON","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L", +"L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"];var arabicTypes=["AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL", +"AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL", +"AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL", +"AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL"];function isOdd(i){return(i&1)!==0}function isEven(i){return(i&1)===0}function findUnequal(arr,start,value){for(var j=start,jj=arr.length;j<jj;++j)if(arr[j]!==value)return j;return j}function setValues(arr,start,end,value){for(var j=start;j<end;++j)arr[j]=value}function reverseValues(arr,start,end){for(var i=start,j=end-1;i<j;++i,--j){var temp=arr[i];arr[i]=arr[j];arr[j]=temp}}function createBidiText(str,isLTR,vertical){return{str:str,dir:vertical? +"ttb":isLTR?"ltr":"rtl"}}var chars=[];var types=[];function bidi(str,startLevel,vertical){var isLTR=true;var strLength=str.length;if(strLength===0||vertical)return createBidiText(str,isLTR,vertical);chars.length=strLength;types.length=strLength;var numBidi=0;var i,ii;for(i=0;i<strLength;++i){chars[i]=str.charAt(i);var charCode=str.charCodeAt(i);var charType="L";if(charCode<=255)charType=baseTypes[charCode];else if(1424<=charCode&&charCode<=1524)charType="R";else if(1536<=charCode&&charCode<=1791)charType= +arabicTypes[charCode&255];else if(1792<=charCode&&charCode<=2220)charType="AL";if(charType==="R"||charType==="AL"||charType==="AN")numBidi++;types[i]=charType}if(numBidi===0){isLTR=true;return createBidiText(str,isLTR)}if(startLevel===-1)if(strLength/numBidi<.3){isLTR=true;startLevel=0}else{isLTR=false;startLevel=1}var levels=[];for(i=0;i<strLength;++i)levels[i]=startLevel;var e=isOdd(startLevel)?"R":"L";var sor=e;var eor=sor;var lastType=sor;for(i=0;i<strLength;++i)if(types[i]==="NSM")types[i]=lastType; +else lastType=types[i];lastType=sor;var t;for(i=0;i<strLength;++i){t=types[i];if(t==="EN")types[i]=lastType==="AL"?"AN":"EN";else if(t==="R"||t==="L"||t==="AL")lastType=t}for(i=0;i<strLength;++i){t=types[i];if(t==="AL")types[i]="R"}for(i=1;i<strLength-1;++i){if(types[i]==="ES"&&types[i-1]==="EN"&&types[i+1]==="EN")types[i]="EN";if(types[i]==="CS"&&(types[i-1]==="EN"||types[i-1]==="AN")&&types[i+1]===types[i-1])types[i]=types[i-1]}for(i=0;i<strLength;++i)if(types[i]==="EN"){var j;for(j=i-1;j>=0;--j){if(types[j]!== +"ET")break;types[j]="EN"}for(j=i+1;j<strLength;--j){if(types[j]!=="ET")break;types[j]="EN"}}for(i=0;i<strLength;++i){t=types[i];if(t==="WS"||t==="ES"||t==="ET"||t==="CS")types[i]="ON"}lastType=sor;for(i=0;i<strLength;++i){t=types[i];if(t==="EN")types[i]=lastType==="L"?"L":"EN";else if(t==="R"||t==="L")lastType=t}for(i=0;i<strLength;++i)if(types[i]==="ON"){var end=findUnequal(types,i+1,"ON");var before=sor;if(i>0)before=types[i-1];var after=eor;if(end+1<strLength)after=types[end+1];if(before!=="L")before= +"R";if(after!=="L")after="R";if(before===after)setValues(types,i,end,before);i=end-1}for(i=0;i<strLength;++i)if(types[i]==="ON")types[i]=e;for(i=0;i<strLength;++i){t=types[i];if(isEven(levels[i]))if(t==="R")levels[i]+=1;else{if(t==="AN"||t==="EN")levels[i]+=2}else if(t==="L"||t==="AN"||t==="EN")levels[i]+=1}var highestLevel=-1;var lowestOddLevel=99;var level;for(i=0,ii=levels.length;i<ii;++i){level=levels[i];if(highestLevel<level)highestLevel=level;if(lowestOddLevel>level&&isOdd(level))lowestOddLevel= +level}for(level=highestLevel;level>=lowestOddLevel;--level){var start=-1;for(i=0,ii=levels.length;i<ii;++i)if(levels[i]<level){if(start>=0){reverseValues(chars,start,i);start=-1}}else if(start<0)start=i;if(start>=0)reverseValues(chars,start,levels.length)}var result="";for(i=0,ii=chars.length;i<ii;++i){var ch=chars[i];if(ch!=="<"&&ch!==">")result+=ch}return createBidiText(result,isLTR)}return bidi}();"use strict";var MurmurHash3_64=function MurmurHash3_64Closure(seed){var MASK_HIGH=4294901760;var MASK_LOW= +65535;function MurmurHash3_64(seed){var SEED=3285377520;this.h1=seed?seed&4294967295:SEED;this.h2=seed?seed&4294967295:SEED}var alwaysUseUint32ArrayView=false;try{new Uint32Array((new Uint8Array(5)).buffer,0,1)}catch(e){alwaysUseUint32ArrayView=true}MurmurHash3_64.prototype={update:function MurmurHash3_64_update(input){var useUint32ArrayView=alwaysUseUint32ArrayView;var i;if(typeof input==="string"){var data=new Uint8Array(input.length*2);var length=0;for(i=0;i<input.length;i++){var code=input.charCodeAt(i); +if(code<=255)data[length++]=code;else{data[length++]=code>>>8;data[length++]=code&255}}}else if(input instanceof Uint8Array){data=input;length=data.length}else if(typeof input==="object"&&"length"in input){data=input;length=data.length;useUint32ArrayView=true}else throw new Error("Wrong data format in MurmurHash3_64_update. "+"Input must be a string or array.");var blockCounts=length>>2;var tailLength=length-blockCounts*4;var dataUint32=useUint32ArrayView?new Uint32ArrayView(data,blockCounts):new Uint32Array(data.buffer, +0,blockCounts);var k1=0;var k2=0;var h1=this.h1;var h2=this.h2;var C1=3432918353;var C2=461845907;var C1_LOW=C1&MASK_LOW;var C2_LOW=C2&MASK_LOW;for(i=0;i<blockCounts;i++)if(i&1){k1=dataUint32[i];k1=k1*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW;k1=k1<<15|k1>>>17;k1=k1*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW;h1^=k1;h1=h1<<13|h1>>>19;h1=h1*5+3864292196}else{k2=dataUint32[i];k2=k2*C1&MASK_HIGH|k2*C1_LOW&MASK_LOW;k2=k2<<15|k2>>>17;k2=k2*C2&MASK_HIGH|k2*C2_LOW&MASK_LOW;h2^=k2;h2=h2<<13|h2>>>19;h2=h2*5+3864292196}k1=0;switch(tailLength){case 3:k1^= +data[blockCounts*4+2]<<16;case 2:k1^=data[blockCounts*4+1]<<8;case 1:k1^=data[blockCounts*4];k1=k1*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW;k1=k1<<15|k1>>>17;k1=k1*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW;if(blockCounts&1)h1^=k1;else h2^=k1}this.h1=h1;this.h2=h2;return this},hexdigest:function MurmurHash3_64_hexdigest(){var h1=this.h1;var h2=this.h2;h1^=h2>>>1;h1=h1*3981806797&MASK_HIGH|h1*36045&MASK_LOW;h2=h2*4283543511&MASK_HIGH|((h2<<16|h1>>>16)*2950163797&MASK_HIGH)>>>16;h1^=h2>>>1;h1=h1*444984403&MASK_HIGH|h1* +60499&MASK_LOW;h2=h2*3301882366&MASK_HIGH|((h2<<16|h1>>>16)*3120437893&MASK_HIGH)>>>16;h1^=h2>>>1;for(var i=0,arr=[h1,h2],str="";i<arr.length;i++){var hex=(arr[i]>>>0).toString(16);while(hex.length<8)hex="0"+hex;str+=hex}return str}};return MurmurHash3_64}()}).call(typeof window==="undefined"?this:window); +if(!PDFJS.workerSrc&&typeof document!=="undefined")PDFJS.workerSrc=function(){var scriptTagContainer=document.body||document.getElementsByTagName("head")[0];var pdfjsSrc=scriptTagContainer.lastChild.src;return pdfjsSrc&&pdfjsSrc.replace(/\.js$/i,".worker.js")}(); |