{"version":3,"file":"pdf-worker-min.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAK+D;AACrE,CAAC;AACD,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,WAAW,4CAA4C,cAAc;AAC/G;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,iIAAiI;AACjI;;AAEA;AACA,2JAA2J;;AAE3J;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oFAAoF;AACpF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA,qEAAqE,QAAQ;AAC7E;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,4DAA4D,UAAU;AACtE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA+D,UAAU;AACzE;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;;AAEA;AACA;AACA,QAAQ;AACR,gCAAgC,sBAAsB;AACtD;AACA,sDAAsD,UAAU;AAChE;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,oCAAoC,eAAe,+BAA+B,mBAAmB,UAAU,wBAAwB;AACvI;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,oCAAoC,eAAe,8BAA8B,mBAAmB;AACpG;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;;AAEA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,IAAI;AAC9B;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;;AAEA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe,cAAc,EAAE,cAAc,EAAE,cAAc;AAC7D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ;AACR,oCAAoC,GAAG;AACvC;AACA;AACA;;AAEA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,gBAAgB,MAAM;AACtB,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,SAAS;AAC3B;;AAEA,gBAAgB,SAAS,GAAG,SAAS;AACrC;;AAEA;AACA,iCAAiC,IAAI,QAAQ,IAAI,GAAG,IAAI;AACxD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,MAAM,IAAI,IAAI;AACzC;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,kBAAkB;AACxC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,oDAAoD,QAAQ;AAC5D;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa;AACb,aAAa;AACb,cAAc;AACd,eAAe;AACf,eAAe;AACf;;AAEA;AACA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,wBAAwB,iCAAiC;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,qEAAqE,WAAW;AAChF;AACA;AACA,IAAI;AACJ;AACA,qEAAqE,WAAW;AAChF;AACA;AACA,IAAI;AACJ;AACA;AACA,kFAAkF,WAAW;AAC7F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qDAAqD,IAAI;AACzD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4CAA4C,WAAW;AACvD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,MAAM;AACjD;;AAEA;;AAEA;AACA,yCAAyC,IAAI;AAC7C;;AAEA;AACA;AACA;;AAEA,oCAAoC,qBAAqB;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,qBAAqB;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,eAAe;AACnC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oCAAoC,qBAAqB;AACzD;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU,GAAG,iBAAiB;AACjD;;AAEA;AACA,sBAAsB,eAAe;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,MAAM;AACtC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,iEAAiE,MAAM,MAAM,OAAO;AACpF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0EAA0E,UAAU,WAAW,OAAO;AACtG;AACA,SAAS;AACT;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uFAAuF,UAAU,WAAW,OAAO;AACnH;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA,+EAA+E,UAAU,WAAW,OAAO;AAC3G,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qCAAqC,QAAQ;AAC7C;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,OAAO;AACjD;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,wBAAwB,QAAQ,GAAG,cAAc;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4CAA4C,OAAO;AACnD;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,yDAAyD,GAAG;AAC5D;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4DAA4D,QAAQ;AACpE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D,IAAI,cAAc,MAAM;AAClF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6CAA6C,IAAI,cAAc,MAAM;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN,iDAAiD,eAAe;AAChE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;AACN;;AAEA;;AAEA;AACA;AACA;;AAEA,qEAAqE,SAAS;AAC9E;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR,kBAAkB,KAAK,GAAG,SAAS;AACnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,OAAO;AACvD;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0EAA0E,wBAAwB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4DAA4D,UAAU;AACtE;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ,8DAA8D,QAAQ;AACtE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN,yCAAyC,GAAG;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,8CAA8C,QAAQ;AACtD;;AAEA,wCAAwC,QAAQ;AAChD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,OAAO;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD,IAAI;AAC5D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8EAA8E,MAAM;AACpF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB;AACzE;;AAEA;AACA,qBAAqB,cAAc,EAAE,cAAc,EAAE,cAAc;AACnE;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6DAA6D,OAAO,EAAE,QAAQ,aAAa,QAAQ,EAAE,OAAO;AAC5G;;AAEA;AACA,eAAe,kEAAkE,EAAE,MAAM;AACzF;;AAEA;AACA;AACA,gBAAgB,aAAa,IAAI,+DAA+D,EAAE,MAAM;AACxG;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uBAAuB,iCAAiC;;AAExD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,cAAc,EAAE,cAAc;AAC7D;AACA;AACA,0BAA0B,YAAY,EAAE,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B,OAAO,uCAAuC,UAAU,EAAE,UAAU,MAAM,uCAAuC;AAC3I;;AAEA;;AAEA,wBAAwB,OAAO,8CAA8C,aAAa;AAC1F;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,cAAc,OAAO,EAAE,UAAU,MAAM,8BAA8B;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,oDAAoD;AACvE;;AAEA;AACA,sCAAsC,WAAW;AACjD,wBAAwB,OAAO,uCAAuC,UAAU,EAAE,UAAU,KAAK,aAAa;AAC9G;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,OAAO,yCAAyC,QAAQ,KAAK,aAAa;AAClG;;AAEA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uBAAuB,iCAAiC;;AAExD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,cAAc,EAAE,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,iBAAiB,EAAE,iBAAiB;AAC/D;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,uBAAuB,iCAAiC;;AAExD;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,uBAAuB,cAAc,EAAE,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,iFAAiF,KAAK;AACtF;;AAEA;AACA;AACA,0CAA0C,UAAU,SAAS,QAAQ,EAAE,QAAQ,MAAM,KAAK;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,eAAe;AACnC;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,qCAAqC,YAAY,EAAE,aAAa;;AAEhE;AACA;;AAEA;AACA;AACA,wBAAwB,qDAAqD,EAAE,YAAY,EAAE,YAAY;AACzG;AACA;AACA;;AAEA,mDAAmD,aAAa;;AAEhE,6BAA6B,SAAS;AACtC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,sCAAsC,iCAAiC;AACvE;AACA,wBAAwB,UAAU,KAAK,kDAAkD;AACzF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,oCAAoC,EAAE,oCAAoC,4BAA4B,kDAAkD,UAAU,kDAAkD,YAAY,8CAA8C;AAC9S;;AAEA;AACA,wBAAwB,QAAQ,MAAM,8BAA8B;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA,yBAAyB,oBAAoB,EAAE,oBAAoB,OAAO,oBAAoB,EAAE,oBAAoB;AACpH;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ;;AAEpD;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAM,EAAE,IAAI,OAAO,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,OAAO,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,OAAO,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,OAAO,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI;;AAEjT;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;;AAEA,gDAAgD,QAAQ;AACxD,2BAA2B,eAAe,EAAE,eAAe,EAAE,oBAAoB;AACjF;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,6CAA6C,QAAQ;AACrD;;AAEA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,6BAA6B,cAAc,EAAE,cAAc,EAAE,oBAAoB;AACjF;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iCAAiC,WAAW,eAAe,mDAAmD;;AAE9G;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA,qBAAqB,4CAA4C,EAAE,4CAA4C;;AAE/G,0CAA0C,QAAQ;AAClD;AACA,uBAAuB,OAAO;AAC9B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa,EAAE,aAAa,OAAO,aAAa,EAAE,aAAa,OAAO,aAAa,EAAE,aAAa,OAAO,aAAa,EAAE,aAAa;AAChK;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa,EAAE,aAAa,OAAO,aAAa,EAAE,aAAa;AAC1F;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,GAAG,EAAE,WAAW;;AAE3C;AACA;AACA;AACA,6BAA6B,GAAG,EAAE,WAAW;AAC7C,cAAc;;AAEd;AACA;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC,OAAO,iCAAiC,OAAO,iCAAiC,OAAO,iCAAiC;AACpL;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,oEAAoE,OAAO;AAC3E;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,uCAAuC,EAAE,mBAAmB;AAC1E;;AAEA,8FAA8F,qBAAqB;AACnH;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa,0CAA0C,EAAE,UAAU,KAAK,6BAA6B;AACrG;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;;AAEA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA,sBAAsB,wBAAwB;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kEAAkE,QAAQ;AAC1E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0EAA0E,KAAK;AAC/E;AACA;;AAEA,mEAAmE,GAAG;AACtE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA,KAAK;AACL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,WAAW;AAC3B,kBAAkB,cAAc;AAChC;AACA;;AAEA;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,sBAAsB,YAAY;AAClC;AACA;AACA,MAAM;AACN,4EAA4E,OAAO;AACnF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,UAAU;AACnF;;AAEA;AACA,kDAAkD,UAAU;AAC5D;AACA;;AAEA;AACA,2BAA2B,UAAU,oBAAoB,QAAQ,QAAQ,QAAQ,aAAa,QAAQ;AACtG;;AAEA;AACA,0CAA0C,QAAQ,MAAM,UAAU;AAClE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,UAAU;AACnF;;AAEA;AACA,kDAAkD,WAAW,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG;AACjF;AACA;;AAEA;AACA,0CAA0C,QAAQ,IAAI,QAAQ,IAAI,QAAQ,aAAa,UAAU;AACjG;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA,qDAAqD,MAAM;AAC3D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6CAA6C,WAAW;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,sEAAsE,GAAG;AACzE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA,kEAAkE,GAAG;AACrE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,qBAAqB,qBAAqB,EAAE,KAAK;AACjD;;AAEA;AACA,mEAAmE,IAAI,UAAU,oBAAoB;AACrG;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,iCAAiC,EAAE,SAAS;AACjE;;AAEA;AACA,wEAAwE,IAAI,UAAU,oBAAoB;AAC1G,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR,wEAAwE,SAAS,UAAU,EAAE;AAC7F;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA,4BAA4B,6BAA6B;AACzD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,uBAAuB,6BAA6B;AACpD;;AAEA;AACA,iBAAiB,0BAA0B,SAAS,MAAM;AAC1D,MAAM;AACN;;AAEA;AACA,mBAAmB,0BAA0B,GAAG,MAAM;AACtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL,iDAAiD,MAAM,MAAM,OAAO;AACpE;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,iEAAiE,OAAO;AACxE;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA,+DAA+D,OAAO;AACtE;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP,2CAA2C,OAAO;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,QAAQ;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,oCAAoC;;AAEtE;AACA,2BAA2B,WAAW;AACtC;AACA;;AAEA;AACA;AACA,OAAO;AACP,yBAAyB,YAAY;;AAErC;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,6DAA6D,OAAO;AACpE;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,kCAAkC,OAAO;AACzC;AACA;;AAEA;AACA,yBAAyB,0BAA0B,GAAG,OAAO;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP,2DAA2D,OAAO;;AAElE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sDAAsD,GAAG;AACzD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,mEAAmE,OAAO;AAC1E;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,sBAAsB,6BAA6B;AACnD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA,4DAA4D,QAAQ;AACpE;AACA;;AAEA,wDAAwD,YAAY;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,eAAe;AAC3D;AACA;;AAEA,oBAAoB,YAAY;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,gBAAgB;AAChB;AACA,gBAAgB;AAChB,yEAAyE,UAAU;AACnF;;AAEA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,wEAAwE,OAAO;AAC/E;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,eAAe;AACvC;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,0EAA0E,OAAO;AACjF;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gFAAgF,QAAQ;AACxF;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB,0FAA0F,OAAO;AACjG;AACA;;AAEA;AACA,eAAe;AACf;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,qEAAqE,UAAU,gBAAgB,OAAO;AACtG;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mFAAmF;AACnF;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kDAAkD,YAAY;AAC9D;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;;AAEA;AACA,uEAAuE,OAAO;AAC9E;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,yEAAyE,OAAO;AAChF;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,8BAA8B,OAAO,KAAK;AAC1F;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,oEAAoE,UAAU,gBAAgB,OAAO;AACrG;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,+EAA+E,GAAG;AAClF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oDAAoD,QAAQ;AAC5D;;AAEA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd,mFAAmF,KAAK;AACxF;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;AAER,mDAAmD,SAAS,GAAG,SAAS;;AAExE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0BAA0B,kBAAkB;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,uEAAuE,OAAO;AAC9E;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA,4CAA4C,QAAQ;AACpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC,QAAQ;AAChD;AACA;;AAEA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA,YAAY;AACZ;;AAEA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,QAAQ;AACpD;AACA;;AAEA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,cAAc;AACd;;AAEA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;;AAEA,4BAA4B,gBAAgB;AAC5C;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qBAAqB,UAAU,GAAG,SAAS;AAC3C;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,oBAAoB;AACrD;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gDAAgD,QAAQ;AACxD;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6DAA6D,YAAY,wDAAwD,YAAY;;AAE7I;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,mDAAmD,cAAc,gBAAgB,GAAG;AACpF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,2BAA2B,gBAAgB,QAAQ,SAAS;;AAE5D;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA,WAAW;AACX,uDAAuD,WAAW,UAAU,OAAO;AACnF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT,kDAAkD,IAAI;AACtD;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,IAAI;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,IAAI,aAAa,SAAS,0BAA0B,YAAY;;AAE1G;AACA,qDAAqD,WAAW;AAChE;;AAEA,wCAAwC,WAAW;;AAEnD;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV,qCAAqC,IAAI,iBAAiB,QAAQ,4BAA4B,YAAY;AAC1G;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iDAAiD,QAAQ;AACzD;AACA;;AAEA,kDAAkD,OAAO;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iDAAiD,QAAQ;AACzD;;AAEA,kDAAkD,OAAO;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,aAAa;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;AAER;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;AAER;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,mBAAmB;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,mBAAmB;AAC/C;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,mBAAmB;AAC/C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,mBAAmB;AAC/C;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,wEAAwE,KAAK;AAC7E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sBAAsB,+BAA+B;AACrD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA,sDAAsD,QAAQ;AAC9D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,OAAO,GAAG,SAAS;AAC1D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,4BAA4B;AACjE;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;;AAEA;AACA;;AAEA,wBAAwB,qBAAqB;AAC7C;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sCAAsC,8CAA8C;AACpF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,+CAA+C,QAAQ;AACvD;;AAEA;AACA,0DAA0D,OAAO;AACjE;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC,KAAK;AACrC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC,KAAK;AACtC;AACA,MAAM;AACN;AACA;AACA;;AAEA,0CAA0C,GAAG;AAC7C;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qDAAqD,yBAAyB,YAAY,GAAG;AAC7F;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6DAA6D,wBAAwB;AACrF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,wEAAwE,cAAc;AACtF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kEAAkE,GAAG;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA,qCAAqC;;AAErC;AACA;AACA,0DAA0D,GAAG;AAC7D;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+DAA+D,WAAW;AAC1E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,kCAAkC,GAAG;AACrC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,KAAK;AACnC;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,qBAAqB;AACjD;;AAEA;AACA,qCAAqC,MAAM;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA,kBAAkB,OAAO;AACzB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,kBAAkB;AAClB,gBAAgB;AAChB;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,kBAAkB;AAClB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd,YAAY;AACZ;AACA;AACA,cAAc;AACd;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,OAAO;AAC/B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,UAAU;AAClC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qEAAqE,IAAI,IAAI,IAAI;AACjF;;AAEA;AACA,iFAAiF,IAAI,IAAI,IAAI;AAC7F;;AAEA;AACA,iEAAiE,IAAI,IAAI,IAAI;AAC7E;;AAEA;AACA,oEAAoE,IAAI,IAAI,IAAI;AAChF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,eAAe;AACzD,wBAAwB,SAAS;AACjC;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;;AAEA,0BAA0B,UAAU;AACpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,0BAA0B,IAAI;AAC9B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;;AAEA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,2BAA2B;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,0BAA0B;AACxC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,6BAA6B;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;;AAEA,kBAAkB,0BAA0B;AAC5C;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA,kBAAkB,6BAA6B;AAC/C;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,4BAA4B;AAC1D;AACA;AACA;;AAEA,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;;AAEA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,YAAY;AAC1B;;AAEA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAmB;AACxC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;;AAEA;;AAEA;AACA,2BAA2B,eAAe;AAC1C;AACA;;AAEA;;AAEA;AACA,+CAA+C,qBAAqB;AACpE;AACA;;AAEA;AACA,QAAQ;AACR,qBAAqB,mBAAmB;AACxC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;;AAEA;;AAEA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;;AAEA;;AAEA;AACA,+CAA+C,qBAAqB;AACpE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA;AACA;;AAEA,oBAAoB,mBAAmB;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,oBAAoB;AAC1D;;AAEA;AACA;;AAEA,cAAc,kBAAkB;AAChC;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA,eAAe,iBAAiB;AAChC,iBAAiB,gBAAgB;AACjC;AACA;;AAEA,iCAAiC,QAAQ;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,mBAAmB;AACvC;AACA;;AAEA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA,QAAQ;AACR;;AAEA,oBAAoB,mBAAmB;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,kBAAkB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA,cAAc,qBAAqB;AACnC;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2CAA2C,QAAQ;AACnD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,gBAAgB,GAAG,YAAY;AAC1E;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;;AAEA,sBAAsB,WAAW;AACjC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;;AAEA,sBAAsB,WAAW;AACjC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,QAAQ;AACvD;;AAEA,qCAAqC,QAAQ;AAC7C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,QAAQ;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,oBAAoB;AACtC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,qBAAqB;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA,yBAAyB,IAAI;AAC7B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,cAAc,YAAY;AAC1B,gBAAgB,oBAAoB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iDAAiD,wCAAwC;AACzF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;;AAEA;;AAEA;AACA;;AAEA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA,QAAQ;AACR,oBAAoB,eAAe;AACnC,sBAAsB,sBAAsB;AAC5C;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,YAAY,+BAA+B,mBAAmB;AACpG;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,4BAA4B;AACrD,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;;AAEA;AACA;AACA,IAAI,IAAI;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA,cAAc;AACd,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,kBAAkB;AACxC;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA,eAAe;AACf,cAAc;AACd,iCAAiC,YAAY;AAC7C;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD,QAAQ;AAC1D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,eAAe;AACjC,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,wBAAwB,IAAI;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD,MAAM,GAAG,WAAW;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D,uBAAuB;AACtF;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR,yDAAyD,UAAU;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,eAAe;AACjC,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,UAAU;AAC3B,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;;AAEA,4CAA4C,QAAQ;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,iBAAiB;AAC5B,aAAa,kCAAkC;AAC/C,eAAe,qBAAqB;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,kCAAkC;AAC7C,aAAa,iBAAiB;AAC9B,eAAe,qBAAqB;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,qBAAqB;AACnC;AACA;AACA;;AAEA;;AAEA,cAAc,kCAAkC;AAChD;;AAEA,gBAAgB,qBAAqB;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,kCAAkC;AAC7C,aAAa,+BAA+B;AAC5C,eAAe,qBAAqB;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,yCAAyC;AACpD,aAAa,yCAAyC;AACtD,eAAe,qBAAqB;AACpC;AACA;;AAEA,iBAAiB,+BAA+B;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;;AAEA,aAAa,yCAAyC;AACtD,eAAe,yCAAyC;AACxD,iBAAiB,+BAA+B;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;;AAEA,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,+BAA+B;AACjD;AACA;AACA;AACA;;AAEA,qDAAqD,QAAQ;AAC7D;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,QAAQ;AACrD;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA,MAAM;AACN,sBAAsB,qBAAqB;AAC3C;AACA;AACA;;AAEA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;;AAEA,yCAAyC,QAAQ;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,aAAa;AACpC,wBAAwB,WAAW;AACnC;;AAEA,2BAA2B,QAAQ;AACnC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,iBAAiB;AACvD;;AAEA,wBAAwB,WAAW;AACnC,uCAAuC,mBAAmB;AAC1D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,aAAa;AACpC;AACA;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,SAAS;AACvC;AACA;;AAEA;AACA;;AAEA,4BAA4B,WAAW;AACvC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,cAAc;AACrC;;AAEA,kBAAkB,aAAa;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA,MAAM;AACN,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,gBAAgB;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA,MAAM;AACN,kBAAkB,WAAW;AAC7B;AACA;;AAEA,yCAAyC,QAAQ;AACjD,wBAAwB,gBAAgB;AACxC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,KAAK;AAC3B;AACA;;AAEA;AACA;;AAEA,sBAAsB,KAAK;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,KAAK;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,KAAK;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,KAAK;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,KAAK;AACvC;AACA;;AAEA,kCAAkC,KAAK;AACvC;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,eAAe;AAC/B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,wDAAwD,QAAQ;AAChE;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;;AAEA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4DAA4D,UAAU;AACtE;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kBAAkB,YAAY;AAC9B;AACA;;AAEA,aAAa,cAAc;AAC3B;AACA;AACA;AACA,MAAM;AACN;;AAEA,kBAAkB,mBAAmB;AACrC;AACA;;AAEA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,aAAa;AAC/B,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA,eAAe,cAAc;AAC7B;AACA;AACA;;AAEA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA,eAAe,cAAc;AAC7B;AACA;AACA;;AAEA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;;AAEA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA,8DAA8D,UAAU;AACxE;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kDAAkD,SAAS,MAAM,IAAI;;AAErE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,QAAQ;AAC7C;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;;AAEA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;;AAEA,iCAAiC,QAAQ;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,QAAQ;AAC7C;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,6EAA6E,UAAU,GAAG,cAAc,aAAa,KAAK,GAAG,QAAQ;AACrI;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,8CAA8C,MAAM;AACpD;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,eAAe;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,cAAc;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+EAA+E,aAAa;AAC5F;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,+CAA+C,QAAQ;AACvD,oDAAoD,QAAQ;AAC5D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iEAAiE,SAAS,gCAAgC,kBAAkB;AAC5H;AACA;AACA;AACA;AACA;;AAEA,2EAA2E,SAAS;AACpF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;;AAEA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,qBAAqB;AAChD;AACA;AACA,WAAW;AACX;;AAEA;;AAEA,2BAA2B,qBAAqB;AAChD;AACA;;AAEA,2BAA2B,qBAAqB;AAChD;AACA;;AAEA;AACA;;AAEA,2BAA2B,qBAAqB;AAChD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;;AAEA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,UAAU;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,QAAQ;AACR;AACA;;AAEA,oBAAoB,aAAa;AACjC;AACA;AACA;;AAEA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,aAAa,mDAAmD,UAAU;AACvH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,mBAAmB;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,OAAO;;AAEP,kBAAkB,eAAe;AACjC;AACA;;AAEA;AACA;AACA,OAAO;;AAEP,kBAAkB,eAAe;AACjC;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gCAAgC,eAAe;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kCAAkC,kBAAkB;AACpD;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,sBAAsB,eAAe;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;AACA;;AAEA;AACA;;AAEA;;AAEA,sBAAsB,eAAe;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,wDAAwD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,OAAO;AACxC;;AAEA;AACA;;AAEA;AACA;AACA,YAAY;AACZ,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,YAAY;AACZ,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,YAAY;AACZ,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,YAAY;AACZ,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2DAA2D,QAAQ;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;;AAEA;AACA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B,gBAAgB;AAC/C;;AAEA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,wBAAwB;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR,wBAAwB,wBAAwB;AAChD;AACA;;AAEA;AACA,QAAQ;AACR,wBAAwB,wBAAwB;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2DAA2D,QAAQ;AACnE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ;AACR,+DAA+D,aAAa;AAC5E;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;;AAEA;AACA;AACA,MAAM;AACN,yCAAyC,QAAQ;AACjD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC,QAAQ;AACjD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,qCAAqC,QAAQ;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2CAA2C,QAAQ;AACnD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;;AAEA,wBAAwB,gBAAgB;AACxC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,qFAAqF;;AAErF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,YAAY;AAClC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,YAAY;AAClC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,kBAAkB;AACxC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,sBAAsB,iBAAiB;AACvC;AACA;;AAEA,gCAAgC,mBAAmB;AACnD;AACA;AACA;;AAEA;;AAEA;AACA,kEAAkE,QAAQ;AAC1E;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B,UAAU;AACxC;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sEAAsE,OAAO;AAC7E;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D,KAAK;AACnE;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6DAA6D,KAAK;AAClE;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,kBAAkB;AAClB,eAAe;AACf,iBAAiB;AACjB;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE,IAAI;AACtE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D,IAAI;AAClE;;AAEA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iDAAiD,QAAQ;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sEAAsE,KAAK,GAAG,KAAK,IAAI,IAAI;AAC3F;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA,qCAAqC,QAAQ;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA,sBAAsB,YAAY;AAClC;;AAEA,mHAAmH,gBAAgB;AACnI;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,QAAQ;AAC/C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,gDAAgD,QAAQ;AACxD;AACA;;AAEA;;AAEA;AACA,gEAAgE,KAAK;AACrE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C,MAAM;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,8BAA8B;AAClD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,8BAA8B;AAClD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,WAAW;AAC3B;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA,gBAAgB,eAAe;AAC/B;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,WAAW;AAC3B;AACA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB,gCAAgC;AACvD;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,IAAI;AACJ;;AAEA,uBAAuB,gCAAgC;AACvD;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;;AAEA,uBAAuB,gCAAgC;AACvD;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA,kDAAkD,GAAG,OAAO,GAAG;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;AACA,QAAQ;AACR,0BAA0B,iCAAiC;AAC3D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;;AAEA;;AAEA,gBAAgB,cAAc;AAC9B;AACA;;AAEA,gBAAgB,cAAc;AAC9B;AACA;;AAEA,gBAAgB,cAAc;AAC9B;;AAEA;AACA;AACA;;AAEA;;AAEA,gEAAgE,QAAQ;AACxE;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA,mDAAmD,OAAO;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;;AAEA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN,IAAI;AACJ;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA,kEAAkE,EAAE;AACpE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,6DAA6D,EAAE;AAC/D;;AAEA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,eAAe;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,eAAe;AACnC;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,WAAW;AACnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wDAAwD,QAAQ;AAChE;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wDAAwD,QAAQ;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD,QAAQ;AAChE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,sCAAsC,QAAQ;AAC9C;AACA;AACA,IAAI;AACJ,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;;AAEA;;AAEA,gBAAgB,eAAe;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAA0D,QAAQ;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iEAAiE,0BAA0B;AAC3F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sBAAsB,8BAA8B;AACpD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6CAA6C,QAAQ;AACrD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kDAAkD,QAAQ;AAC1D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA,gBAAgB,UAAU;AAC1B;AACA;;AAEA,gBAAgB,WAAW;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,WAAW;AAC3B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,WAAW;AAC3B;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oCAAoC,QAAQ;AAC5C;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,wBAAwB,iBAAiB;AACzC;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;;AAEA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,WAAW;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,yDAAyD;AACzD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA,4BAA4B,UAAU;AACtC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yDAAyD,YAAY;AACrE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,cAAc;AACzC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gDAAgD,QAAQ;AACxD;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,6CAA6C,QAAQ;AACrD;AACA;;AAEA;;AAEA,4CAA4C,QAAQ;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;;AAEA,4CAA4C,QAAQ;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qCAAqC,QAAQ;AAC7C;AACA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4EAA4E,KAAK;AACjF;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;;AAEA,sBAAsB,YAAY;AAClC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,sBAAsB,iBAAiB;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,sBAAsB,eAAe;AACrC;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA;;AAEA;AACA;;AAEA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,oCAAoC,QAAQ;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;;AAEA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;;AAEA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;;AAEA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA,0DAA0D,SAAS;AACnE;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,eAAe;AACnC;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4DAA4D,iBAAiB,WAAW,KAAK;AAC7F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gGAAgG;AAChG;;AAEA;AACA,gGAAgG;AAChG;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;AACA,oEAAoE,MAAM;AAC1E;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;;AAEA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA,cAAc,eAAe;AAC7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,eAAe;AAC7B;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,mBAAmB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B,eAAe;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,cAAc,eAAe;AAC7B;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;;AAEA,cAAc,eAAe;AAC7B;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAA6B,yBAAyB;AACtD;;AAEA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iCAAiC,QAAQ;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;;AAEA,2CAA2C,QAAQ;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4DAA4D,IAAI;AAChE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,WAAW;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,0DAA0D,IAAI;AAC9D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,sDAAsD,IAAI;AAC1D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,yDAAyD,IAAI;AAC7D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,QAAQ;AACtB;AACA;;AAEA,cAAc,QAAQ;AACtB;;AAEA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D,OAAO,aAAa,OAAO;AACrF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV,8EAA8E,eAAe;AAC7F;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,wBAAwB;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,QAAQ;AAC9C;AACA;;AAEA;AACA;;AAEA;;AAEA,+CAA+C,QAAQ;AACvD,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,YAAY;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;;AAEA,sBAAsB,cAAc;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA,MAAM;AACN,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,YAAY;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,uEAAuE;;AAEvE;AACA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4EAA4E,SAAS;AACrF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,QAAQ;AACR,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oBAAoB,oBAAoB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,iBAAiB,SAAS,EAAE,SAAS;;AAErC;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,qCAAqC;AAC1D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,2CAA2C;AAC/D,IAAI;AACJ,mBAAmB,WAAW,EAAE,WAAW;AAC3C,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA,oBAAoB,+BAA+B;AACnD,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ,kDAAkD,aAAa;AAC/D;AACA;;AAEA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN,kDAAkD,KAAK;AACvD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,iBAAiB,EAAE,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,oBAAoB,EAAE,oBAAoB,2CAA2C,eAAe;AACtH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB,EAAE,qBAAqB;AAC7D;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe,MAAM;AACrB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,cAAc;;AAElC;AACA;AACA,wBAAwB,eAAe,IAAI,oDAAoD;AAC/F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,cAAc;AACrC,MAAM;AACN,sBAAsB,mDAAmD,IAAI,cAAc;AAC3F,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,wDAAwD,QAAQ;AAChE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;;AAEA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC,kBAAkB,QAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC,kBAAkB,QAAQ;AAC1B;AACA;AACA;;AAEA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,QAAQ;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;;AAEA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,QAAQ;AAC9B;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,QAAQ;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,QAAQ;AAC5B;AACA;;AAEA,oBAAoB,8BAA8B;AAClD,sBAAsB,QAAQ;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;;AAEA,oBAAoB,QAAQ;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,sBAAsB,QAAQ;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN,sBAAsB,uCAAuC;AAC7D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,QAAQ;AAC9B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,QAAQ;AACvC;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR,wBAAwB,QAAQ;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,0CAA0C,OAAO;AACjD;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,OAAO;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,OAAO;AAClB;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,mBAAmB,QAAQ;AAC3B,wBAAwB,sBAAsB;AAC9C;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,sDAAsD;AACtD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oDAAoD;AACpD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,qDAAqD,GAAG;AACxD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,iEAAiE,GAAG;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,GAAG;AACrC;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,QAAQ;AAChD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0DAA0D,MAAM;AAChE;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6EAA6E,IAAI;AACjF;AACA;;AAEA;AACA,+CAA+C,IAAI,2BAA2B,MAAM;AACpF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC,WAAW;AAClD;AACA;AACA;;AAEA,kCAAkC,WAAW;AAC7C;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wEAAwE,WAAW;AACnF;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D,WAAW;AAC1E;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,2CAA2C,QAAQ;AACnD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D,WAAW;AACtE;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,kCAAkC;AACzC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC,MAAM;AAC1C,OAAO;AACP;;AAEA,yCAAyC,QAAQ;AACjD;;AAEA;AACA;AACA,UAAU;AACV,8EAA8E;AAC9E;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,oBAAoB,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,uBAAuB,cAAc,OAAO,SAAS;AACrD,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,sCAAsC,QAAQ;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,0EAA0E,GAAG;AAC7E;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,6EAA6E,EAAE;AAC/E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,OAAO;AACP,MAAM;AACN,gEAAgE,EAAE;AAClE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qDAAqD;;AAErD;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,8EAA8E,EAAE;AAChF;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK,EAAE,MAAM;AACjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,oBAAoB,QAAQ;AAC5B,MAAM;AACN,sBAAsB,WAAW,EAAE,aAAa;AAChD;;AAEA,mCAAmC,gBAAgB,GAAG,IAAI,sBAAsB,KAAK;AACrF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D,IAAI;AAChE;AACA;;AAEA;AACA,uDAAuD,kBAAkB,MAAM,gBAAgB;AAC/F;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iFAAiF,QAAQ;AACzF;;AAEA;AACA;;AAEA;;AAEA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,qBAAqB,iBAAiB,EAAE,MAAM;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,mCAAmC,iBAAiB,yBAAyB,YAAY;AACzF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,yCAAyC;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,OAAO,EAAE,YAAY;;AAEtC;AACA;AACA,mBAAmB,SAAS,IAAI,oDAAoD;AACpF;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO,EAAE,YAAY;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,uDAAuD,SAAS;AAChE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,oDAAoD,IAAI;AACxD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iDAAiD,OAAO;AACxD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC,yCAAyC;;AAEzC;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,oDAAoD,IAAI;AACxD;AACA;;AAEA;AACA;AACA,gDAAgD,IAAI;AACpD;AACA;;AAEA;;AAEA;AACA,kDAAkD,SAAS;AAC3D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kDAAkD,SAAS;AAC3D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,yCAAyC,QAAQ;AACjD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,sBAAsB,QAAQ;AAC9B;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4DAA4D,6BAA6B;;AAEzF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC;;AAEzC;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,IAAI,EAAE,IAAI,YAAY,UAAU,IAAI,IAAI,EAAE,GAAG;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iLAAiL,EAAE;AACnL,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uDAAuD;;AAEvD,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,0CAA0C,OAAO;AACjD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;;AAEtC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,WAAW,2CAA2C;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;;AAEA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA,mCAAmC;AACnC;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC;;AAEzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,OAAO,IAAI,WAAW,IAAI,SAAS;AACjE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW,GAAG,YAAY,EAAE,MAAM,KAAK,UAAU,EAAE,MAAM,KAAK,UAAU,EAAE,UAAU;;AAE1G;AACA;AACA,kBAAkB,IAAI,UAAU,OAAO,IAAI,IAAI,YAAY,OAAO;;AAElE;AACA,kBAAkB,IAAI,SAAS,OAAO,IAAI,IAAI,UAAU,OAAO;;AAE/D;AACA,kBAAkB,IAAI,SAAS,OAAO;;AAEtC;AACA,kBAAkB,IAAI,UAAU,OAAO;;AAEvC;AACA,kBAAkB,IAAI,UAAU,OAAO;;AAEvC;AACA,kBAAkB,IAAI,YAAY,OAAO;AACzC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,WAAW,GAAG,SAAS,OAAO,SAAS,GAAG,WAAW;AACpG,gDAAgD,OAAO;AACvD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gFAAgF;;AAEhF;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,wFAAwF;;AAExF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,WAAW,2CAA2C;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iLAAiL,EAAE;AACnL,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD,6BAA6B;AACnF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,kCAAkC,EAAE,SAAS,aAAa;AAC1D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,YAAY;AAChD;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR,qDAAqD,MAAM;AAC3D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,sCAAsC;AACrE,gCAAgC,sCAAsC;AACtE;;AAEA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,gCAAgC,gCAAgC;AAChE;;AAEA;AACA,yCAAyC,QAAQ;AACjD,0CAA0C,QAAQ;AAClD;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,IAAI;AACtB,mBAAmB,KAAK;AACxB;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,KAAK;AAC9B;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA,6BAA6B,WAAW;AACxC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6EAA6E,SAAS;AACtF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD,SAAS;AAC9D;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,QAAQ;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV,qEAAqE,QAAQ;AAC7E;AACA,QAAQ;AACR;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;;AAEA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,iDAAiD,OAAO;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wHAAwH,EAAE,OAAO,EAAE,SAAS,EAAE;AAC9I;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,gQAAgQ,wDAAwD,oDAAoD,wDAAwD;AACpa;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,8CAA8C;AAC9C;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,YAAY,EAAE,SAAS;AACpD,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,gBAAgB;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA,GAAG,iCAAiC;AACpC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAkD;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;;AAExC;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,+CAA+C,GAAG;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,OAAO;;AAEP;AACA;AACA,QAAQ;;AAER;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oEAAoE,GAAG;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,iEAAiE,GAAG;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,oEAAoE,GAAG;AACvE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2EAA2E,MAAM,IAAI,MAAM;AAC3F;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kEAAkE,MAAM,IAAI,EAAE;AAC9E;;AAEA;AACA,yEAAyE,MAAM,IAAI,EAAE;AACrF;;AAEA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,oBAAoB;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,sBAAsB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,0BAA0B;AAClD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oEAAoE,KAAK;AACzE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY;AACZ;AACA,kEAAkE,MAAM,MAAM,GAAG;AACjF,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;AACA;;AAEA;;AAEA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,sDAAsD,IAAI;AAC1D;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;AACN;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mFAAmF,IAAI;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,iFAAiF,IAAI;AACrF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iFAAiF,IAAI;AACrF;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA,mFAAmF,IAAI;AACvF;;AAEA;;AAEA;AACA,mFAAmF,OAAO;AAC1F;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+EAA+E,IAAI;AACnF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qDAAqD,WAAW;AAChE;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,uDAAuD,YAAY;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,gEAAgE,WAAW;AAC3E;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,OAAO;AACP;AACA;;;;AAIA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wCAAwC;AAC5F;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA,2DAA2D,aAAa;AACxE;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA,CAAC;;AAED;AACA,UAAU;AACV;AACA,CAAC;AACD;;;;;;UC7nzEA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,mBAAO,CAAC,GAAiB","sources":["webpack://pdfembedder-premium-secure/./node_modules/pdfjs-dist/build/pdf.worker.js","webpack://pdfembedder-premium-secure/webpack/bootstrap","webpack://pdfembedder-premium-secure/./node_modules/pdfjs-dist/build/pdf.worker.entry.js"],"sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = root.pdfjsWorker = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.WorkerTask = exports.WorkerMessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _pdf_manager = __w_pdfjs_require__(8);\n\nvar _cleanup_helper = __w_pdfjs_require__(71);\n\nvar _writer = __w_pdfjs_require__(65);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _message_handler = __w_pdfjs_require__(102);\n\nvar _worker_stream = __w_pdfjs_require__(103);\n\nclass WorkerTask {\n  constructor(name) {\n    this.name = name;\n    this.terminated = false;\n    this._capability = (0, _util.createPromiseCapability)();\n  }\n\n  get finished() {\n    return this._capability.promise;\n  }\n\n  finish() {\n    this._capability.resolve();\n  }\n\n  terminate() {\n    this.terminated = true;\n  }\n\n  ensureNotTerminated() {\n    if (this.terminated) {\n      throw new Error(\"Worker task was terminated\");\n    }\n  }\n\n}\n\nexports.WorkerTask = WorkerTask;\n\nclass WorkerMessageHandler {\n  static setup(handler, port) {\n    let testMessageProcessed = false;\n    handler.on(\"test\", function wphSetupTest(data) {\n      if (testMessageProcessed) {\n        return;\n      }\n\n      testMessageProcessed = true;\n      handler.send(\"test\", data instanceof Uint8Array);\n    });\n    handler.on(\"configure\", function wphConfigure(data) {\n      (0, _util.setVerbosityLevel)(data.verbosity);\n    });\n    handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n      return WorkerMessageHandler.createDocumentHandler(data, port);\n    });\n  }\n\n  static createDocumentHandler(docParams, port) {\n    let pdfManager;\n    let terminated = false;\n    let cancelXHRs = null;\n    const WorkerTasks = [];\n    const verbosity = (0, _util.getVerbosityLevel)();\n    const apiVersion = docParams.apiVersion;\n    const workerVersion = '2.16.105';\n\n    if (apiVersion !== workerVersion) {\n      throw new Error(`The API version \"${apiVersion}\" does not match ` + `the Worker version \"${workerVersion}\".`);\n    }\n\n    const enumerableProperties = [];\n\n    for (const property in []) {\n      enumerableProperties.push(property);\n    }\n\n    if (enumerableProperties.length) {\n      throw new Error(\"The `Array.prototype` contains unexpected enumerable properties: \" + enumerableProperties.join(\", \") + \"; thus breaking e.g. `for...in` iteration of `Array`s.\");\n    }\n\n    if (typeof ReadableStream === \"undefined\") {\n      const partialMsg = \"The browser/environment lacks native support for critical \" + \"functionality used by the PDF.js library (e.g. `ReadableStream`); \";\n\n      if (_is_node.isNodeJS) {\n        throw new Error(partialMsg + \"please use a `legacy`-build instead.\");\n      }\n\n      throw new Error(partialMsg + \"please update to a supported browser.\");\n    }\n\n    const docId = docParams.docId;\n    const docBaseUrl = docParams.docBaseUrl;\n    const workerHandlerName = docParams.docId + \"_worker\";\n    let handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);\n\n    function ensureNotTerminated() {\n      if (terminated) {\n        throw new Error(\"Worker was terminated\");\n      }\n    }\n\n    function startWorkerTask(task) {\n      WorkerTasks.push(task);\n    }\n\n    function finishWorkerTask(task) {\n      task.finish();\n      const i = WorkerTasks.indexOf(task);\n      WorkerTasks.splice(i, 1);\n    }\n\n    async function loadDocument(recoveryMode) {\n      await pdfManager.ensureDoc(\"checkHeader\");\n      await pdfManager.ensureDoc(\"parseStartXRef\");\n      await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n      await pdfManager.ensureDoc(\"checkFirstPage\", [recoveryMode]);\n      await pdfManager.ensureDoc(\"checkLastPage\", [recoveryMode]);\n      const isPureXfa = await pdfManager.ensureDoc(\"isPureXfa\");\n\n      if (isPureXfa) {\n        const task = new WorkerTask(\"loadXfaFonts\");\n        startWorkerTask(task);\n        await Promise.all([pdfManager.loadXfaFonts(handler, task).catch(reason => {}).then(() => finishWorkerTask(task)), pdfManager.loadXfaImages()]);\n      }\n\n      const [numPages, fingerprints] = await Promise.all([pdfManager.ensureDoc(\"numPages\"), pdfManager.ensureDoc(\"fingerprints\")]);\n      const htmlForXfa = isPureXfa ? await pdfManager.ensureDoc(\"htmlForXfa\") : null;\n      return {\n        numPages,\n        fingerprints,\n        htmlForXfa\n      };\n    }\n\n    function getPdfManager(data, evaluatorOptions, enableXfa) {\n      const pdfManagerCapability = (0, _util.createPromiseCapability)();\n      let newPdfManager;\n      const source = data.source;\n\n      if (source.data) {\n        try {\n          newPdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, handler, evaluatorOptions, enableXfa, docBaseUrl);\n          pdfManagerCapability.resolve(newPdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n\n        return pdfManagerCapability.promise;\n      }\n\n      let pdfStream,\n          cachedChunks = [];\n\n      try {\n        pdfStream = new _worker_stream.PDFWorkerStream(handler);\n      } catch (ex) {\n        pdfManagerCapability.reject(ex);\n        return pdfManagerCapability.promise;\n      }\n\n      const fullRequest = pdfStream.getFullReader();\n      fullRequest.headersReady.then(function () {\n        if (!fullRequest.isRangeSupported) {\n          return;\n        }\n\n        const disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n        newPdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n          msgHandler: handler,\n          password: source.password,\n          length: fullRequest.contentLength,\n          disableAutoFetch,\n          rangeChunkSize: source.rangeChunkSize\n        }, evaluatorOptions, enableXfa, docBaseUrl);\n\n        for (const chunk of cachedChunks) {\n          newPdfManager.sendProgressiveData(chunk);\n        }\n\n        cachedChunks = [];\n        pdfManagerCapability.resolve(newPdfManager);\n        cancelXHRs = null;\n      }).catch(function (reason) {\n        pdfManagerCapability.reject(reason);\n        cancelXHRs = null;\n      });\n      let loaded = 0;\n\n      const flushChunks = function () {\n        const pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n\n        if (source.length && pdfFile.length !== source.length) {\n          (0, _util.warn)(\"reported HTTP length is different from actual\");\n        }\n\n        try {\n          newPdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, handler, evaluatorOptions, enableXfa, docBaseUrl);\n          pdfManagerCapability.resolve(newPdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n\n        cachedChunks = [];\n      };\n\n      const readPromise = new Promise(function (resolve, reject) {\n        const readChunk = function ({\n          value,\n          done\n        }) {\n          try {\n            ensureNotTerminated();\n\n            if (done) {\n              if (!newPdfManager) {\n                flushChunks();\n              }\n\n              cancelXHRs = null;\n              return;\n            }\n\n            loaded += (0, _util.arrayByteLength)(value);\n\n            if (!fullRequest.isStreamingSupported) {\n              handler.send(\"DocProgress\", {\n                loaded,\n                total: Math.max(loaded, fullRequest.contentLength || 0)\n              });\n            }\n\n            if (newPdfManager) {\n              newPdfManager.sendProgressiveData(value);\n            } else {\n              cachedChunks.push(value);\n            }\n\n            fullRequest.read().then(readChunk, reject);\n          } catch (e) {\n            reject(e);\n          }\n        };\n\n        fullRequest.read().then(readChunk, reject);\n      });\n      readPromise.catch(function (e) {\n        pdfManagerCapability.reject(e);\n        cancelXHRs = null;\n      });\n\n      cancelXHRs = function (reason) {\n        pdfStream.cancelAllRequests(reason);\n      };\n\n      return pdfManagerCapability.promise;\n    }\n\n    function setupDoc(data) {\n      function onSuccess(doc) {\n        ensureNotTerminated();\n        handler.send(\"GetDoc\", {\n          pdfInfo: doc\n        });\n      }\n\n      function onFailure(ex) {\n        ensureNotTerminated();\n\n        if (ex instanceof _util.PasswordException) {\n          const task = new WorkerTask(`PasswordException: response ${ex.code}`);\n          startWorkerTask(task);\n          handler.sendWithPromise(\"PasswordRequest\", ex).then(function ({\n            password\n          }) {\n            finishWorkerTask(task);\n            pdfManager.updatePassword(password);\n            pdfManagerReady();\n          }).catch(function () {\n            finishWorkerTask(task);\n            handler.send(\"DocException\", ex);\n          });\n        } else if (ex instanceof _util.InvalidPDFException || ex instanceof _util.MissingPDFException || ex instanceof _util.UnexpectedResponseException || ex instanceof _util.UnknownErrorException) {\n          handler.send(\"DocException\", ex);\n        } else {\n          handler.send(\"DocException\", new _util.UnknownErrorException(ex.message, ex.toString()));\n        }\n      }\n\n      function pdfManagerReady() {\n        ensureNotTerminated();\n        loadDocument(false).then(onSuccess, function (reason) {\n          ensureNotTerminated();\n\n          if (!(reason instanceof _core_utils.XRefParseException)) {\n            onFailure(reason);\n            return;\n          }\n\n          pdfManager.requestLoadedStream();\n          pdfManager.onLoadedStream().then(function () {\n            ensureNotTerminated();\n            loadDocument(true).then(onSuccess, onFailure);\n          });\n        });\n      }\n\n      ensureNotTerminated();\n      const evaluatorOptions = {\n        maxImageSize: data.maxImageSize,\n        disableFontFace: data.disableFontFace,\n        ignoreErrors: data.ignoreErrors,\n        isEvalSupported: data.isEvalSupported,\n        fontExtraProperties: data.fontExtraProperties,\n        useSystemFonts: data.useSystemFonts,\n        cMapUrl: data.cMapUrl,\n        standardFontDataUrl: data.standardFontDataUrl\n      };\n      getPdfManager(data, evaluatorOptions, data.enableXfa).then(function (newPdfManager) {\n        if (terminated) {\n          newPdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n          throw new Error(\"Worker was terminated\");\n        }\n\n        pdfManager = newPdfManager;\n        pdfManager.onLoadedStream().then(function (stream) {\n          handler.send(\"DataLoaded\", {\n            length: stream.bytes.byteLength\n          });\n        });\n      }).then(pdfManagerReady, onFailure);\n    }\n\n    handler.on(\"GetPage\", function wphSetupGetPage(data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return Promise.all([pdfManager.ensure(page, \"rotate\"), pdfManager.ensure(page, \"ref\"), pdfManager.ensure(page, \"userUnit\"), pdfManager.ensure(page, \"view\")]).then(function ([rotate, ref, userUnit, view]) {\n          return {\n            rotate,\n            ref,\n            userUnit,\n            view\n          };\n        });\n      });\n    });\n    handler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data) {\n      const pageRef = _primitives.Ref.get(data.num, data.gen);\n\n      return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n    });\n    handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n      return pdfManager.ensureCatalog(\"destinations\");\n    });\n    handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n      return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n    });\n    handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n      return pdfManager.ensureCatalog(\"pageLabels\");\n    });\n    handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n      return pdfManager.ensureCatalog(\"pageLayout\");\n    });\n    handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n      return pdfManager.ensureCatalog(\"pageMode\");\n    });\n    handler.on(\"GetViewerPreferences\", function (data) {\n      return pdfManager.ensureCatalog(\"viewerPreferences\");\n    });\n    handler.on(\"GetOpenAction\", function (data) {\n      return pdfManager.ensureCatalog(\"openAction\");\n    });\n    handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n      return pdfManager.ensureCatalog(\"attachments\");\n    });\n    handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n      return pdfManager.ensureCatalog(\"javaScript\");\n    });\n    handler.on(\"GetDocJSActions\", function wphSetupGetDocJSActions(data) {\n      return pdfManager.ensureCatalog(\"jsActions\");\n    });\n    handler.on(\"GetPageJSActions\", function ({\n      pageIndex\n    }) {\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        return pdfManager.ensure(page, \"jsActions\");\n      });\n    });\n    handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n      return pdfManager.ensureCatalog(\"documentOutline\");\n    });\n    handler.on(\"GetOptionalContentConfig\", function (data) {\n      return pdfManager.ensureCatalog(\"optionalContentConfig\");\n    });\n    handler.on(\"GetPermissions\", function (data) {\n      return pdfManager.ensureCatalog(\"permissions\");\n    });\n    handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n      return Promise.all([pdfManager.ensureDoc(\"documentInfo\"), pdfManager.ensureCatalog(\"metadata\")]);\n    });\n    handler.on(\"GetMarkInfo\", function wphSetupGetMarkInfo(data) {\n      return pdfManager.ensureCatalog(\"markInfo\");\n    });\n    handler.on(\"GetData\", function wphSetupGetData(data) {\n      pdfManager.requestLoadedStream();\n      return pdfManager.onLoadedStream().then(function (stream) {\n        return stream.bytes;\n      });\n    });\n    handler.on(\"GetAnnotations\", function ({\n      pageIndex,\n      intent\n    }) {\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(`GetAnnotations: page ${pageIndex}`);\n        startWorkerTask(task);\n        return page.getAnnotationsData(handler, task, intent).then(data => {\n          finishWorkerTask(task);\n          return data;\n        }, reason => {\n          finishWorkerTask(task);\n        });\n      });\n    });\n    handler.on(\"GetFieldObjects\", function (data) {\n      return pdfManager.ensureDoc(\"fieldObjects\");\n    });\n    handler.on(\"HasJSActions\", function (data) {\n      return pdfManager.ensureDoc(\"hasJSActions\");\n    });\n    handler.on(\"GetCalculationOrderIds\", function (data) {\n      return pdfManager.ensureDoc(\"calculationOrderIds\");\n    });\n    handler.on(\"SaveDocument\", function ({\n      isPureXfa,\n      numPages,\n      annotationStorage,\n      filename\n    }) {\n      pdfManager.requestLoadedStream();\n      const newAnnotationsByPage = !isPureXfa ? (0, _core_utils.getNewAnnotationsMap)(annotationStorage) : null;\n      const promises = [pdfManager.onLoadedStream(), pdfManager.ensureCatalog(\"acroForm\"), pdfManager.ensureCatalog(\"acroFormRef\"), pdfManager.ensureDoc(\"xref\"), pdfManager.ensureDoc(\"startXRef\")];\n\n      if (newAnnotationsByPage) {\n        for (const [pageIndex, annotations] of newAnnotationsByPage) {\n          promises.push(pdfManager.getPage(pageIndex).then(page => {\n            const task = new WorkerTask(`Save (editor): page ${pageIndex}`);\n            return page.saveNewAnnotations(handler, task, annotations).finally(function () {\n              finishWorkerTask(task);\n            });\n          }));\n        }\n      }\n\n      if (isPureXfa) {\n        promises.push(pdfManager.serializeXfaData(annotationStorage));\n      } else {\n        for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n          promises.push(pdfManager.getPage(pageIndex).then(function (page) {\n            const task = new WorkerTask(`Save: page ${pageIndex}`);\n            return page.save(handler, task, annotationStorage).finally(function () {\n              finishWorkerTask(task);\n            });\n          }));\n        }\n      }\n\n      return Promise.all(promises).then(function ([stream, acroForm, acroFormRef, xref, startXRef, ...refs]) {\n        let newRefs = [];\n        let xfaData = null;\n\n        if (isPureXfa) {\n          xfaData = refs[0];\n\n          if (!xfaData) {\n            return stream.bytes;\n          }\n        } else {\n          newRefs = refs.flat(2);\n\n          if (newRefs.length === 0) {\n            return stream.bytes;\n          }\n        }\n\n        const xfa = acroForm instanceof _primitives.Dict && acroForm.get(\"XFA\") || null;\n        let xfaDatasetsRef = null;\n        let hasXfaDatasetsEntry = false;\n\n        if (Array.isArray(xfa)) {\n          for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n            if (xfa[i] === \"datasets\") {\n              xfaDatasetsRef = xfa[i + 1];\n              acroFormRef = null;\n              hasXfaDatasetsEntry = true;\n            }\n          }\n\n          if (xfaDatasetsRef === null) {\n            xfaDatasetsRef = xref.getNewRef();\n          }\n        } else if (xfa) {\n          acroFormRef = null;\n          (0, _util.warn)(\"Unsupported XFA type.\");\n        }\n\n        let newXrefInfo = Object.create(null);\n\n        if (xref.trailer) {\n          const infoObj = Object.create(null);\n          const xrefInfo = xref.trailer.get(\"Info\") || null;\n\n          if (xrefInfo instanceof _primitives.Dict) {\n            xrefInfo.forEach((key, value) => {\n              if (typeof value === \"string\") {\n                infoObj[key] = (0, _util.stringToPDFString)(value);\n              }\n            });\n          }\n\n          newXrefInfo = {\n            rootRef: xref.trailer.getRaw(\"Root\") || null,\n            encryptRef: xref.trailer.getRaw(\"Encrypt\") || null,\n            newRef: xref.getNewRef(),\n            infoRef: xref.trailer.getRaw(\"Info\") || null,\n            info: infoObj,\n            fileIds: xref.trailer.get(\"ID\") || null,\n            startXRef,\n            filename\n          };\n        }\n\n        xref.resetNewRef();\n        return (0, _writer.incrementalUpdate)({\n          originalData: stream.bytes,\n          xrefInfo: newXrefInfo,\n          newRefs,\n          xref,\n          hasXfa: !!xfa,\n          xfaDatasetsRef,\n          hasXfaDatasetsEntry,\n          acroFormRef,\n          acroForm,\n          xfaData\n        });\n      });\n    });\n    handler.on(\"GetOperatorList\", function wphSetupRenderPage(data, sink) {\n      const pageIndex = data.pageIndex;\n      pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n        startWorkerTask(task);\n        const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n        page.getOperatorList({\n          handler,\n          sink,\n          task,\n          intent: data.intent,\n          cacheKey: data.cacheKey,\n          annotationStorage: data.annotationStorage\n        }).then(function (operatorListInfo) {\n          finishWorkerTask(task);\n\n          if (start) {\n            (0, _util.info)(`page=${pageIndex + 1} - getOperatorList: time=` + `${Date.now() - start}ms, len=${operatorListInfo.length}`);\n          }\n\n          sink.close();\n        }, function (reason) {\n          finishWorkerTask(task);\n\n          if (task.terminated) {\n            return;\n          }\n\n          handler.send(\"UnsupportedFeature\", {\n            featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n          });\n          sink.error(reason);\n        });\n      });\n    });\n    handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n      const pageIndex = data.pageIndex;\n      pdfManager.getPage(pageIndex).then(function (page) {\n        const task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n        startWorkerTask(task);\n        const start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;\n        page.extractTextContent({\n          handler,\n          task,\n          sink,\n          includeMarkedContent: data.includeMarkedContent,\n          combineTextItems: data.combineTextItems\n        }).then(function () {\n          finishWorkerTask(task);\n\n          if (start) {\n            (0, _util.info)(`page=${pageIndex + 1} - getTextContent: time=` + `${Date.now() - start}ms`);\n          }\n\n          sink.close();\n        }, function (reason) {\n          finishWorkerTask(task);\n\n          if (task.terminated) {\n            return;\n          }\n\n          sink.error(reason);\n        });\n      });\n    });\n    handler.on(\"GetStructTree\", function wphGetStructTree(data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return pdfManager.ensure(page, \"getStructTree\");\n      });\n    });\n    handler.on(\"FontFallback\", function (data) {\n      return pdfManager.fontFallback(data.id, handler);\n    });\n    handler.on(\"Cleanup\", function wphCleanup(data) {\n      return pdfManager.cleanup(true);\n    });\n    handler.on(\"Terminate\", function wphTerminate(data) {\n      terminated = true;\n      const waitOn = [];\n\n      if (pdfManager) {\n        pdfManager.terminate(new _util.AbortException(\"Worker was terminated.\"));\n        const cleanupPromise = pdfManager.cleanup();\n        waitOn.push(cleanupPromise);\n        pdfManager = null;\n      } else {\n        (0, _cleanup_helper.clearGlobalCaches)();\n      }\n\n      if (cancelXHRs) {\n        cancelXHRs(new _util.AbortException(\"Worker was terminated.\"));\n      }\n\n      for (const task of WorkerTasks) {\n        waitOn.push(task.finished);\n        task.terminate();\n      }\n\n      return Promise.all(waitOn).then(function () {\n        handler.destroy();\n        handler = null;\n      });\n    });\n    handler.on(\"Ready\", function wphReady(data) {\n      setupDoc(docParams);\n      docParams = null;\n    });\n    return workerHandlerName;\n  }\n\n  static initializeFromPort(port) {\n    const handler = new _message_handler.MessageHandler(\"worker\", \"main\", port);\n    WorkerMessageHandler.setup(handler, port);\n    handler.send(\"ready\", null);\n  }\n\n}\n\nexports.WorkerMessageHandler = WorkerMessageHandler;\n\nfunction isMessagePort(maybePort) {\n  return typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort;\n}\n\nif (typeof window === \"undefined\" && !_is_node.isNodeJS && typeof self !== \"undefined\" && isMessagePort(self)) {\n  WorkerMessageHandler.initializeFromPort(self);\n}\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isAscii = isAscii;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF16BEString = stringToUTF16BEString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\n\n__w_pdfjs_require__(3);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst RenderingIntentFlag = {\n  ANY: 0x01,\n  DISPLAY: 0x02,\n  PRINT: 0x04,\n  ANNOTATIONS_FORMS: 0x10,\n  ANNOTATIONS_STORAGE: 0x20,\n  ANNOTATIONS_DISABLE: 0x40,\n  OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n  DISABLE: -1,\n  NONE: 0,\n  FREETEXT: 3,\n  INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n  FREETEXT_SIZE: 1,\n  FREETEXT_COLOR: 2,\n  FREETEXT_OPACITY: 3,\n  INK_COLOR: 11,\n  INK_THICKNESS: 12,\n  INK_OPACITY: 13\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n  MARKED: \"Marked\",\n  REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n  MARKED: \"Marked\",\n  UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n  ACCEPTED: \"Accepted\",\n  REJECTED: \"Rejected\",\n  CANCELLED: \"Cancelled\",\n  COMPLETED: \"Completed\",\n  NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n  E: \"Mouse Enter\",\n  X: \"Mouse Exit\",\n  D: \"Mouse Down\",\n  U: \"Mouse Up\",\n  Fo: \"Focus\",\n  Bl: \"Blur\",\n  PO: \"PageOpen\",\n  PC: \"PageClose\",\n  PV: \"PageVisible\",\n  PI: \"PageInvisible\",\n  K: \"Keystroke\",\n  F: \"Format\",\n  V: \"Validate\",\n  C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n  WC: \"WillClose\",\n  WS: \"WillSave\",\n  DS: \"DidSave\",\n  WP: \"WillPrint\",\n  DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n  O: \"PageOpen\",\n  C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst StreamType = {\n  UNKNOWN: \"UNKNOWN\",\n  FLATE: \"FLATE\",\n  LZW: \"LZW\",\n  DCT: \"DCT\",\n  JPX: \"JPX\",\n  JBIG: \"JBIG\",\n  A85: \"A85\",\n  AHX: \"AHX\",\n  CCF: \"CCF\",\n  RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nconst FontType = {\n  UNKNOWN: \"UNKNOWN\",\n  TYPE1: \"TYPE1\",\n  TYPE1STANDARD: \"TYPE1STANDARD\",\n  TYPE1C: \"TYPE1C\",\n  CIDFONTTYPE0: \"CIDFONTTYPE0\",\n  CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n  TRUETYPE: \"TRUETYPE\",\n  CIDFONTTYPE2: \"CIDFONTTYPE2\",\n  TYPE3: \"TYPE3\",\n  OPENTYPE: \"OPENTYPE\",\n  TYPE0: \"TYPE0\",\n  MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  beginAnnotations: 78,\n  endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n  unknown: \"unknown\",\n  forms: \"forms\",\n  javaScript: \"javaScript\",\n  signatures: \"signatures\",\n  smask: \"smask\",\n  shadingPattern: \"shadingPattern\",\n  font: \"font\",\n  errorTilingPattern: \"errorTilingPattern\",\n  errorExtGState: \"errorExtGState\",\n  errorXObject: \"errorXObject\",\n  errorFontLoadType3: \"errorFontLoadType3\",\n  errorFontState: \"errorFontState\",\n  errorFontMissing: \"errorFontMissing\",\n  errorFontTranslate: \"errorFontTranslate\",\n  errorColorSpace: \"errorColorSpace\",\n  errorOperatorList: \"errorOperatorList\",\n  errorFontToUnicode: \"errorFontToUnicode\",\n  errorFontLoadNative: \"errorFontLoadNative\",\n  errorFontBuildPath: \"errorFontBuildPath\",\n  errorFontGetPath: \"errorFontGetPath\",\n  errorMarkedContent: \"errorMarkedContent\",\n  errorContentSubStream: \"errorContentSubStream\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log(`Info: ${msg}`);\n  }\n}\n\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n\n  switch (url.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n  if (!url) {\n    return null;\n  }\n\n  try {\n    if (options && typeof url === \"string\") {\n      if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n        const dots = url.match(/\\./g);\n\n        if (dots && dots.length >= 2) {\n          url = `http://${url}`;\n        }\n      }\n\n      if (options.tryConvertEncoding) {\n        try {\n          url = stringToUTF8String(url);\n        } catch (ex) {}\n      }\n    }\n\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) {}\n\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: true,\n    configurable: true,\n    writable: false\n  });\n  return value;\n}\n\nconst BaseException = function BaseExceptionClosure() {\n  function BaseException(message, name) {\n    if (this.constructor === BaseException) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n\n    this.message = message;\n    this.name = name;\n  }\n\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n  return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg, \"PasswordException\");\n    this.code = code;\n  }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg, \"UnknownErrorException\");\n    this.details = details;\n  }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"InvalidPDFException\");\n  }\n\n}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"MissingPDFException\");\n  }\n\n}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n  constructor(msg, status) {\n    super(msg, \"UnexpectedResponseException\");\n    this.status = status;\n  }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {\n  constructor(msg) {\n    super(msg, \"FormatError\");\n  }\n\n}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {\n  constructor(msg) {\n    super(msg, \"AbortException\");\n  }\n\n}\n\nexports.AbortException = AbortException;\n\nfunction bytesToString(bytes) {\n  if (typeof bytes !== \"object\" || bytes === null || bytes.length === undefined) {\n    unreachable(\"Invalid argument for bytesToString\");\n  }\n\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n\n  const strBuf = [];\n\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n\n  return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n  if (typeof str !== \"string\") {\n    unreachable(\"Invalid argument for stringToBytes\");\n  }\n\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n\n  return bytes;\n}\n\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n\n  if (arr.byteLength !== undefined) {\n    return arr.byteLength;\n  }\n\n  unreachable(\"Invalid argument for arrayByteLength\");\n}\n\nfunction arraysToBytes(arr) {\n  const length = arr.length;\n\n  if (length === 1 && arr[0] instanceof Uint8Array) {\n    return arr[0];\n  }\n\n  let resultLength = 0;\n\n  for (let i = 0; i < length; i++) {\n    resultLength += arrayByteLength(arr[i]);\n  }\n\n  let pos = 0;\n  const data = new Uint8Array(resultLength);\n\n  for (let i = 0; i < length; i++) {\n    let item = arr[i];\n\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === \"string\") {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n\n    const itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n\n  return data;\n}\n\nfunction string32(value) {\n  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction objectSize(obj) {\n  return Object.keys(obj).length;\n}\n\nfunction objectFromMap(map) {\n  const obj = Object.create(null);\n\n  for (const [key, value] of map) {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\n\nfunction isEvalSupported() {\n  try {\n    new Function(\"\");\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nclass FeatureTest {\n  static get isLittleEndian() {\n    return shadow(this, \"isLittleEndian\", isLittleEndian());\n  }\n\n  static get isEvalSupported() {\n    return shadow(this, \"isEvalSupported\", isEvalSupported());\n  }\n\n  static get isOffscreenCanvasSupported() {\n    return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n  }\n\n}\n\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\n\nclass Util {\n  static makeHexColor(r, g, b) {\n    return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n  }\n\n  static scaleMinMax(transform, minMax) {\n    let temp;\n\n    if (transform[0]) {\n      if (transform[0] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n\n      minMax[0] *= transform[0];\n      minMax[1] *= transform[0];\n\n      if (transform[3] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n\n      minMax[2] *= transform[3];\n      minMax[3] *= transform[3];\n    } else {\n      temp = minMax[0];\n      minMax[0] = minMax[2];\n      minMax[2] = temp;\n      temp = minMax[1];\n      minMax[1] = minMax[3];\n      minMax[3] = temp;\n\n      if (transform[1] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n\n      minMax[2] *= transform[1];\n      minMax[3] *= transform[1];\n\n      if (transform[2] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n\n      minMax[0] *= transform[2];\n      minMax[1] *= transform[2];\n    }\n\n    minMax[0] += transform[4];\n    minMax[1] += transform[4];\n    minMax[2] += transform[5];\n    minMax[3] += transform[5];\n  }\n\n  static transform(m1, m2) {\n    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]];\n  }\n\n  static applyTransform(p, m) {\n    const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  }\n\n  static applyInverseTransform(p, m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  }\n\n  static getAxialAlignedBoundingBox(r, m) {\n    const p1 = Util.applyTransform(r, m);\n    const p2 = Util.applyTransform(r.slice(2, 4), m);\n    const p3 = Util.applyTransform([r[0], r[3]], m);\n    const p4 = Util.applyTransform([r[2], r[1]], m);\n    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])];\n  }\n\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    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];\n  }\n\n  static apply3dTransform(m, v) {\n    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]];\n  }\n\n  static singularValueDecompose2dScale(m) {\n    const transpose = [m[0], m[2], m[1], m[3]];\n    const a = m[0] * transpose[0] + m[1] * transpose[2];\n    const b = m[0] * transpose[1] + m[1] * transpose[3];\n    const c = m[2] * transpose[0] + m[3] * transpose[2];\n    const d = m[2] * transpose[1] + m[3] * transpose[3];\n    const first = (a + d) / 2;\n    const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n    const sx = first + second || 1;\n    const sy = first - second || 1;\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  }\n\n  static normalizeRect(rect) {\n    const r = rect.slice(0);\n\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n\n    return r;\n  }\n\n  static intersect(rect1, rect2) {\n    const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n    const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n\n    if (xLow > xHigh) {\n      return null;\n    }\n\n    const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n    const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n\n    if (yLow > yHigh) {\n      return null;\n    }\n\n    return [xLow, yLow, xHigh, yHigh];\n  }\n\n  static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n    const tvalues = [],\n          bounds = [[], []];\n    let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n    for (let i = 0; i < 2; ++i) {\n      if (i === 0) {\n        b = 6 * x0 - 12 * x1 + 6 * x2;\n        a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n        c = 3 * x1 - 3 * x0;\n      } else {\n        b = 6 * y0 - 12 * y1 + 6 * y2;\n        a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n        c = 3 * y1 - 3 * y0;\n      }\n\n      if (Math.abs(a) < 1e-12) {\n        if (Math.abs(b) < 1e-12) {\n          continue;\n        }\n\n        t = -c / b;\n\n        if (0 < t && t < 1) {\n          tvalues.push(t);\n        }\n\n        continue;\n      }\n\n      b2ac = b * b - 4 * c * a;\n      sqrtb2ac = Math.sqrt(b2ac);\n\n      if (b2ac < 0) {\n        continue;\n      }\n\n      t1 = (-b + sqrtb2ac) / (2 * a);\n\n      if (0 < t1 && t1 < 1) {\n        tvalues.push(t1);\n      }\n\n      t2 = (-b - sqrtb2ac) / (2 * a);\n\n      if (0 < t2 && t2 < 1) {\n        tvalues.push(t2);\n      }\n    }\n\n    let j = tvalues.length,\n        mt;\n    const jlen = j;\n\n    while (j--) {\n      t = tvalues[j];\n      mt = 1 - t;\n      bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n      bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n    }\n\n    bounds[0][jlen] = x0;\n    bounds[1][jlen] = y0;\n    bounds[0][jlen + 1] = x3;\n    bounds[1][jlen + 1] = y3;\n    bounds[0].length = bounds[1].length = jlen + 2;\n    return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n  }\n\n}\n\nexports.Util = Util;\nconst 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, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\n\nfunction stringToPDFString(str) {\n  if (str[0] >= \"\\xEF\") {\n    let encoding;\n\n    if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n      encoding = \"utf-16be\";\n    } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n      encoding = \"utf-16le\";\n    } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n      encoding = \"utf-8\";\n    }\n\n    if (encoding) {\n      try {\n        const decoder = new TextDecoder(encoding, {\n          fatal: true\n        });\n        const buffer = stringToBytes(str);\n        return decoder.decode(buffer);\n      } catch (ex) {\n        warn(`stringToPDFString: \"${ex}\".`);\n      }\n    }\n  }\n\n  const strBuf = [];\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const code = PDFStringTranslateTable[str.charCodeAt(i)];\n    strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n  }\n\n  return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n  return str.replace(/([()\\\\\\n\\r])/g, match => {\n    if (match === \"\\n\") {\n      return \"\\\\n\";\n    } else if (match === \"\\r\") {\n      return \"\\\\r\";\n    }\n\n    return `\\\\${match}`;\n  });\n}\n\nfunction isAscii(str) {\n  return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n  const buf = [\"\\xFE\\xFF\"];\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n    buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));\n  }\n\n  return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n\n  for (let i = 0, ii = arr1.length; i < ii; i++) {\n    if (arr1[i] !== arr2[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n  const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n  return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n  const capability = Object.create(null);\n  let isSettled = false;\n  Object.defineProperty(capability, \"settled\", {\n    get() {\n      return isSettled;\n    }\n\n  });\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = function (data) {\n      isSettled = true;\n      resolve(data);\n    };\n\n    capability.reject = function (reason) {\n      isSettled = true;\n      reject(reason);\n    };\n  });\n  return capability;\n}\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\n\nvar _is_node = __w_pdfjs_require__(4);\n\n;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.EOF = exports.Dict = exports.Cmd = exports.CIRCULAR_REF = void 0;\nexports.clearPrimitiveCaches = clearPrimitiveCaches;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isName = isName;\nexports.isRefsEqual = isRefsEqual;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nexports.CIRCULAR_REF = CIRCULAR_REF;\nconst EOF = Symbol(\"EOF\");\nexports.EOF = EOF;\n\nconst Name = function NameClosure() {\n  let nameCache = Object.create(null);\n\n  class Name {\n    constructor(name) {\n      this.name = name;\n    }\n\n    static get(name) {\n      return nameCache[name] || (nameCache[name] = new Name(name));\n    }\n\n    static _clearCache() {\n      nameCache = Object.create(null);\n    }\n\n  }\n\n  return Name;\n}();\n\nexports.Name = Name;\n\nconst Cmd = function CmdClosure() {\n  let cmdCache = Object.create(null);\n\n  class Cmd {\n    constructor(cmd) {\n      this.cmd = cmd;\n    }\n\n    static get(cmd) {\n      return cmdCache[cmd] || (cmdCache[cmd] = new Cmd(cmd));\n    }\n\n    static _clearCache() {\n      cmdCache = Object.create(null);\n    }\n\n  }\n\n  return Cmd;\n}();\n\nexports.Cmd = Cmd;\n\nconst nonSerializable = function nonSerializableClosure() {\n  return nonSerializable;\n};\n\nclass Dict {\n  constructor(xref = null) {\n    this._map = Object.create(null);\n    this.xref = xref;\n    this.objId = null;\n    this.suppressEncryption = false;\n    this.__nonSerializable__ = nonSerializable;\n  }\n\n  assignXref(newXref) {\n    this.xref = newXref;\n  }\n\n  get size() {\n    return Object.keys(this._map).length;\n  }\n\n  get(key1, key2, key3) {\n    let value = this._map[key1];\n\n    if (value === undefined && key2 !== undefined) {\n      value = this._map[key2];\n\n      if (value === undefined && key3 !== undefined) {\n        value = this._map[key3];\n      }\n    }\n\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetch(value, this.suppressEncryption);\n    }\n\n    return value;\n  }\n\n  async getAsync(key1, key2, key3) {\n    let value = this._map[key1];\n\n    if (value === undefined && key2 !== undefined) {\n      value = this._map[key2];\n\n      if (value === undefined && key3 !== undefined) {\n        value = this._map[key3];\n      }\n    }\n\n    if (value instanceof Ref && this.xref) {\n      return this.xref.fetchAsync(value, this.suppressEncryption);\n    }\n\n    return value;\n  }\n\n  getArray(key1, key2, key3) {\n    let value = this._map[key1];\n\n    if (value === undefined && key2 !== undefined) {\n      value = this._map[key2];\n\n      if (value === undefined && key3 !== undefined) {\n        value = this._map[key3];\n      }\n    }\n\n    if (value instanceof Ref && this.xref) {\n      value = this.xref.fetch(value, this.suppressEncryption);\n    }\n\n    if (Array.isArray(value)) {\n      value = value.slice();\n\n      for (let i = 0, ii = value.length; i < ii; i++) {\n        if (value[i] instanceof Ref && this.xref) {\n          value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n        }\n      }\n    }\n\n    return value;\n  }\n\n  getRaw(key) {\n    return this._map[key];\n  }\n\n  getKeys() {\n    return Object.keys(this._map);\n  }\n\n  getRawValues() {\n    return Object.values(this._map);\n  }\n\n  set(key, value) {\n    this._map[key] = value;\n  }\n\n  has(key) {\n    return this._map[key] !== undefined;\n  }\n\n  forEach(callback) {\n    for (const key in this._map) {\n      callback(key, this.get(key));\n    }\n  }\n\n  static get empty() {\n    const emptyDict = new Dict(null);\n\n    emptyDict.set = (key, value) => {\n      (0, _util.unreachable)(\"Should not call `set` on the empty dictionary.\");\n    };\n\n    return (0, _util.shadow)(this, \"empty\", emptyDict);\n  }\n\n  static merge({\n    xref,\n    dictArray,\n    mergeSubDicts = false\n  }) {\n    const mergedDict = new Dict(xref),\n          properties = new Map();\n\n    for (const dict of dictArray) {\n      if (!(dict instanceof Dict)) {\n        continue;\n      }\n\n      for (const [key, value] of Object.entries(dict._map)) {\n        let property = properties.get(key);\n\n        if (property === undefined) {\n          property = [];\n          properties.set(key, property);\n        } else if (!mergeSubDicts || !(value instanceof Dict)) {\n          continue;\n        }\n\n        property.push(value);\n      }\n    }\n\n    for (const [name, values] of properties) {\n      if (values.length === 1 || !(values[0] instanceof Dict)) {\n        mergedDict._map[name] = values[0];\n        continue;\n      }\n\n      const subDict = new Dict(xref);\n\n      for (const dict of values) {\n        for (const [key, value] of Object.entries(dict._map)) {\n          if (subDict._map[key] === undefined) {\n            subDict._map[key] = value;\n          }\n        }\n      }\n\n      if (subDict.size > 0) {\n        mergedDict._map[name] = subDict;\n      }\n    }\n\n    properties.clear();\n    return mergedDict.size > 0 ? mergedDict : Dict.empty;\n  }\n\n}\n\nexports.Dict = Dict;\n\nconst Ref = function RefClosure() {\n  let refCache = Object.create(null);\n\n  class Ref {\n    constructor(num, gen) {\n      this.num = num;\n      this.gen = gen;\n    }\n\n    toString() {\n      if (this.gen === 0) {\n        return `${this.num}R`;\n      }\n\n      return `${this.num}R${this.gen}`;\n    }\n\n    static get(num, gen) {\n      const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n      return refCache[key] || (refCache[key] = new Ref(num, gen));\n    }\n\n    static _clearCache() {\n      refCache = Object.create(null);\n    }\n\n  }\n\n  return Ref;\n}();\n\nexports.Ref = Ref;\n\nclass RefSet {\n  constructor(parent = null) {\n    this._set = new Set(parent && parent._set);\n  }\n\n  has(ref) {\n    return this._set.has(ref.toString());\n  }\n\n  put(ref) {\n    this._set.add(ref.toString());\n  }\n\n  remove(ref) {\n    this._set.delete(ref.toString());\n  }\n\n  [Symbol.iterator]() {\n    return this._set.values();\n  }\n\n  clear() {\n    this._set.clear();\n  }\n\n}\n\nexports.RefSet = RefSet;\n\nclass RefSetCache {\n  constructor() {\n    this._map = new Map();\n  }\n\n  get size() {\n    return this._map.size;\n  }\n\n  get(ref) {\n    return this._map.get(ref.toString());\n  }\n\n  has(ref) {\n    return this._map.has(ref.toString());\n  }\n\n  put(ref, obj) {\n    this._map.set(ref.toString(), obj);\n  }\n\n  putAlias(ref, aliasRef) {\n    this._map.set(ref.toString(), this.get(aliasRef));\n  }\n\n  [Symbol.iterator]() {\n    return this._map.values();\n  }\n\n  clear() {\n    this._map.clear();\n  }\n\n}\n\nexports.RefSetCache = RefSetCache;\n\nfunction isName(v, name) {\n  return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n  return v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type));\n}\n\nfunction isRefsEqual(v1, v2) {\n  return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction clearPrimitiveCaches() {\n  Cmd._clearCache();\n\n  Name._clearCache();\n\n  Ref._clearCache();\n}\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XRefParseException = exports.XRefEntryException = exports.ParserEOFException = exports.MissingDataException = exports.DocStats = void 0;\nexports.collectActions = collectActions;\nexports.encodeToXmlString = encodeToXmlString;\nexports.escapePDFName = escapePDFName;\nexports.getArrayLookupTableFactory = getArrayLookupTableFactory;\nexports.getInheritableProperty = getInheritableProperty;\nexports.getLookupTableFactory = getLookupTableFactory;\nexports.getNewAnnotationsMap = getNewAnnotationsMap;\nexports.isWhiteSpace = isWhiteSpace;\nexports.log2 = log2;\nexports.numberToString = numberToString;\nexports.parseXFAPath = parseXFAPath;\nexports.readInt8 = readInt8;\nexports.readUint16 = readUint16;\nexports.readUint32 = readUint32;\nexports.recoverJsURL = recoverJsURL;\nexports.toRomanNumerals = toRomanNumerals;\nexports.validateCSSFont = validateCSSFont;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nfunction getLookupTableFactory(initializer) {\n  let lookup;\n  return function () {\n    if (initializer) {\n      lookup = Object.create(null);\n      initializer(lookup);\n      initializer = null;\n    }\n\n    return lookup;\n  };\n}\n\nfunction getArrayLookupTableFactory(initializer) {\n  let lookup;\n  return function () {\n    if (initializer) {\n      let arr = initializer();\n      initializer = null;\n      lookup = Object.create(null);\n\n      for (let i = 0, ii = arr.length; i < ii; i += 2) {\n        lookup[arr[i]] = arr[i + 1];\n      }\n\n      arr = null;\n    }\n\n    return lookup;\n  };\n}\n\nclass MissingDataException extends _util.BaseException {\n  constructor(begin, end) {\n    super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n    this.begin = begin;\n    this.end = end;\n  }\n\n}\n\nexports.MissingDataException = MissingDataException;\n\nclass ParserEOFException extends _util.BaseException {\n  constructor(msg) {\n    super(msg, \"ParserEOFException\");\n  }\n\n}\n\nexports.ParserEOFException = ParserEOFException;\n\nclass XRefEntryException extends _util.BaseException {\n  constructor(msg) {\n    super(msg, \"XRefEntryException\");\n  }\n\n}\n\nexports.XRefEntryException = XRefEntryException;\n\nclass XRefParseException extends _util.BaseException {\n  constructor(msg) {\n    super(msg, \"XRefParseException\");\n  }\n\n}\n\nexports.XRefParseException = XRefParseException;\n\nclass DocStats {\n  constructor(handler) {\n    this._handler = handler;\n    this._streamTypes = new Set();\n    this._fontTypes = new Set();\n  }\n\n  _send() {\n    const streamTypes = Object.create(null),\n          fontTypes = Object.create(null);\n\n    for (const type of this._streamTypes) {\n      streamTypes[type] = true;\n    }\n\n    for (const type of this._fontTypes) {\n      fontTypes[type] = true;\n    }\n\n    this._handler.send(\"DocStats\", {\n      streamTypes,\n      fontTypes\n    });\n  }\n\n  addStreamType(type) {\n    if (this._streamTypes.has(type)) {\n      return;\n    }\n\n    this._streamTypes.add(type);\n\n    this._send();\n  }\n\n  addFontType(type) {\n    if (this._fontTypes.has(type)) {\n      return;\n    }\n\n    this._fontTypes.add(type);\n\n    this._send();\n  }\n\n}\n\nexports.DocStats = DocStats;\n\nfunction getInheritableProperty({\n  dict,\n  key,\n  getArray = false,\n  stopWhenFound = true\n}) {\n  let values;\n  const visited = new _primitives.RefSet();\n\n  while (dict instanceof _primitives.Dict && !(dict.objId && visited.has(dict.objId))) {\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n\n    const value = getArray ? dict.getArray(key) : dict.get(key);\n\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n\n      if (!values) {\n        values = [];\n      }\n\n      values.push(value);\n    }\n\n    dict = dict.get(\"Parent\");\n  }\n\n  return values;\n}\n\nconst ROMAN_NUMBER_MAP = [\"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\", \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\", \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"];\n\nfunction toRomanNumerals(number, lowerCase = false) {\n  (0, _util.assert)(Number.isInteger(number) && number > 0, \"The number should be a positive integer.\");\n  const romanBuf = [];\n  let pos;\n\n  while (number >= 1000) {\n    number -= 1000;\n    romanBuf.push(\"M\");\n  }\n\n  pos = number / 100 | 0;\n  number %= 100;\n  romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n  pos = number / 10 | 0;\n  number %= 10;\n  romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n  romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n  const romanStr = romanBuf.join(\"\");\n  return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\nfunction log2(x) {\n  if (x <= 0) {\n    return 0;\n  }\n\n  return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n  return data[offset] << 24 >> 24;\n}\n\nfunction readUint16(data, offset) {\n  return data[offset] << 8 | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n  return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction isWhiteSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\nfunction parseXFAPath(path) {\n  const positionPattern = /(.+)\\[(\\d+)\\]$/;\n  return path.split(\".\").map(component => {\n    const m = component.match(positionPattern);\n\n    if (m) {\n      return {\n        name: m[1],\n        pos: parseInt(m[2], 10)\n      };\n    }\n\n    return {\n      name: component,\n      pos: 0\n    };\n  });\n}\n\nfunction escapePDFName(str) {\n  const buffer = [];\n  let start = 0;\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.charCodeAt(i);\n\n    if (char < 0x21 || char > 0x7e || char === 0x23 || char === 0x28 || char === 0x29 || char === 0x3c || char === 0x3e || char === 0x5b || char === 0x5d || char === 0x7b || char === 0x7d || char === 0x2f || char === 0x25) {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n\n      buffer.push(`#${char.toString(16)}`);\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n\n  return buffer.join(\"\");\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n  if (!entry) {\n    return;\n  }\n\n  let parent = null;\n\n  if (entry instanceof _primitives.Ref) {\n    if (parents.has(entry)) {\n      return;\n    }\n\n    parent = entry;\n    parents.put(parent);\n    entry = xref.fetch(entry);\n  }\n\n  if (Array.isArray(entry)) {\n    for (const element of entry) {\n      _collectJS(element, xref, list, parents);\n    }\n  } else if (entry instanceof _primitives.Dict) {\n    if ((0, _primitives.isName)(entry.get(\"S\"), \"JavaScript\")) {\n      const js = entry.get(\"JS\");\n      let code;\n\n      if (js instanceof _base_stream.BaseStream) {\n        code = js.getString();\n      } else if (typeof js === \"string\") {\n        code = js;\n      }\n\n      code = code && (0, _util.stringToPDFString)(code).replace(/\\u0000/g, \"\");\n\n      if (code) {\n        list.push(code);\n      }\n    }\n\n    _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n  }\n\n  if (parent) {\n    parents.remove(parent);\n  }\n}\n\nfunction collectActions(xref, dict, eventType) {\n  const actions = Object.create(null);\n  const additionalActionsDicts = getInheritableProperty({\n    dict,\n    key: \"AA\",\n    stopWhenFound: false\n  });\n\n  if (additionalActionsDicts) {\n    for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n      const additionalActions = additionalActionsDicts[i];\n\n      if (!(additionalActions instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      for (const key of additionalActions.getKeys()) {\n        const action = eventType[key];\n\n        if (!action) {\n          continue;\n        }\n\n        const actionDict = additionalActions.getRaw(key);\n        const parents = new _primitives.RefSet();\n        const list = [];\n\n        _collectJS(actionDict, xref, list, parents);\n\n        if (list.length > 0) {\n          actions[action] = list;\n        }\n      }\n    }\n  }\n\n  if (dict.has(\"A\")) {\n    const actionDict = dict.get(\"A\");\n    const parents = new _primitives.RefSet();\n    const list = [];\n\n    _collectJS(actionDict, xref, list, parents);\n\n    if (list.length > 0) {\n      actions.Action = list;\n    }\n  }\n\n  return (0, _util.objectSize)(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n  0x3c: \"&lt;\",\n  0x3e: \"&gt;\",\n  0x26: \"&amp;\",\n  0x22: \"&quot;\",\n  0x27: \"&apos;\"\n};\n\nfunction encodeToXmlString(str) {\n  const buffer = [];\n  let start = 0;\n\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const char = str.codePointAt(i);\n\n    if (0x20 <= char && char <= 0x7e) {\n      const entity = XMLEntities[char];\n\n      if (entity) {\n        if (start < i) {\n          buffer.push(str.substring(start, i));\n        }\n\n        buffer.push(entity);\n        start = i + 1;\n      }\n    } else {\n      if (start < i) {\n        buffer.push(str.substring(start, i));\n      }\n\n      buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n\n      if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n        i++;\n      }\n\n      start = i + 1;\n    }\n  }\n\n  if (buffer.length === 0) {\n    return str;\n  }\n\n  if (start < str.length) {\n    buffer.push(str.substring(start, str.length));\n  }\n\n  return buffer.join(\"\");\n}\n\nfunction validateCSSFont(cssFontInfo) {\n  const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n  const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n  const CSS_FONT_WEIGHT_VALUES = new Set([\"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\", \"1000\", \"normal\", \"bold\", \"bolder\", \"lighter\"]);\n  const {\n    fontFamily,\n    fontWeight,\n    italicAngle\n  } = cssFontInfo;\n\n  if (/^\".*\"$/.test(fontFamily)) {\n    if (/[^\\\\]\"/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n      (0, _util.warn)(`XFA - FontFamily contains some unescaped \": ${fontFamily}.`);\n      return false;\n    }\n  } else if (/^'.*'$/.test(fontFamily)) {\n    if (/[^\\\\]'/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n      (0, _util.warn)(`XFA - FontFamily contains some unescaped ': ${fontFamily}.`);\n      return false;\n    }\n  } else {\n    for (const ident of fontFamily.split(/[ \\t]+/)) {\n      if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n        (0, _util.warn)(`XFA - FontFamily contains some invalid <custom-ident>: ${fontFamily}.`);\n        return false;\n      }\n    }\n  }\n\n  const weight = fontWeight ? fontWeight.toString() : \"\";\n  cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight) ? weight : DEFAULT_CSS_FONT_WEIGHT;\n  const angle = parseFloat(italicAngle);\n  cssFontInfo.italicAngle = isNaN(angle) || angle < -90 || angle > 90 ? DEFAULT_CSS_FONT_OBLIQUE : italicAngle.toString();\n  return true;\n}\n\nfunction recoverJsURL(str) {\n  const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n  const regex = new RegExp(\"^\\\\s*(\" + URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") + \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\", \"i\");\n  const jsUrl = regex.exec(str);\n\n  if (jsUrl && jsUrl[2]) {\n    const url = jsUrl[2];\n    let newWindow = false;\n\n    if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n      newWindow = true;\n    }\n\n    return {\n      url,\n      newWindow\n    };\n  }\n\n  return null;\n}\n\nfunction numberToString(value) {\n  if (Number.isInteger(value)) {\n    return value.toString();\n  }\n\n  const roundedValue = Math.round(value * 100);\n\n  if (roundedValue % 100 === 0) {\n    return (roundedValue / 100).toString();\n  }\n\n  if (roundedValue % 10 === 0) {\n    return value.toFixed(1);\n  }\n\n  return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n  if (!annotationStorage) {\n    return null;\n  }\n\n  const newAnnotationsByPage = new Map();\n\n  for (const [key, value] of annotationStorage) {\n    if (!key.startsWith(_util.AnnotationEditorPrefix)) {\n      continue;\n    }\n\n    let annotations = newAnnotationsByPage.get(value.pageIndex);\n\n    if (!annotations) {\n      annotations = [];\n      newAnnotationsByPage.set(value.pageIndex, annotations);\n    }\n\n    annotations.push(value);\n  }\n\n  return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.BaseStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass BaseStream {\n  constructor() {\n    if (this.constructor === BaseStream) {\n      (0, _util.unreachable)(\"Cannot initialize BaseStream.\");\n    }\n  }\n\n  get length() {\n    (0, _util.unreachable)(\"Abstract getter `length` accessed\");\n  }\n\n  get isEmpty() {\n    (0, _util.unreachable)(\"Abstract getter `isEmpty` accessed\");\n  }\n\n  get isDataLoaded() {\n    return (0, _util.shadow)(this, \"isDataLoaded\", true);\n  }\n\n  getByte() {\n    (0, _util.unreachable)(\"Abstract method `getByte` called\");\n  }\n\n  getBytes(length) {\n    (0, _util.unreachable)(\"Abstract method `getBytes` called\");\n  }\n\n  peekByte() {\n    const peekedByte = this.getByte();\n\n    if (peekedByte !== -1) {\n      this.pos--;\n    }\n\n    return peekedByte;\n  }\n\n  peekBytes(length) {\n    const bytes = this.getBytes(length);\n    this.pos -= bytes.length;\n    return bytes;\n  }\n\n  getUint16() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n\n    if (b0 === -1 || b1 === -1) {\n      return -1;\n    }\n\n    return (b0 << 8) + b1;\n  }\n\n  getInt32() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    const b2 = this.getByte();\n    const b3 = this.getByte();\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  getByteRange(begin, end) {\n    (0, _util.unreachable)(\"Abstract method `getByteRange` called\");\n  }\n\n  getString(length) {\n    return (0, _util.bytesToString)(this.getBytes(length));\n  }\n\n  skip(n) {\n    this.pos += n || 1;\n  }\n\n  reset() {\n    (0, _util.unreachable)(\"Abstract method `reset` called\");\n  }\n\n  moveStart() {\n    (0, _util.unreachable)(\"Abstract method `moveStart` called\");\n  }\n\n  makeSubStream(start, length, dict = null) {\n    (0, _util.unreachable)(\"Abstract method `makeSubStream` called\");\n  }\n\n  getBaseStreams() {\n    return null;\n  }\n\n}\n\nexports.BaseStream = BaseStream;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.NetworkPdfManager = exports.LocalPdfManager = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _chunked_stream = __w_pdfjs_require__(9);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _document = __w_pdfjs_require__(11);\n\nvar _stream = __w_pdfjs_require__(10);\n\nfunction parseDocBaseUrl(url) {\n  if (url) {\n    const absoluteUrl = (0, _util.createValidAbsoluteUrl)(url);\n\n    if (absoluteUrl) {\n      return absoluteUrl.href;\n    }\n\n    (0, _util.warn)(`Invalid absolute docBaseUrl: \"${url}\".`);\n  }\n\n  return null;\n}\n\nclass BasePdfManager {\n  constructor() {\n    if (this.constructor === BasePdfManager) {\n      (0, _util.unreachable)(\"Cannot initialize BasePdfManager.\");\n    }\n  }\n\n  get docId() {\n    return this._docId;\n  }\n\n  get password() {\n    return this._password;\n  }\n\n  get docBaseUrl() {\n    const catalog = this.pdfDocument.catalog;\n    return (0, _util.shadow)(this, \"docBaseUrl\", catalog.baseUrl || this._docBaseUrl);\n  }\n\n  onLoadedStream() {\n    (0, _util.unreachable)(\"Abstract method `onLoadedStream` called\");\n  }\n\n  ensureDoc(prop, args) {\n    return this.ensure(this.pdfDocument, prop, args);\n  }\n\n  ensureXRef(prop, args) {\n    return this.ensure(this.pdfDocument.xref, prop, args);\n  }\n\n  ensureCatalog(prop, args) {\n    return this.ensure(this.pdfDocument.catalog, prop, args);\n  }\n\n  getPage(pageIndex) {\n    return this.pdfDocument.getPage(pageIndex);\n  }\n\n  fontFallback(id, handler) {\n    return this.pdfDocument.fontFallback(id, handler);\n  }\n\n  loadXfaFonts(handler, task) {\n    return this.pdfDocument.loadXfaFonts(handler, task);\n  }\n\n  loadXfaImages() {\n    return this.pdfDocument.loadXfaImages();\n  }\n\n  serializeXfaData(annotationStorage) {\n    return this.pdfDocument.serializeXfaData(annotationStorage);\n  }\n\n  cleanup(manuallyTriggered = false) {\n    return this.pdfDocument.cleanup(manuallyTriggered);\n  }\n\n  async ensure(obj, prop, args) {\n    (0, _util.unreachable)(\"Abstract method `ensure` called\");\n  }\n\n  requestRange(begin, end) {\n    (0, _util.unreachable)(\"Abstract method `requestRange` called\");\n  }\n\n  requestLoadedStream() {\n    (0, _util.unreachable)(\"Abstract method `requestLoadedStream` called\");\n  }\n\n  sendProgressiveData(chunk) {\n    (0, _util.unreachable)(\"Abstract method `sendProgressiveData` called\");\n  }\n\n  updatePassword(password) {\n    this._password = password;\n  }\n\n  terminate(reason) {\n    (0, _util.unreachable)(\"Abstract method `terminate` called\");\n  }\n\n}\n\nclass LocalPdfManager extends BasePdfManager {\n  constructor(docId, data, password, msgHandler, evaluatorOptions, enableXfa, docBaseUrl) {\n    super();\n    this._docId = docId;\n    this._password = password;\n    this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n    this.msgHandler = msgHandler;\n    this.evaluatorOptions = evaluatorOptions;\n    this.enableXfa = enableXfa;\n    const stream = new _stream.Stream(data);\n    this.pdfDocument = new _document.PDFDocument(this, stream);\n    this._loadedStreamPromise = Promise.resolve(stream);\n  }\n\n  async ensure(obj, prop, args) {\n    const value = obj[prop];\n\n    if (typeof value === \"function\") {\n      return value.apply(obj, args);\n    }\n\n    return value;\n  }\n\n  requestRange(begin, end) {\n    return Promise.resolve();\n  }\n\n  requestLoadedStream() {}\n\n  onLoadedStream() {\n    return this._loadedStreamPromise;\n  }\n\n  terminate(reason) {}\n\n}\n\nexports.LocalPdfManager = LocalPdfManager;\n\nclass NetworkPdfManager extends BasePdfManager {\n  constructor(docId, pdfNetworkStream, args, evaluatorOptions, enableXfa, docBaseUrl) {\n    super();\n    this._docId = docId;\n    this._password = args.password;\n    this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n    this.msgHandler = args.msgHandler;\n    this.evaluatorOptions = evaluatorOptions;\n    this.enableXfa = enableXfa;\n    this.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, {\n      msgHandler: args.msgHandler,\n      length: args.length,\n      disableAutoFetch: args.disableAutoFetch,\n      rangeChunkSize: args.rangeChunkSize\n    });\n    this.pdfDocument = new _document.PDFDocument(this, this.streamManager.getStream());\n  }\n\n  async ensure(obj, prop, args) {\n    try {\n      const value = obj[prop];\n\n      if (typeof value === \"function\") {\n        return value.apply(obj, args);\n      }\n\n      return value;\n    } catch (ex) {\n      if (!(ex instanceof _core_utils.MissingDataException)) {\n        throw ex;\n      }\n\n      await this.requestRange(ex.begin, ex.end);\n      return this.ensure(obj, prop, args);\n    }\n  }\n\n  requestRange(begin, end) {\n    return this.streamManager.requestRange(begin, end);\n  }\n\n  requestLoadedStream() {\n    this.streamManager.requestAllChunks();\n  }\n\n  sendProgressiveData(chunk) {\n    this.streamManager.onReceiveData({\n      chunk\n    });\n  }\n\n  onLoadedStream() {\n    return this.streamManager.onLoadedStream();\n  }\n\n  terminate(reason) {\n    this.streamManager.abort(reason);\n  }\n\n}\n\nexports.NetworkPdfManager = NetworkPdfManager;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ChunkedStreamManager = exports.ChunkedStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _stream = __w_pdfjs_require__(10);\n\nclass ChunkedStream extends _stream.Stream {\n  constructor(length, chunkSize, manager) {\n    super(new Uint8Array(length), 0, length, null);\n    this.chunkSize = chunkSize;\n    this._loadedChunks = new Set();\n    this.numChunks = Math.ceil(length / chunkSize);\n    this.manager = manager;\n    this.progressiveDataLength = 0;\n    this.lastSuccessfulEnsureByteChunk = -1;\n  }\n\n  getMissingChunks() {\n    const chunks = [];\n\n    for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n      if (!this._loadedChunks.has(chunk)) {\n        chunks.push(chunk);\n      }\n    }\n\n    return chunks;\n  }\n\n  get numChunksLoaded() {\n    return this._loadedChunks.size;\n  }\n\n  get isDataLoaded() {\n    return this.numChunksLoaded === this.numChunks;\n  }\n\n  onReceiveData(begin, chunk) {\n    const chunkSize = this.chunkSize;\n\n    if (begin % chunkSize !== 0) {\n      throw new Error(`Bad begin offset: ${begin}`);\n    }\n\n    const end = begin + chunk.byteLength;\n\n    if (end % chunkSize !== 0 && end !== this.bytes.length) {\n      throw new Error(`Bad end offset: ${end}`);\n    }\n\n    this.bytes.set(new Uint8Array(chunk), begin);\n    const beginChunk = Math.floor(begin / chunkSize);\n    const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      this._loadedChunks.add(curChunk);\n    }\n  }\n\n  onReceiveProgressiveData(data) {\n    let position = this.progressiveDataLength;\n    const beginChunk = Math.floor(position / this.chunkSize);\n    this.bytes.set(new Uint8Array(data), position);\n    position += data.byteLength;\n    this.progressiveDataLength = position;\n    const endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      this._loadedChunks.add(curChunk);\n    }\n  }\n\n  ensureByte(pos) {\n    if (pos < this.progressiveDataLength) {\n      return;\n    }\n\n    const chunk = Math.floor(pos / this.chunkSize);\n\n    if (chunk > this.numChunks) {\n      return;\n    }\n\n    if (chunk === this.lastSuccessfulEnsureByteChunk) {\n      return;\n    }\n\n    if (!this._loadedChunks.has(chunk)) {\n      throw new _core_utils.MissingDataException(pos, pos + 1);\n    }\n\n    this.lastSuccessfulEnsureByteChunk = chunk;\n  }\n\n  ensureRange(begin, end) {\n    if (begin >= end) {\n      return;\n    }\n\n    if (end <= this.progressiveDataLength) {\n      return;\n    }\n\n    const beginChunk = Math.floor(begin / this.chunkSize);\n\n    if (beginChunk > this.numChunks) {\n      return;\n    }\n\n    const endChunk = Math.min(Math.floor((end - 1) / this.chunkSize) + 1, this.numChunks);\n\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      if (!this._loadedChunks.has(chunk)) {\n        throw new _core_utils.MissingDataException(begin, end);\n      }\n    }\n  }\n\n  nextEmptyChunk(beginChunk) {\n    const numChunks = this.numChunks;\n\n    for (let i = 0; i < numChunks; ++i) {\n      const chunk = (beginChunk + i) % numChunks;\n\n      if (!this._loadedChunks.has(chunk)) {\n        return chunk;\n      }\n    }\n\n    return null;\n  }\n\n  hasChunk(chunk) {\n    return this._loadedChunks.has(chunk);\n  }\n\n  getByte() {\n    const pos = this.pos;\n\n    if (pos >= this.end) {\n      return -1;\n    }\n\n    if (pos >= this.progressiveDataLength) {\n      this.ensureByte(pos);\n    }\n\n    return this.bytes[this.pos++];\n  }\n\n  getBytes(length) {\n    const bytes = this.bytes;\n    const pos = this.pos;\n    const strEnd = this.end;\n\n    if (!length) {\n      if (strEnd > this.progressiveDataLength) {\n        this.ensureRange(pos, strEnd);\n      }\n\n      return bytes.subarray(pos, strEnd);\n    }\n\n    let end = pos + length;\n\n    if (end > strEnd) {\n      end = strEnd;\n    }\n\n    if (end > this.progressiveDataLength) {\n      this.ensureRange(pos, end);\n    }\n\n    this.pos = end;\n    return bytes.subarray(pos, end);\n  }\n\n  getByteRange(begin, end) {\n    if (begin < 0) {\n      begin = 0;\n    }\n\n    if (end > this.end) {\n      end = this.end;\n    }\n\n    if (end > this.progressiveDataLength) {\n      this.ensureRange(begin, end);\n    }\n\n    return this.bytes.subarray(begin, end);\n  }\n\n  makeSubStream(start, length, dict = null) {\n    if (length) {\n      if (start + length > this.progressiveDataLength) {\n        this.ensureRange(start, start + length);\n      }\n    } else {\n      if (start >= this.progressiveDataLength) {\n        this.ensureByte(start);\n      }\n    }\n\n    function ChunkedStreamSubstream() {}\n\n    ChunkedStreamSubstream.prototype = Object.create(this);\n\n    ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n      const chunkSize = this.chunkSize;\n      const beginChunk = Math.floor(this.start / chunkSize);\n      const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n      const missingChunks = [];\n\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!this._loadedChunks.has(chunk)) {\n          missingChunks.push(chunk);\n        }\n      }\n\n      return missingChunks;\n    };\n\n    Object.defineProperty(ChunkedStreamSubstream.prototype, \"isDataLoaded\", {\n      get() {\n        if (this.numChunksLoaded === this.numChunks) {\n          return true;\n        }\n\n        return this.getMissingChunks().length === 0;\n      },\n\n      configurable: true\n    });\n    const subStream = new ChunkedStreamSubstream();\n    subStream.pos = subStream.start = start;\n    subStream.end = start + length || this.end;\n    subStream.dict = dict;\n    return subStream;\n  }\n\n  getBaseStreams() {\n    return [this];\n  }\n\n}\n\nexports.ChunkedStream = ChunkedStream;\n\nclass ChunkedStreamManager {\n  constructor(pdfNetworkStream, args) {\n    this.length = args.length;\n    this.chunkSize = args.rangeChunkSize;\n    this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n    this.pdfNetworkStream = pdfNetworkStream;\n    this.disableAutoFetch = args.disableAutoFetch;\n    this.msgHandler = args.msgHandler;\n    this.currRequestId = 0;\n    this._chunksNeededByRequest = new Map();\n    this._requestsByChunk = new Map();\n    this._promisesByRequest = new Map();\n    this.progressiveDataLength = 0;\n    this.aborted = false;\n    this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n  }\n\n  onLoadedStream() {\n    return this._loadedStreamCapability.promise;\n  }\n\n  sendRequest(begin, end) {\n    const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n\n    if (!rangeReader.isStreamingSupported) {\n      rangeReader.onProgress = this.onProgress.bind(this);\n    }\n\n    let chunks = [],\n        loaded = 0;\n    return new Promise((resolve, reject) => {\n      const readChunk = chunk => {\n        try {\n          if (!chunk.done) {\n            const data = chunk.value;\n            chunks.push(data);\n            loaded += (0, _util.arrayByteLength)(data);\n\n            if (rangeReader.isStreamingSupported) {\n              this.onProgress({\n                loaded\n              });\n            }\n\n            rangeReader.read().then(readChunk, reject);\n            return;\n          }\n\n          const chunkData = (0, _util.arraysToBytes)(chunks);\n          chunks = null;\n          resolve(chunkData);\n        } catch (e) {\n          reject(e);\n        }\n      };\n\n      rangeReader.read().then(readChunk, reject);\n    }).then(data => {\n      if (this.aborted) {\n        return;\n      }\n\n      this.onReceiveData({\n        chunk: data,\n        begin\n      });\n    });\n  }\n\n  requestAllChunks() {\n    const missingChunks = this.stream.getMissingChunks();\n\n    this._requestChunks(missingChunks);\n\n    return this._loadedStreamCapability.promise;\n  }\n\n  _requestChunks(chunks) {\n    const requestId = this.currRequestId++;\n    const chunksNeeded = new Set();\n\n    this._chunksNeededByRequest.set(requestId, chunksNeeded);\n\n    for (const chunk of chunks) {\n      if (!this.stream.hasChunk(chunk)) {\n        chunksNeeded.add(chunk);\n      }\n    }\n\n    if (chunksNeeded.size === 0) {\n      return Promise.resolve();\n    }\n\n    const capability = (0, _util.createPromiseCapability)();\n\n    this._promisesByRequest.set(requestId, capability);\n\n    const chunksToRequest = [];\n\n    for (const chunk of chunksNeeded) {\n      let requestIds = this._requestsByChunk.get(chunk);\n\n      if (!requestIds) {\n        requestIds = [];\n\n        this._requestsByChunk.set(chunk, requestIds);\n\n        chunksToRequest.push(chunk);\n      }\n\n      requestIds.push(requestId);\n    }\n\n    if (chunksToRequest.length > 0) {\n      const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n\n      for (const groupedChunk of groupedChunksToRequest) {\n        const begin = groupedChunk.beginChunk * this.chunkSize;\n        const end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n        this.sendRequest(begin, end).catch(capability.reject);\n      }\n    }\n\n    return capability.promise.catch(reason => {\n      if (this.aborted) {\n        return;\n      }\n\n      throw reason;\n    });\n  }\n\n  getStream() {\n    return this.stream;\n  }\n\n  requestRange(begin, end) {\n    end = Math.min(end, this.length);\n    const beginChunk = this.getBeginChunk(begin);\n    const endChunk = this.getEndChunk(end);\n    const chunks = [];\n\n    for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n      chunks.push(chunk);\n    }\n\n    return this._requestChunks(chunks);\n  }\n\n  requestRanges(ranges = []) {\n    const chunksToRequest = [];\n\n    for (const range of ranges) {\n      const beginChunk = this.getBeginChunk(range.begin);\n      const endChunk = this.getEndChunk(range.end);\n\n      for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!chunksToRequest.includes(chunk)) {\n          chunksToRequest.push(chunk);\n        }\n      }\n    }\n\n    chunksToRequest.sort(function (a, b) {\n      return a - b;\n    });\n    return this._requestChunks(chunksToRequest);\n  }\n\n  groupChunks(chunks) {\n    const groupedChunks = [];\n    let beginChunk = -1;\n    let prevChunk = -1;\n\n    for (let i = 0, ii = chunks.length; i < ii; ++i) {\n      const chunk = chunks[i];\n\n      if (beginChunk < 0) {\n        beginChunk = chunk;\n      }\n\n      if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n        groupedChunks.push({\n          beginChunk,\n          endChunk: prevChunk + 1\n        });\n        beginChunk = chunk;\n      }\n\n      if (i + 1 === chunks.length) {\n        groupedChunks.push({\n          beginChunk,\n          endChunk: chunk + 1\n        });\n      }\n\n      prevChunk = chunk;\n    }\n\n    return groupedChunks;\n  }\n\n  onProgress(args) {\n    this.msgHandler.send(\"DocProgress\", {\n      loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n      total: this.length\n    });\n  }\n\n  onReceiveData(args) {\n    const chunk = args.chunk;\n    const isProgressive = args.begin === undefined;\n    const begin = isProgressive ? this.progressiveDataLength : args.begin;\n    const end = begin + chunk.byteLength;\n    const beginChunk = Math.floor(begin / this.chunkSize);\n    const endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize);\n\n    if (isProgressive) {\n      this.stream.onReceiveProgressiveData(chunk);\n      this.progressiveDataLength = end;\n    } else {\n      this.stream.onReceiveData(begin, chunk);\n    }\n\n    if (this.stream.isDataLoaded) {\n      this._loadedStreamCapability.resolve(this.stream);\n    }\n\n    const loadedRequests = [];\n\n    for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n      const requestIds = this._requestsByChunk.get(curChunk);\n\n      if (!requestIds) {\n        continue;\n      }\n\n      this._requestsByChunk.delete(curChunk);\n\n      for (const requestId of requestIds) {\n        const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n\n        if (chunksNeeded.has(curChunk)) {\n          chunksNeeded.delete(curChunk);\n        }\n\n        if (chunksNeeded.size > 0) {\n          continue;\n        }\n\n        loadedRequests.push(requestId);\n      }\n    }\n\n    if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n      let nextEmptyChunk;\n\n      if (this.stream.numChunksLoaded === 1) {\n        const lastChunk = this.stream.numChunks - 1;\n\n        if (!this.stream.hasChunk(lastChunk)) {\n          nextEmptyChunk = lastChunk;\n        }\n      } else {\n        nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n      }\n\n      if (Number.isInteger(nextEmptyChunk)) {\n        this._requestChunks([nextEmptyChunk]);\n      }\n    }\n\n    for (const requestId of loadedRequests) {\n      const capability = this._promisesByRequest.get(requestId);\n\n      this._promisesByRequest.delete(requestId);\n\n      capability.resolve();\n    }\n\n    this.msgHandler.send(\"DocProgress\", {\n      loaded: this.stream.numChunksLoaded * this.chunkSize,\n      total: this.length\n    });\n  }\n\n  onError(err) {\n    this._loadedStreamCapability.reject(err);\n  }\n\n  getBeginChunk(begin) {\n    return Math.floor(begin / this.chunkSize);\n  }\n\n  getEndChunk(end) {\n    return Math.floor((end - 1) / this.chunkSize) + 1;\n  }\n\n  abort(reason) {\n    this.aborted = true;\n\n    if (this.pdfNetworkStream) {\n      this.pdfNetworkStream.cancelAllRequests(reason);\n    }\n\n    for (const capability of this._promisesByRequest.values()) {\n      capability.reject(reason);\n    }\n  }\n\n}\n\nexports.ChunkedStreamManager = ChunkedStreamManager;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.StringStream = exports.Stream = exports.NullStream = void 0;\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass Stream extends _base_stream.BaseStream {\n  constructor(arrayBuffer, start, length, dict) {\n    super();\n    this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);\n    this.start = start || 0;\n    this.pos = this.start;\n    this.end = start + length || this.bytes.length;\n    this.dict = dict;\n  }\n\n  get length() {\n    return this.end - this.start;\n  }\n\n  get isEmpty() {\n    return this.length === 0;\n  }\n\n  getByte() {\n    if (this.pos >= this.end) {\n      return -1;\n    }\n\n    return this.bytes[this.pos++];\n  }\n\n  getBytes(length) {\n    const bytes = this.bytes;\n    const pos = this.pos;\n    const strEnd = this.end;\n\n    if (!length) {\n      return bytes.subarray(pos, strEnd);\n    }\n\n    let end = pos + length;\n\n    if (end > strEnd) {\n      end = strEnd;\n    }\n\n    this.pos = end;\n    return bytes.subarray(pos, end);\n  }\n\n  getByteRange(begin, end) {\n    if (begin < 0) {\n      begin = 0;\n    }\n\n    if (end > this.end) {\n      end = this.end;\n    }\n\n    return this.bytes.subarray(begin, end);\n  }\n\n  reset() {\n    this.pos = this.start;\n  }\n\n  moveStart() {\n    this.start = this.pos;\n  }\n\n  makeSubStream(start, length, dict = null) {\n    return new Stream(this.bytes.buffer, start, length, dict);\n  }\n\n}\n\nexports.Stream = Stream;\n\nclass StringStream extends Stream {\n  constructor(str) {\n    super((0, _util.stringToBytes)(str));\n  }\n\n}\n\nexports.StringStream = StringStream;\n\nclass NullStream extends Stream {\n  constructor() {\n    super(new Uint8Array(0));\n  }\n\n}\n\nexports.NullStream = NullStream;\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Page = exports.PDFDocument = void 0;\n\nvar _annotation = __w_pdfjs_require__(12);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _xfa_fonts = __w_pdfjs_require__(51);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _crypto = __w_pdfjs_require__(67);\n\nvar _catalog = __w_pdfjs_require__(69);\n\nvar _cleanup_helper = __w_pdfjs_require__(71);\n\nvar _dataset_reader = __w_pdfjs_require__(100);\n\nvar _parser = __w_pdfjs_require__(17);\n\nvar _stream = __w_pdfjs_require__(10);\n\nvar _object_loader = __w_pdfjs_require__(75);\n\nvar _operator_list = __w_pdfjs_require__(62);\n\nvar _evaluator = __w_pdfjs_require__(15);\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _struct_tree = __w_pdfjs_require__(74);\n\nvar _writer = __w_pdfjs_require__(65);\n\nvar _factory = __w_pdfjs_require__(76);\n\nvar _xref = __w_pdfjs_require__(101);\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nclass Page {\n  constructor({\n    pdfManager,\n    xref,\n    pageIndex,\n    pageDict,\n    ref,\n    globalIdFactory,\n    fontCache,\n    builtInCMapCache,\n    standardFontDataCache,\n    globalImageCache,\n    nonBlendModesSet,\n    xfaFactory\n  }) {\n    this.pdfManager = pdfManager;\n    this.pageIndex = pageIndex;\n    this.pageDict = pageDict;\n    this.xref = xref;\n    this.ref = ref;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.standardFontDataCache = standardFontDataCache;\n    this.globalImageCache = globalImageCache;\n    this.nonBlendModesSet = nonBlendModesSet;\n    this.evaluatorOptions = pdfManager.evaluatorOptions;\n    this.resourcesPromise = null;\n    this.xfaFactory = xfaFactory;\n    const idCounters = {\n      obj: 0\n    };\n    this._localIdFactory = class extends globalIdFactory {\n      static createObjId() {\n        return `p${pageIndex}_${++idCounters.obj}`;\n      }\n\n      static getPageObjId() {\n        return `page${ref.toString()}`;\n      }\n\n    };\n  }\n\n  _getInheritableProperty(key, getArray = false) {\n    const value = (0, _core_utils.getInheritableProperty)({\n      dict: this.pageDict,\n      key,\n      getArray,\n      stopWhenFound: false\n    });\n\n    if (!Array.isArray(value)) {\n      return value;\n    }\n\n    if (value.length === 1 || !(value[0] instanceof _primitives.Dict)) {\n      return value[0];\n    }\n\n    return _primitives.Dict.merge({\n      xref: this.xref,\n      dictArray: value\n    });\n  }\n\n  get content() {\n    return this.pageDict.getArray(\"Contents\");\n  }\n\n  get resources() {\n    const resources = this._getInheritableProperty(\"Resources\");\n\n    return (0, _util.shadow)(this, \"resources\", resources instanceof _primitives.Dict ? resources : _primitives.Dict.empty);\n  }\n\n  _getBoundingBox(name) {\n    if (this.xfaData) {\n      return this.xfaData.bbox;\n    }\n\n    const box = this._getInheritableProperty(name, true);\n\n    if (Array.isArray(box) && box.length === 4) {\n      if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n        return box;\n      }\n\n      (0, _util.warn)(`Empty /${name} entry.`);\n    }\n\n    return null;\n  }\n\n  get mediaBox() {\n    return (0, _util.shadow)(this, \"mediaBox\", this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX);\n  }\n\n  get cropBox() {\n    return (0, _util.shadow)(this, \"cropBox\", this._getBoundingBox(\"CropBox\") || this.mediaBox);\n  }\n\n  get userUnit() {\n    let obj = this.pageDict.get(\"UserUnit\");\n\n    if (typeof obj !== \"number\" || obj <= 0) {\n      obj = DEFAULT_USER_UNIT;\n    }\n\n    return (0, _util.shadow)(this, \"userUnit\", obj);\n  }\n\n  get view() {\n    const {\n      cropBox,\n      mediaBox\n    } = this;\n    let view;\n\n    if (cropBox === mediaBox || (0, _util.isArrayEqual)(cropBox, mediaBox)) {\n      view = mediaBox;\n    } else {\n      const box = _util.Util.intersect(cropBox, mediaBox);\n\n      if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n        view = box;\n      } else {\n        (0, _util.warn)(\"Empty /CropBox and /MediaBox intersection.\");\n      }\n    }\n\n    return (0, _util.shadow)(this, \"view\", view || mediaBox);\n  }\n\n  get rotate() {\n    let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n    if (rotate % 90 !== 0) {\n      rotate = 0;\n    } else if (rotate >= 360) {\n      rotate %= 360;\n    } else if (rotate < 0) {\n      rotate = (rotate % 360 + 360) % 360;\n    }\n\n    return (0, _util.shadow)(this, \"rotate\", rotate);\n  }\n\n  _onSubStreamError(handler, reason, objId) {\n    if (this.evaluatorOptions.ignoreErrors) {\n      handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.errorContentSubStream\n      });\n      (0, _util.warn)(`getContentStream - ignoring sub-stream (${objId}): \"${reason}\".`);\n      return;\n    }\n\n    throw reason;\n  }\n\n  getContentStream(handler) {\n    return this.pdfManager.ensure(this, \"content\").then(content => {\n      if (content instanceof _base_stream.BaseStream) {\n        return content;\n      }\n\n      if (Array.isArray(content)) {\n        return new _decode_stream.StreamsSequenceStream(content, this._onSubStreamError.bind(this, handler));\n      }\n\n      return new _stream.NullStream();\n    });\n  }\n\n  get xfaData() {\n    return (0, _util.shadow)(this, \"xfaData\", this.xfaFactory ? {\n      bbox: this.xfaFactory.getBoundingBox(this.pageIndex)\n    } : null);\n  }\n\n  async saveNewAnnotations(handler, task, annotations) {\n    if (this.xfaFactory) {\n      throw new Error(\"XFA: Cannot save new annotations.\");\n    }\n\n    const partialEvaluator = new _evaluator.PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalImageCache: this.globalImageCache,\n      options: this.evaluatorOptions\n    });\n    const pageDict = this.pageDict;\n    const annotationsArray = this.annotations.slice();\n    const newData = await _annotation.AnnotationFactory.saveNewAnnotations(partialEvaluator, task, annotations);\n\n    for (const {\n      ref\n    } of newData.annotations) {\n      annotationsArray.push(ref);\n    }\n\n    const savedDict = pageDict.get(\"Annots\");\n    pageDict.set(\"Annots\", annotationsArray);\n    const buffer = [];\n    let transform = null;\n\n    if (this.xref.encrypt) {\n      transform = this.xref.encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n    }\n\n    (0, _writer.writeObject)(this.ref, pageDict, buffer, transform);\n\n    if (savedDict) {\n      pageDict.set(\"Annots\", savedDict);\n    }\n\n    const objects = newData.dependencies;\n    objects.push({\n      ref: this.ref,\n      data: buffer.join(\"\")\n    }, ...newData.annotations);\n    return objects;\n  }\n\n  save(handler, task, annotationStorage) {\n    const partialEvaluator = new _evaluator.PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalImageCache: this.globalImageCache,\n      options: this.evaluatorOptions\n    });\n    return this._parsedAnnotations.then(function (annotations) {\n      const newRefsPromises = [];\n\n      for (const annotation of annotations) {\n        if (!annotation.mustBePrinted(annotationStorage)) {\n          continue;\n        }\n\n        newRefsPromises.push(annotation.save(partialEvaluator, task, annotationStorage).catch(function (reason) {\n          (0, _util.warn)(\"save - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n          return null;\n        }));\n      }\n\n      return Promise.all(newRefsPromises).then(function (newRefs) {\n        return newRefs.filter(newRef => !!newRef);\n      });\n    });\n  }\n\n  loadResources(keys) {\n    if (!this.resourcesPromise) {\n      this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n    }\n\n    return this.resourcesPromise.then(() => {\n      const objectLoader = new _object_loader.ObjectLoader(this.resources, keys, this.xref);\n      return objectLoader.load();\n    });\n  }\n\n  getOperatorList({\n    handler,\n    sink,\n    task,\n    intent,\n    cacheKey,\n    annotationStorage = null\n  }) {\n    const contentStreamPromise = this.getContentStream(handler);\n    const resourcesPromise = this.loadResources([\"ColorSpace\", \"ExtGState\", \"Font\", \"Pattern\", \"Properties\", \"Shading\", \"XObject\"]);\n    const partialEvaluator = new _evaluator.PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: this.pageIndex,\n      idFactory: this._localIdFactory,\n      fontCache: this.fontCache,\n      builtInCMapCache: this.builtInCMapCache,\n      standardFontDataCache: this.standardFontDataCache,\n      globalImageCache: this.globalImageCache,\n      options: this.evaluatorOptions\n    });\n    const newAnnotationsByPage = !this.xfaFactory ? (0, _core_utils.getNewAnnotationsMap)(annotationStorage) : null;\n    let newAnnotationsPromise = Promise.resolve(null);\n\n    if (newAnnotationsByPage) {\n      const newAnnotations = newAnnotationsByPage.get(this.pageIndex);\n\n      if (newAnnotations) {\n        newAnnotationsPromise = _annotation.AnnotationFactory.printNewAnnotations(partialEvaluator, task, newAnnotations);\n      }\n    }\n\n    const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n    const pageListPromise = dataPromises.then(([contentStream]) => {\n      const opList = new _operator_list.OperatorList(intent, sink);\n      handler.send(\"StartRenderPage\", {\n        transparency: partialEvaluator.hasBlendModes(this.resources, this.nonBlendModesSet),\n        pageIndex: this.pageIndex,\n        cacheKey\n      });\n      return partialEvaluator.getOperatorList({\n        stream: contentStream,\n        task,\n        resources: this.resources,\n        operatorList: opList\n      }).then(function () {\n        return opList;\n      });\n    });\n    return Promise.all([pageListPromise, this._parsedAnnotations, newAnnotationsPromise]).then(function ([pageOpList, annotations, newAnnotations]) {\n      if (newAnnotations) {\n        annotations = annotations.concat(newAnnotations);\n      }\n\n      if (annotations.length === 0 || intent & _util.RenderingIntentFlag.ANNOTATIONS_DISABLE) {\n        pageOpList.flush(true);\n        return {\n          length: pageOpList.totalLength\n        };\n      }\n\n      const renderForms = !!(intent & _util.RenderingIntentFlag.ANNOTATIONS_FORMS),\n            intentAny = !!(intent & _util.RenderingIntentFlag.ANY),\n            intentDisplay = !!(intent & _util.RenderingIntentFlag.DISPLAY),\n            intentPrint = !!(intent & _util.RenderingIntentFlag.PRINT);\n      const opListPromises = [];\n\n      for (const annotation of annotations) {\n        if (intentAny || intentDisplay && annotation.mustBeViewed(annotationStorage) || intentPrint && annotation.mustBePrinted(annotationStorage)) {\n          opListPromises.push(annotation.getOperatorList(partialEvaluator, task, intent, renderForms, annotationStorage).catch(function (reason) {\n            (0, _util.warn)(\"getOperatorList - ignoring annotation data during \" + `\"${task.name}\" task: \"${reason}\".`);\n            return null;\n          }));\n        }\n      }\n\n      return Promise.all(opListPromises).then(function (opLists) {\n        let form = false,\n            canvas = false;\n\n        for (const {\n          opList,\n          separateForm,\n          separateCanvas\n        } of opLists) {\n          pageOpList.addOpList(opList);\n\n          if (separateForm) {\n            form = separateForm;\n          }\n\n          if (separateCanvas) {\n            canvas = separateCanvas;\n          }\n        }\n\n        pageOpList.flush(true, {\n          form,\n          canvas\n        });\n        return {\n          length: pageOpList.totalLength\n        };\n      });\n    });\n  }\n\n  extractTextContent({\n    handler,\n    task,\n    includeMarkedContent,\n    sink,\n    combineTextItems\n  }) {\n    const contentStreamPromise = this.getContentStream(handler);\n    const resourcesPromise = this.loadResources([\"ExtGState\", \"Font\", \"Properties\", \"XObject\"]);\n    const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n    return dataPromises.then(([contentStream]) => {\n      const partialEvaluator = new _evaluator.PartialEvaluator({\n        xref: this.xref,\n        handler,\n        pageIndex: this.pageIndex,\n        idFactory: this._localIdFactory,\n        fontCache: this.fontCache,\n        builtInCMapCache: this.builtInCMapCache,\n        standardFontDataCache: this.standardFontDataCache,\n        globalImageCache: this.globalImageCache,\n        options: this.evaluatorOptions\n      });\n      return partialEvaluator.getTextContent({\n        stream: contentStream,\n        task,\n        resources: this.resources,\n        includeMarkedContent,\n        combineTextItems,\n        sink,\n        viewBox: this.view\n      });\n    });\n  }\n\n  async getStructTree() {\n    const structTreeRoot = await this.pdfManager.ensureCatalog(\"structTreeRoot\");\n\n    if (!structTreeRoot) {\n      return null;\n    }\n\n    const structTree = await this.pdfManager.ensure(this, \"_parseStructTree\", [structTreeRoot]);\n    return structTree.serializable;\n  }\n\n  _parseStructTree(structTreeRoot) {\n    const tree = new _struct_tree.StructTreePage(structTreeRoot, this.pageDict);\n    tree.parse();\n    return tree;\n  }\n\n  async getAnnotationsData(handler, task, intent) {\n    const annotations = await this._parsedAnnotations;\n\n    if (annotations.length === 0) {\n      return [];\n    }\n\n    const textContentPromises = [];\n    const annotationsData = [];\n    let partialEvaluator;\n    const intentAny = !!(intent & _util.RenderingIntentFlag.ANY),\n          intentDisplay = !!(intent & _util.RenderingIntentFlag.DISPLAY),\n          intentPrint = !!(intent & _util.RenderingIntentFlag.PRINT);\n\n    for (const annotation of annotations) {\n      const isVisible = intentAny || intentDisplay && annotation.viewable;\n\n      if (isVisible || intentPrint && annotation.printable) {\n        annotationsData.push(annotation.data);\n      }\n\n      if (annotation.hasTextContent && isVisible) {\n        if (!partialEvaluator) {\n          partialEvaluator = new _evaluator.PartialEvaluator({\n            xref: this.xref,\n            handler,\n            pageIndex: this.pageIndex,\n            idFactory: this._localIdFactory,\n            fontCache: this.fontCache,\n            builtInCMapCache: this.builtInCMapCache,\n            standardFontDataCache: this.standardFontDataCache,\n            globalImageCache: this.globalImageCache,\n            options: this.evaluatorOptions\n          });\n        }\n\n        textContentPromises.push(annotation.extractTextContent(partialEvaluator, task, this.view).catch(function (reason) {\n          (0, _util.warn)(`getAnnotationsData - ignoring textContent during \"${task.name}\" task: \"${reason}\".`);\n        }));\n      }\n    }\n\n    await Promise.all(textContentPromises);\n    return annotationsData;\n  }\n\n  get annotations() {\n    const annots = this._getInheritableProperty(\"Annots\");\n\n    return (0, _util.shadow)(this, \"annotations\", Array.isArray(annots) ? annots : []);\n  }\n\n  get _parsedAnnotations() {\n    const parsedAnnotations = this.pdfManager.ensure(this, \"annotations\").then(() => {\n      const annotationPromises = [];\n\n      for (const annotationRef of this.annotations) {\n        annotationPromises.push(_annotation.AnnotationFactory.create(this.xref, annotationRef, this.pdfManager, this._localIdFactory, false).catch(function (reason) {\n          (0, _util.warn)(`_parsedAnnotations: \"${reason}\".`);\n          return null;\n        }));\n      }\n\n      return Promise.all(annotationPromises).then(function (annotations) {\n        if (annotations.length === 0) {\n          return annotations;\n        }\n\n        const sortedAnnotations = [];\n        let popupAnnotations;\n\n        for (const annotation of annotations) {\n          if (!annotation) {\n            continue;\n          }\n\n          if (annotation instanceof _annotation.PopupAnnotation) {\n            if (!popupAnnotations) {\n              popupAnnotations = [];\n            }\n\n            popupAnnotations.push(annotation);\n            continue;\n          }\n\n          sortedAnnotations.push(annotation);\n        }\n\n        if (popupAnnotations) {\n          sortedAnnotations.push(...popupAnnotations);\n        }\n\n        return sortedAnnotations;\n      });\n    });\n    return (0, _util.shadow)(this, \"_parsedAnnotations\", parsedAnnotations);\n  }\n\n  get jsActions() {\n    const actions = (0, _core_utils.collectActions)(this.xref, this.pageDict, _util.PageActionEventType);\n    return (0, _util.shadow)(this, \"jsActions\", actions);\n  }\n\n}\n\nexports.Page = Page;\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT = \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.\\d$/;\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n  const signatureLength = signature.length;\n  const scanBytes = stream.peekBytes(limit);\n  const scanLength = scanBytes.length - signatureLength;\n\n  if (scanLength <= 0) {\n    return false;\n  }\n\n  if (backwards) {\n    const signatureEnd = signatureLength - 1;\n    let pos = scanBytes.length - 1;\n\n    while (pos >= signatureEnd) {\n      let j = 0;\n\n      while (j < signatureLength && scanBytes[pos - j] === signature[signatureEnd - j]) {\n        j++;\n      }\n\n      if (j >= signatureLength) {\n        stream.pos += pos - signatureEnd;\n        return true;\n      }\n\n      pos--;\n    }\n  } else {\n    let pos = 0;\n\n    while (pos <= scanLength) {\n      let j = 0;\n\n      while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n        j++;\n      }\n\n      if (j >= signatureLength) {\n        stream.pos += pos;\n        return true;\n      }\n\n      pos++;\n    }\n  }\n\n  return false;\n}\n\nclass PDFDocument {\n  constructor(pdfManager, stream) {\n    if (stream.length <= 0) {\n      throw new _util.InvalidPDFException(\"The PDF file is empty, i.e. its size is zero bytes.\");\n    }\n\n    this.pdfManager = pdfManager;\n    this.stream = stream;\n    this.xref = new _xref.XRef(stream, pdfManager);\n    this._pagePromises = new Map();\n    this._version = null;\n    const idCounters = {\n      font: 0\n    };\n    this._globalIdFactory = class {\n      static getDocId() {\n        return `g_${pdfManager.docId}`;\n      }\n\n      static createFontId() {\n        return `f${++idCounters.font}`;\n      }\n\n      static createObjId() {\n        (0, _util.unreachable)(\"Abstract method `createObjId` called.\");\n      }\n\n      static getPageObjId() {\n        (0, _util.unreachable)(\"Abstract method `getPageObjId` called.\");\n      }\n\n    };\n  }\n\n  parse(recoveryMode) {\n    this.xref.parse(recoveryMode);\n    this.catalog = new _catalog.Catalog(this.pdfManager, this.xref);\n\n    if (this.catalog.version) {\n      this._version = this.catalog.version;\n    }\n  }\n\n  get linearization() {\n    let linearization = null;\n\n    try {\n      linearization = _parser.Linearization.create(this.stream);\n    } catch (err) {\n      if (err instanceof _core_utils.MissingDataException) {\n        throw err;\n      }\n\n      (0, _util.info)(err);\n    }\n\n    return (0, _util.shadow)(this, \"linearization\", linearization);\n  }\n\n  get startXRef() {\n    const stream = this.stream;\n    let startXRef = 0;\n\n    if (this.linearization) {\n      stream.reset();\n\n      if (find(stream, ENDOBJ_SIGNATURE)) {\n        startXRef = stream.pos + 6 - stream.start;\n      }\n    } else {\n      const step = 1024;\n      const startXRefLength = STARTXREF_SIGNATURE.length;\n      let found = false,\n          pos = stream.end;\n\n      while (!found && pos > 0) {\n        pos -= step - startXRefLength;\n\n        if (pos < 0) {\n          pos = 0;\n        }\n\n        stream.pos = pos;\n        found = find(stream, STARTXREF_SIGNATURE, step, true);\n      }\n\n      if (found) {\n        stream.skip(9);\n        let ch;\n\n        do {\n          ch = stream.getByte();\n        } while ((0, _core_utils.isWhiteSpace)(ch));\n\n        let str = \"\";\n\n        while (ch >= 0x20 && ch <= 0x39) {\n          str += String.fromCharCode(ch);\n          ch = stream.getByte();\n        }\n\n        startXRef = parseInt(str, 10);\n\n        if (isNaN(startXRef)) {\n          startXRef = 0;\n        }\n      }\n    }\n\n    return (0, _util.shadow)(this, \"startXRef\", startXRef);\n  }\n\n  checkHeader() {\n    const stream = this.stream;\n    stream.reset();\n\n    if (!find(stream, PDF_HEADER_SIGNATURE)) {\n      return;\n    }\n\n    stream.moveStart();\n    const MAX_PDF_VERSION_LENGTH = 12;\n    let version = \"\",\n        ch;\n\n    while ((ch = stream.getByte()) > 0x20) {\n      if (version.length >= MAX_PDF_VERSION_LENGTH) {\n        break;\n      }\n\n      version += String.fromCharCode(ch);\n    }\n\n    if (!this._version) {\n      this._version = version.substring(5);\n    }\n  }\n\n  parseStartXRef() {\n    this.xref.setStartXRef(this.startXRef);\n  }\n\n  get numPages() {\n    let num = 0;\n\n    if (this.catalog.hasActualNumPages) {\n      num = this.catalog.numPages;\n    } else if (this.xfaFactory) {\n      num = this.xfaFactory.getNumPages();\n    } else if (this.linearization) {\n      num = this.linearization.numPages;\n    } else {\n      num = this.catalog.numPages;\n    }\n\n    return (0, _util.shadow)(this, \"numPages\", num);\n  }\n\n  _hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n    const RECURSION_LIMIT = 10;\n\n    if (!Array.isArray(fields)) {\n      return false;\n    }\n\n    return fields.every(field => {\n      field = this.xref.fetchIfRef(field);\n\n      if (!(field instanceof _primitives.Dict)) {\n        return false;\n      }\n\n      if (field.has(\"Kids\")) {\n        if (++recursionDepth > RECURSION_LIMIT) {\n          (0, _util.warn)(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n          return false;\n        }\n\n        return this._hasOnlyDocumentSignatures(field.get(\"Kids\"), recursionDepth);\n      }\n\n      const isSignature = (0, _primitives.isName)(field.get(\"FT\"), \"Sig\");\n      const rectangle = field.get(\"Rect\");\n      const isInvisible = Array.isArray(rectangle) && rectangle.every(value => value === 0);\n      return isSignature && isInvisible;\n    });\n  }\n\n  get _xfaStreams() {\n    const acroForm = this.catalog.acroForm;\n\n    if (!acroForm) {\n      return null;\n    }\n\n    const xfa = acroForm.get(\"XFA\");\n    const entries = {\n      \"xdp:xdp\": \"\",\n      template: \"\",\n      datasets: \"\",\n      config: \"\",\n      connectionSet: \"\",\n      localeSet: \"\",\n      stylesheet: \"\",\n      \"/xdp:xdp\": \"\"\n    };\n\n    if (xfa instanceof _base_stream.BaseStream && !xfa.isEmpty) {\n      entries[\"xdp:xdp\"] = xfa;\n      return entries;\n    }\n\n    if (!Array.isArray(xfa) || xfa.length === 0) {\n      return null;\n    }\n\n    for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n      let name;\n\n      if (i === 0) {\n        name = \"xdp:xdp\";\n      } else if (i === ii - 2) {\n        name = \"/xdp:xdp\";\n      } else {\n        name = xfa[i];\n      }\n\n      if (!entries.hasOwnProperty(name)) {\n        continue;\n      }\n\n      const data = this.xref.fetchIfRef(xfa[i + 1]);\n\n      if (!(data instanceof _base_stream.BaseStream) || data.isEmpty) {\n        continue;\n      }\n\n      entries[name] = data;\n    }\n\n    return entries;\n  }\n\n  get xfaDatasets() {\n    const streams = this._xfaStreams;\n\n    if (!streams) {\n      return (0, _util.shadow)(this, \"xfaDatasets\", null);\n    }\n\n    for (const key of [\"datasets\", \"xdp:xdp\"]) {\n      const stream = streams[key];\n\n      if (!stream) {\n        continue;\n      }\n\n      try {\n        const str = (0, _util.stringToUTF8String)(stream.getString());\n        const data = {\n          [key]: str\n        };\n        return (0, _util.shadow)(this, \"xfaDatasets\", new _dataset_reader.DatasetReader(data));\n      } catch (_) {\n        (0, _util.warn)(\"XFA - Invalid utf-8 string.\");\n        break;\n      }\n    }\n\n    return (0, _util.shadow)(this, \"xfaDatasets\", null);\n  }\n\n  get xfaData() {\n    const streams = this._xfaStreams;\n\n    if (!streams) {\n      return null;\n    }\n\n    const data = Object.create(null);\n\n    for (const [key, stream] of Object.entries(streams)) {\n      if (!stream) {\n        continue;\n      }\n\n      try {\n        data[key] = (0, _util.stringToUTF8String)(stream.getString());\n      } catch (_) {\n        (0, _util.warn)(\"XFA - Invalid utf-8 string.\");\n        return null;\n      }\n    }\n\n    return data;\n  }\n\n  get xfaFactory() {\n    let data;\n\n    if (this.pdfManager.enableXfa && this.catalog.needsRendering && this.formInfo.hasXfa && !this.formInfo.hasAcroForm) {\n      data = this.xfaData;\n    }\n\n    return (0, _util.shadow)(this, \"xfaFactory\", data ? new _factory.XFAFactory(data) : null);\n  }\n\n  get isPureXfa() {\n    return this.xfaFactory ? this.xfaFactory.isValid() : false;\n  }\n\n  get htmlForXfa() {\n    return this.xfaFactory ? this.xfaFactory.getPages() : null;\n  }\n\n  async loadXfaImages() {\n    const xfaImagesDict = await this.pdfManager.ensureCatalog(\"xfaImages\");\n\n    if (!xfaImagesDict) {\n      return;\n    }\n\n    const keys = xfaImagesDict.getKeys();\n    const objectLoader = new _object_loader.ObjectLoader(xfaImagesDict, keys, this.xref);\n    await objectLoader.load();\n    const xfaImages = new Map();\n\n    for (const key of keys) {\n      const stream = xfaImagesDict.get(key);\n\n      if (stream instanceof _base_stream.BaseStream) {\n        xfaImages.set(key, stream.getBytes());\n      }\n    }\n\n    this.xfaFactory.setImages(xfaImages);\n  }\n\n  async loadXfaFonts(handler, task) {\n    const acroForm = await this.pdfManager.ensureCatalog(\"acroForm\");\n\n    if (!acroForm) {\n      return;\n    }\n\n    const resources = await acroForm.getAsync(\"DR\");\n\n    if (!(resources instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const objectLoader = new _object_loader.ObjectLoader(resources, [\"Font\"], this.xref);\n    await objectLoader.load();\n    const fontRes = resources.get(\"Font\");\n\n    if (!(fontRes instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const options = Object.assign(Object.create(null), this.pdfManager.evaluatorOptions);\n    options.useSystemFonts = false;\n    const partialEvaluator = new _evaluator.PartialEvaluator({\n      xref: this.xref,\n      handler,\n      pageIndex: -1,\n      idFactory: this._globalIdFactory,\n      fontCache: this.catalog.fontCache,\n      builtInCMapCache: this.catalog.builtInCMapCache,\n      standardFontDataCache: this.catalog.standardFontDataCache,\n      options\n    });\n    const operatorList = new _operator_list.OperatorList();\n    const pdfFonts = [];\n    const initialState = {\n      get font() {\n        return pdfFonts.at(-1);\n      },\n\n      set font(font) {\n        pdfFonts.push(font);\n      },\n\n      clone() {\n        return this;\n      }\n\n    };\n    const fonts = new Map();\n    fontRes.forEach((fontName, font) => {\n      fonts.set(fontName, font);\n    });\n    const promises = [];\n\n    for (const [fontName, font] of fonts) {\n      const descriptor = font.get(\"FontDescriptor\");\n\n      if (!(descriptor instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      let fontFamily = descriptor.get(\"FontFamily\");\n      fontFamily = fontFamily.replace(/[ ]+(\\d)/g, \"$1\");\n      const fontWeight = descriptor.get(\"FontWeight\");\n      const italicAngle = -descriptor.get(\"ItalicAngle\");\n      const cssFontInfo = {\n        fontFamily,\n        fontWeight,\n        italicAngle\n      };\n\n      if (!(0, _core_utils.validateCSSFont)(cssFontInfo)) {\n        continue;\n      }\n\n      promises.push(partialEvaluator.handleSetFont(resources, [_primitives.Name.get(fontName), 1], null, operatorList, task, initialState, null, cssFontInfo).catch(function (reason) {\n        (0, _util.warn)(`loadXfaFonts: \"${reason}\".`);\n        return null;\n      }));\n    }\n\n    await Promise.all(promises);\n    const missingFonts = this.xfaFactory.setFonts(pdfFonts);\n\n    if (!missingFonts) {\n      return;\n    }\n\n    options.ignoreErrors = true;\n    promises.length = 0;\n    pdfFonts.length = 0;\n    const reallyMissingFonts = new Set();\n\n    for (const missing of missingFonts) {\n      if (!(0, _xfa_fonts.getXfaFontName)(`${missing}-Regular`)) {\n        reallyMissingFonts.add(missing);\n      }\n    }\n\n    if (reallyMissingFonts.size) {\n      missingFonts.push(\"PdfJS-Fallback\");\n    }\n\n    for (const missing of missingFonts) {\n      if (reallyMissingFonts.has(missing)) {\n        continue;\n      }\n\n      for (const fontInfo of [{\n        name: \"Regular\",\n        fontWeight: 400,\n        italicAngle: 0\n      }, {\n        name: \"Bold\",\n        fontWeight: 700,\n        italicAngle: 0\n      }, {\n        name: \"Italic\",\n        fontWeight: 400,\n        italicAngle: 12\n      }, {\n        name: \"BoldItalic\",\n        fontWeight: 700,\n        italicAngle: 12\n      }]) {\n        const name = `${missing}-${fontInfo.name}`;\n        const dict = (0, _xfa_fonts.getXfaFontDict)(name);\n        promises.push(partialEvaluator.handleSetFont(resources, [_primitives.Name.get(name), 1], null, operatorList, task, initialState, dict, {\n          fontFamily: missing,\n          fontWeight: fontInfo.fontWeight,\n          italicAngle: fontInfo.italicAngle\n        }).catch(function (reason) {\n          (0, _util.warn)(`loadXfaFonts: \"${reason}\".`);\n          return null;\n        }));\n      }\n    }\n\n    await Promise.all(promises);\n    this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts);\n  }\n\n  async serializeXfaData(annotationStorage) {\n    return this.xfaFactory ? this.xfaFactory.serializeData(annotationStorage) : null;\n  }\n\n  get formInfo() {\n    const formInfo = {\n      hasFields: false,\n      hasAcroForm: false,\n      hasXfa: false,\n      hasSignatures: false\n    };\n    const acroForm = this.catalog.acroForm;\n\n    if (!acroForm) {\n      return (0, _util.shadow)(this, \"formInfo\", formInfo);\n    }\n\n    try {\n      const fields = acroForm.get(\"Fields\");\n      const hasFields = Array.isArray(fields) && fields.length > 0;\n      formInfo.hasFields = hasFields;\n      const xfa = acroForm.get(\"XFA\");\n      formInfo.hasXfa = Array.isArray(xfa) && xfa.length > 0 || xfa instanceof _base_stream.BaseStream && !xfa.isEmpty;\n      const sigFlags = acroForm.get(\"SigFlags\");\n      const hasSignatures = !!(sigFlags & 0x1);\n\n      const hasOnlyDocumentSignatures = hasSignatures && this._hasOnlyDocumentSignatures(fields);\n\n      formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n      formInfo.hasSignatures = hasSignatures;\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`Cannot fetch form information: \"${ex}\".`);\n    }\n\n    return (0, _util.shadow)(this, \"formInfo\", formInfo);\n  }\n\n  get documentInfo() {\n    let version = this._version;\n\n    if (typeof version !== \"string\" || !PDF_HEADER_VERSION_REGEXP.test(version)) {\n      (0, _util.warn)(`Invalid PDF header version number: ${version}`);\n      version = null;\n    }\n\n    const docInfo = {\n      PDFFormatVersion: version,\n      Language: this.catalog.lang,\n      EncryptFilterName: this.xref.encrypt ? this.xref.encrypt.filterName : null,\n      IsLinearized: !!this.linearization,\n      IsAcroFormPresent: this.formInfo.hasAcroForm,\n      IsXFAPresent: this.formInfo.hasXfa,\n      IsCollectionPresent: !!this.catalog.collection,\n      IsSignaturesPresent: this.formInfo.hasSignatures\n    };\n    let infoDict;\n\n    try {\n      infoDict = this.xref.trailer.get(\"Info\");\n    } catch (err) {\n      if (err instanceof _core_utils.MissingDataException) {\n        throw err;\n      }\n\n      (0, _util.info)(\"The document information dictionary is invalid.\");\n    }\n\n    if (!(infoDict instanceof _primitives.Dict)) {\n      return (0, _util.shadow)(this, \"documentInfo\", docInfo);\n    }\n\n    for (const key of infoDict.getKeys()) {\n      const value = infoDict.get(key);\n\n      switch (key) {\n        case \"Title\":\n        case \"Author\":\n        case \"Subject\":\n        case \"Keywords\":\n        case \"Creator\":\n        case \"Producer\":\n        case \"CreationDate\":\n        case \"ModDate\":\n          if (typeof value === \"string\") {\n            docInfo[key] = (0, _util.stringToPDFString)(value);\n            continue;\n          }\n\n          break;\n\n        case \"Trapped\":\n          if (value instanceof _primitives.Name) {\n            docInfo[key] = value;\n            continue;\n          }\n\n          break;\n\n        default:\n          let customValue;\n\n          switch (typeof value) {\n            case \"string\":\n              customValue = (0, _util.stringToPDFString)(value);\n              break;\n\n            case \"number\":\n            case \"boolean\":\n              customValue = value;\n              break;\n\n            default:\n              if (value instanceof _primitives.Name) {\n                customValue = value;\n              }\n\n              break;\n          }\n\n          if (customValue === undefined) {\n            (0, _util.warn)(`Bad value, for custom key \"${key}\", in Info: ${value}.`);\n            continue;\n          }\n\n          if (!docInfo.Custom) {\n            docInfo.Custom = Object.create(null);\n          }\n\n          docInfo.Custom[key] = customValue;\n          continue;\n      }\n\n      (0, _util.warn)(`Bad value, for key \"${key}\", in Info: ${value}.`);\n    }\n\n    return (0, _util.shadow)(this, \"documentInfo\", docInfo);\n  }\n\n  get fingerprints() {\n    function validate(data) {\n      return typeof data === \"string\" && data.length > 0 && data !== EMPTY_FINGERPRINT;\n    }\n\n    function hexString(hash) {\n      const buf = [];\n\n      for (let i = 0, ii = hash.length; i < ii; i++) {\n        const hex = hash[i].toString(16);\n        buf.push(hex.padStart(2, \"0\"));\n      }\n\n      return buf.join(\"\");\n    }\n\n    const idArray = this.xref.trailer.get(\"ID\");\n    let hashOriginal, hashModified;\n\n    if (Array.isArray(idArray) && validate(idArray[0])) {\n      hashOriginal = (0, _util.stringToBytes)(idArray[0]);\n\n      if (idArray[1] !== idArray[0] && validate(idArray[1])) {\n        hashModified = (0, _util.stringToBytes)(idArray[1]);\n      }\n    } else {\n      hashOriginal = (0, _crypto.calculateMD5)(this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n    }\n\n    return (0, _util.shadow)(this, \"fingerprints\", [hexString(hashOriginal), hashModified ? hexString(hashModified) : null]);\n  }\n\n  async _getLinearizationPage(pageIndex) {\n    const {\n      catalog,\n      linearization,\n      xref\n    } = this;\n\n    const ref = _primitives.Ref.get(linearization.objectNumberFirst, 0);\n\n    try {\n      const obj = await xref.fetchAsync(ref);\n\n      if (obj instanceof _primitives.Dict) {\n        let type = obj.getRaw(\"Type\");\n\n        if (type instanceof _primitives.Ref) {\n          type = await xref.fetchAsync(type);\n        }\n\n        if ((0, _primitives.isName)(type, \"Page\") || !obj.has(\"Type\") && !obj.has(\"Kids\")) {\n          if (!catalog.pageKidsCountCache.has(ref)) {\n            catalog.pageKidsCountCache.put(ref, 1);\n          }\n\n          if (!catalog.pageIndexCache.has(ref)) {\n            catalog.pageIndexCache.put(ref, 0);\n          }\n\n          return [obj, ref];\n        }\n      }\n\n      throw new _util.FormatError(\"The Linearization dictionary doesn't point to a valid Page dictionary.\");\n    } catch (reason) {\n      (0, _util.warn)(`_getLinearizationPage: \"${reason.message}\".`);\n      return catalog.getPageDict(pageIndex);\n    }\n  }\n\n  getPage(pageIndex) {\n    const cachedPromise = this._pagePromises.get(pageIndex);\n\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n\n    const {\n      catalog,\n      linearization,\n      xfaFactory\n    } = this;\n    let promise;\n\n    if (xfaFactory) {\n      promise = Promise.resolve([_primitives.Dict.empty, null]);\n    } else if (linearization && linearization.pageFirst === pageIndex) {\n      promise = this._getLinearizationPage(pageIndex);\n    } else {\n      promise = catalog.getPageDict(pageIndex);\n    }\n\n    promise = promise.then(([pageDict, ref]) => {\n      return new Page({\n        pdfManager: this.pdfManager,\n        xref: this.xref,\n        pageIndex,\n        pageDict,\n        ref,\n        globalIdFactory: this._globalIdFactory,\n        fontCache: catalog.fontCache,\n        builtInCMapCache: catalog.builtInCMapCache,\n        standardFontDataCache: catalog.standardFontDataCache,\n        globalImageCache: catalog.globalImageCache,\n        nonBlendModesSet: catalog.nonBlendModesSet,\n        xfaFactory\n      });\n    });\n\n    this._pagePromises.set(pageIndex, promise);\n\n    return promise;\n  }\n\n  async checkFirstPage(recoveryMode = false) {\n    if (recoveryMode) {\n      return;\n    }\n\n    try {\n      await this.getPage(0);\n    } catch (reason) {\n      if (reason instanceof _core_utils.XRefEntryException) {\n        this._pagePromises.delete(0);\n\n        await this.cleanup();\n        throw new _core_utils.XRefParseException();\n      }\n    }\n  }\n\n  async checkLastPage(recoveryMode = false) {\n    const {\n      catalog,\n      pdfManager\n    } = this;\n    catalog.setActualNumPages();\n    let numPages;\n\n    try {\n      await Promise.all([pdfManager.ensureDoc(\"xfaFactory\"), pdfManager.ensureDoc(\"linearization\"), pdfManager.ensureCatalog(\"numPages\")]);\n\n      if (this.xfaFactory) {\n        return;\n      } else if (this.linearization) {\n        numPages = this.linearization.numPages;\n      } else {\n        numPages = catalog.numPages;\n      }\n\n      if (!Number.isInteger(numPages)) {\n        throw new _util.FormatError(\"Page count is not an integer.\");\n      } else if (numPages <= 1) {\n        return;\n      }\n\n      await this.getPage(numPages - 1);\n    } catch (reason) {\n      this._pagePromises.delete(numPages - 1);\n\n      await this.cleanup();\n\n      if (reason instanceof _core_utils.XRefEntryException && !recoveryMode) {\n        throw new _core_utils.XRefParseException();\n      }\n\n      (0, _util.warn)(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);\n      let pagesTree;\n\n      try {\n        pagesTree = await catalog.getAllPageDicts(recoveryMode);\n      } catch (reasonAll) {\n        if (reasonAll instanceof _core_utils.XRefEntryException && !recoveryMode) {\n          throw new _core_utils.XRefParseException();\n        }\n\n        catalog.setActualNumPages(1);\n        return;\n      }\n\n      for (const [pageIndex, [pageDict, ref]] of pagesTree) {\n        let promise;\n\n        if (pageDict instanceof Error) {\n          promise = Promise.reject(pageDict);\n          promise.catch(() => {});\n        } else {\n          promise = Promise.resolve(new Page({\n            pdfManager,\n            xref: this.xref,\n            pageIndex,\n            pageDict,\n            ref,\n            globalIdFactory: this._globalIdFactory,\n            fontCache: catalog.fontCache,\n            builtInCMapCache: catalog.builtInCMapCache,\n            standardFontDataCache: catalog.standardFontDataCache,\n            globalImageCache: catalog.globalImageCache,\n            nonBlendModesSet: catalog.nonBlendModesSet,\n            xfaFactory: null\n          }));\n        }\n\n        this._pagePromises.set(pageIndex, promise);\n      }\n\n      catalog.setActualNumPages(pagesTree.size);\n    }\n  }\n\n  fontFallback(id, handler) {\n    return this.catalog.fontFallback(id, handler);\n  }\n\n  async cleanup(manuallyTriggered = false) {\n    return this.catalog ? this.catalog.cleanup(manuallyTriggered) : (0, _cleanup_helper.clearGlobalCaches)();\n  }\n\n  _collectFieldObjects(name, fieldRef, promises) {\n    const field = this.xref.fetchIfRef(fieldRef);\n\n    if (field.has(\"T\")) {\n      const partName = (0, _util.stringToPDFString)(field.get(\"T\"));\n\n      if (name === \"\") {\n        name = partName;\n      } else {\n        name = `${name}.${partName}`;\n      }\n    }\n\n    if (!promises.has(name)) {\n      promises.set(name, []);\n    }\n\n    promises.get(name).push(_annotation.AnnotationFactory.create(this.xref, fieldRef, this.pdfManager, this._localIdFactory, true).then(annotation => annotation && annotation.getFieldObject()).catch(function (reason) {\n      (0, _util.warn)(`_collectFieldObjects: \"${reason}\".`);\n      return null;\n    }));\n\n    if (field.has(\"Kids\")) {\n      const kids = field.get(\"Kids\");\n\n      for (const kid of kids) {\n        this._collectFieldObjects(name, kid, promises);\n      }\n    }\n  }\n\n  get fieldObjects() {\n    if (!this.formInfo.hasFields) {\n      return (0, _util.shadow)(this, \"fieldObjects\", Promise.resolve(null));\n    }\n\n    const allFields = Object.create(null);\n    const fieldPromises = new Map();\n\n    for (const fieldRef of this.catalog.acroForm.get(\"Fields\")) {\n      this._collectFieldObjects(\"\", fieldRef, fieldPromises);\n    }\n\n    const allPromises = [];\n\n    for (const [name, promises] of fieldPromises) {\n      allPromises.push(Promise.all(promises).then(fields => {\n        fields = fields.filter(field => !!field);\n\n        if (fields.length > 0) {\n          allFields[name] = fields;\n        }\n      }));\n    }\n\n    return (0, _util.shadow)(this, \"fieldObjects\", Promise.all(allPromises).then(() => allFields));\n  }\n\n  get hasJSActions() {\n    const promise = this.pdfManager.ensureDoc(\"_parseHasJSActions\");\n    return (0, _util.shadow)(this, \"hasJSActions\", promise);\n  }\n\n  async _parseHasJSActions() {\n    const [catalogJsActions, fieldObjects] = await Promise.all([this.pdfManager.ensureCatalog(\"jsActions\"), this.pdfManager.ensureDoc(\"fieldObjects\")]);\n\n    if (catalogJsActions) {\n      return true;\n    }\n\n    if (fieldObjects) {\n      return Object.values(fieldObjects).some(fieldObject => fieldObject.some(object => object.actions !== null));\n    }\n\n    return false;\n  }\n\n  get calculationOrderIds() {\n    const acroForm = this.catalog.acroForm;\n\n    if (!acroForm || !acroForm.has(\"CO\")) {\n      return (0, _util.shadow)(this, \"calculationOrderIds\", null);\n    }\n\n    const calculationOrder = acroForm.get(\"CO\");\n\n    if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n      return (0, _util.shadow)(this, \"calculationOrderIds\", null);\n    }\n\n    const ids = [];\n\n    for (const id of calculationOrder) {\n      if (id instanceof _primitives.Ref) {\n        ids.push(id.toString());\n      }\n    }\n\n    if (ids.length === 0) {\n      return (0, _util.shadow)(this, \"calculationOrderIds\", null);\n    }\n\n    return (0, _util.shadow)(this, \"calculationOrderIds\", ids);\n  }\n\n}\n\nexports.PDFDocument = PDFDocument;\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PopupAnnotation = exports.MarkupAnnotation = exports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0;\nexports.getQuadPoints = getQuadPoints;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _default_appearance = __w_pdfjs_require__(13);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _writer = __w_pdfjs_require__(65);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _bidi = __w_pdfjs_require__(60);\n\nvar _catalog = __w_pdfjs_require__(69);\n\nvar _colorspace = __w_pdfjs_require__(14);\n\nvar _file_spec = __w_pdfjs_require__(72);\n\nvar _object_loader = __w_pdfjs_require__(75);\n\nvar _operator_list = __w_pdfjs_require__(62);\n\nvar _stream = __w_pdfjs_require__(10);\n\nvar _factory = __w_pdfjs_require__(76);\n\nclass AnnotationFactory {\n  static create(xref, ref, pdfManager, idFactory, collectFields) {\n    return Promise.all([pdfManager.ensureCatalog(\"acroForm\"), pdfManager.ensureCatalog(\"baseUrl\"), pdfManager.ensureDoc(\"xfaDatasets\"), collectFields ? this._getPageIndex(xref, ref, pdfManager) : -1]).then(([acroForm, baseUrl, xfaDatasets, pageIndex]) => pdfManager.ensure(this, \"_create\", [xref, ref, pdfManager, idFactory, acroForm, xfaDatasets, collectFields, pageIndex]));\n  }\n\n  static _create(xref, ref, pdfManager, idFactory, acroForm, xfaDatasets, collectFields, pageIndex = -1) {\n    const dict = xref.fetchIfRef(ref);\n\n    if (!(dict instanceof _primitives.Dict)) {\n      return undefined;\n    }\n\n    const id = ref instanceof _primitives.Ref ? ref.toString() : `annot_${idFactory.createObjId()}`;\n    let subtype = dict.get(\"Subtype\");\n    subtype = subtype instanceof _primitives.Name ? subtype.name : null;\n    const parameters = {\n      xref,\n      ref,\n      dict,\n      subtype,\n      id,\n      pdfManager,\n      acroForm: acroForm instanceof _primitives.Dict ? acroForm : _primitives.Dict.empty,\n      xfaDatasets,\n      collectFields,\n      pageIndex\n    };\n\n    switch (subtype) {\n      case \"Link\":\n        return new LinkAnnotation(parameters);\n\n      case \"Text\":\n        return new TextAnnotation(parameters);\n\n      case \"Widget\":\n        let fieldType = (0, _core_utils.getInheritableProperty)({\n          dict,\n          key: \"FT\"\n        });\n        fieldType = fieldType instanceof _primitives.Name ? fieldType.name : null;\n\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotation(parameters);\n\n          case \"Btn\":\n            return new ButtonWidgetAnnotation(parameters);\n\n          case \"Ch\":\n            return new ChoiceWidgetAnnotation(parameters);\n\n          case \"Sig\":\n            return new SignatureWidgetAnnotation(parameters);\n        }\n\n        (0, _util.warn)(`Unimplemented widget field type \"${fieldType}\", ` + \"falling back to base field type.\");\n        return new WidgetAnnotation(parameters);\n\n      case \"Popup\":\n        return new PopupAnnotation(parameters);\n\n      case \"FreeText\":\n        return new FreeTextAnnotation(parameters);\n\n      case \"Line\":\n        return new LineAnnotation(parameters);\n\n      case \"Square\":\n        return new SquareAnnotation(parameters);\n\n      case \"Circle\":\n        return new CircleAnnotation(parameters);\n\n      case \"PolyLine\":\n        return new PolylineAnnotation(parameters);\n\n      case \"Polygon\":\n        return new PolygonAnnotation(parameters);\n\n      case \"Caret\":\n        return new CaretAnnotation(parameters);\n\n      case \"Ink\":\n        return new InkAnnotation(parameters);\n\n      case \"Highlight\":\n        return new HighlightAnnotation(parameters);\n\n      case \"Underline\":\n        return new UnderlineAnnotation(parameters);\n\n      case \"Squiggly\":\n        return new SquigglyAnnotation(parameters);\n\n      case \"StrikeOut\":\n        return new StrikeOutAnnotation(parameters);\n\n      case \"Stamp\":\n        return new StampAnnotation(parameters);\n\n      case \"FileAttachment\":\n        return new FileAttachmentAnnotation(parameters);\n\n      default:\n        if (!collectFields) {\n          if (!subtype) {\n            (0, _util.warn)(\"Annotation is missing the required /Subtype.\");\n          } else {\n            (0, _util.warn)(`Unimplemented annotation type \"${subtype}\", ` + \"falling back to base annotation.\");\n          }\n        }\n\n        return new Annotation(parameters);\n    }\n  }\n\n  static async _getPageIndex(xref, ref, pdfManager) {\n    try {\n      const annotDict = await xref.fetchIfRefAsync(ref);\n\n      if (!(annotDict instanceof _primitives.Dict)) {\n        return -1;\n      }\n\n      const pageRef = annotDict.getRaw(\"P\");\n\n      if (!(pageRef instanceof _primitives.Ref)) {\n        return -1;\n      }\n\n      const pageIndex = await pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n      return pageIndex;\n    } catch (ex) {\n      (0, _util.warn)(`_getPageIndex: \"${ex}\".`);\n      return -1;\n    }\n  }\n\n  static async saveNewAnnotations(evaluator, task, annotations) {\n    const xref = evaluator.xref;\n    let baseFontRef;\n    const dependencies = [];\n    const promises = [];\n\n    for (const annotation of annotations) {\n      switch (annotation.annotationType) {\n        case _util.AnnotationEditorType.FREETEXT:\n          if (!baseFontRef) {\n            const baseFont = new _primitives.Dict(xref);\n            baseFont.set(\"BaseFont\", _primitives.Name.get(\"Helvetica\"));\n            baseFont.set(\"Type\", _primitives.Name.get(\"Font\"));\n            baseFont.set(\"Subtype\", _primitives.Name.get(\"Type1\"));\n            baseFont.set(\"Encoding\", _primitives.Name.get(\"WinAnsiEncoding\"));\n            const buffer = [];\n            baseFontRef = xref.getNewRef();\n            (0, _writer.writeObject)(baseFontRef, baseFont, buffer, null);\n            dependencies.push({\n              ref: baseFontRef,\n              data: buffer.join(\"\")\n            });\n          }\n\n          promises.push(FreeTextAnnotation.createNewAnnotation(xref, annotation, dependencies, {\n            evaluator,\n            task,\n            baseFontRef\n          }));\n          break;\n\n        case _util.AnnotationEditorType.INK:\n          promises.push(InkAnnotation.createNewAnnotation(xref, annotation, dependencies));\n      }\n    }\n\n    return {\n      annotations: await Promise.all(promises),\n      dependencies\n    };\n  }\n\n  static async printNewAnnotations(evaluator, task, annotations) {\n    if (!annotations) {\n      return null;\n    }\n\n    const xref = evaluator.xref;\n    const promises = [];\n\n    for (const annotation of annotations) {\n      switch (annotation.annotationType) {\n        case _util.AnnotationEditorType.FREETEXT:\n          promises.push(FreeTextAnnotation.createNewPrintAnnotation(xref, annotation, {\n            evaluator,\n            task\n          }));\n          break;\n\n        case _util.AnnotationEditorType.INK:\n          promises.push(InkAnnotation.createNewPrintAnnotation(xref, annotation));\n          break;\n      }\n    }\n\n    return Promise.all(promises);\n  }\n\n}\n\nexports.AnnotationFactory = AnnotationFactory;\n\nfunction getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) {\n  if (!Array.isArray(color)) {\n    return defaultColor;\n  }\n\n  const rgbColor = defaultColor || new Uint8ClampedArray(3);\n\n  switch (color.length) {\n    case 0:\n      return null;\n\n    case 1:\n      _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n\n      return rgbColor;\n\n    case 3:\n      _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n\n      return rgbColor;\n\n    case 4:\n      _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n\n      return rgbColor;\n\n    default:\n      return defaultColor;\n  }\n}\n\nfunction getQuadPoints(dict, rect) {\n  if (!dict.has(\"QuadPoints\")) {\n    return null;\n  }\n\n  const quadPoints = dict.getArray(\"QuadPoints\");\n\n  if (!Array.isArray(quadPoints) || quadPoints.length === 0 || quadPoints.length % 8 > 0) {\n    return null;\n  }\n\n  const quadPointsLists = [];\n\n  for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n    quadPointsLists.push([]);\n\n    for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n      const x = quadPoints[j];\n      const y = quadPoints[j + 1];\n\n      if (rect !== null && (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3])) {\n        return null;\n      }\n\n      quadPointsLists[i].push({\n        x,\n        y\n      });\n    }\n  }\n\n  return quadPointsLists.map(quadPointsList => {\n    const [minX, maxX, minY, maxY] = quadPointsList.reduce(([mX, MX, mY, MY], quadPoint) => [Math.min(mX, quadPoint.x), Math.max(MX, quadPoint.x), Math.min(mY, quadPoint.y), Math.max(MY, quadPoint.y)], [Number.MAX_VALUE, Number.MIN_VALUE, Number.MAX_VALUE, Number.MIN_VALUE]);\n    return [{\n      x: minX,\n      y: maxY\n    }, {\n      x: maxX,\n      y: maxY\n    }, {\n      x: minX,\n      y: minY\n    }, {\n      x: maxX,\n      y: minY\n    }];\n  });\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n  const [minX, minY, maxX, maxY] = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n\n  if (minX === maxX || minY === maxY) {\n    return [1, 0, 0, 1, rect[0], rect[1]];\n  }\n\n  const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n  const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n  return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n}\n\nclass Annotation {\n  constructor(params) {\n    const dict = params.dict;\n    this.setTitle(dict.get(\"T\"));\n    this.setContents(dict.get(\"Contents\"));\n    this.setModificationDate(dict.get(\"M\"));\n    this.setFlags(dict.get(\"F\"));\n    this.setRectangle(dict.getArray(\"Rect\"));\n    this.setColor(dict.getArray(\"C\"));\n    this.setBorderStyle(dict);\n    this.setAppearance(dict);\n    this.setOptionalContent(dict);\n    const MK = dict.get(\"MK\");\n    this.setBorderAndBackgroundColors(MK);\n    this.setRotation(MK);\n    this._streams = [];\n\n    if (this.appearance) {\n      this._streams.push(this.appearance);\n    }\n\n    this.data = {\n      annotationFlags: this.flags,\n      borderStyle: this.borderStyle,\n      color: this.color,\n      backgroundColor: this.backgroundColor,\n      borderColor: this.borderColor,\n      rotation: this.rotation,\n      contentsObj: this._contents,\n      hasAppearance: !!this.appearance,\n      id: params.id,\n      modificationDate: this.modificationDate,\n      rect: this.rectangle,\n      subtype: params.subtype,\n      hasOwnCanvas: false\n    };\n\n    if (params.collectFields) {\n      const kids = dict.get(\"Kids\");\n\n      if (Array.isArray(kids)) {\n        const kidIds = [];\n\n        for (const kid of kids) {\n          if (kid instanceof _primitives.Ref) {\n            kidIds.push(kid.toString());\n          }\n        }\n\n        if (kidIds.length !== 0) {\n          this.data.kidIds = kidIds;\n        }\n      }\n\n      this.data.actions = (0, _core_utils.collectActions)(params.xref, dict, _util.AnnotationActionEventType);\n      this.data.fieldName = this._constructFieldName(dict);\n      this.data.pageIndex = params.pageIndex;\n    }\n\n    this._fallbackFontDict = null;\n  }\n\n  _hasFlag(flags, flag) {\n    return !!(flags & flag);\n  }\n\n  _isViewable(flags) {\n    return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n  }\n\n  _isPrintable(flags) {\n    return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE);\n  }\n\n  mustBeViewed(annotationStorage) {\n    const storageEntry = annotationStorage && annotationStorage.get(this.data.id);\n\n    if (storageEntry && storageEntry.hidden !== undefined) {\n      return !storageEntry.hidden;\n    }\n\n    return this.viewable && !this._hasFlag(this.flags, _util.AnnotationFlag.HIDDEN);\n  }\n\n  mustBePrinted(annotationStorage) {\n    const storageEntry = annotationStorage && annotationStorage.get(this.data.id);\n\n    if (storageEntry && storageEntry.print !== undefined) {\n      return storageEntry.print;\n    }\n\n    return this.printable;\n  }\n\n  get viewable() {\n    if (this.data.quadPoints === null) {\n      return false;\n    }\n\n    if (this.flags === 0) {\n      return true;\n    }\n\n    return this._isViewable(this.flags);\n  }\n\n  get printable() {\n    if (this.data.quadPoints === null) {\n      return false;\n    }\n\n    if (this.flags === 0) {\n      return false;\n    }\n\n    return this._isPrintable(this.flags);\n  }\n\n  _parseStringHelper(data) {\n    const str = typeof data === \"string\" ? (0, _util.stringToPDFString)(data) : \"\";\n    const dir = str && (0, _bidi.bidi)(str).dir === \"rtl\" ? \"rtl\" : \"ltr\";\n    return {\n      str,\n      dir\n    };\n  }\n\n  setTitle(title) {\n    this._title = this._parseStringHelper(title);\n  }\n\n  setContents(contents) {\n    this._contents = this._parseStringHelper(contents);\n  }\n\n  setModificationDate(modificationDate) {\n    this.modificationDate = typeof modificationDate === \"string\" ? modificationDate : null;\n  }\n\n  setFlags(flags) {\n    this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n  }\n\n  hasFlag(flag) {\n    return this._hasFlag(this.flags, flag);\n  }\n\n  setRectangle(rectangle) {\n    if (Array.isArray(rectangle) && rectangle.length === 4) {\n      this.rectangle = _util.Util.normalizeRect(rectangle);\n    } else {\n      this.rectangle = [0, 0, 0, 0];\n    }\n  }\n\n  setColor(color) {\n    this.color = getRgbColor(color);\n  }\n\n  setLineEndings(lineEndings) {\n    this.lineEndings = [\"None\", \"None\"];\n\n    if (Array.isArray(lineEndings) && lineEndings.length === 2) {\n      for (let i = 0; i < 2; i++) {\n        const obj = lineEndings[i];\n\n        if (obj instanceof _primitives.Name) {\n          switch (obj.name) {\n            case \"None\":\n              continue;\n\n            case \"Square\":\n            case \"Circle\":\n            case \"Diamond\":\n            case \"OpenArrow\":\n            case \"ClosedArrow\":\n            case \"Butt\":\n            case \"ROpenArrow\":\n            case \"RClosedArrow\":\n            case \"Slash\":\n              this.lineEndings[i] = obj.name;\n              continue;\n          }\n        }\n\n        (0, _util.warn)(`Ignoring invalid lineEnding: ${obj}`);\n      }\n    }\n  }\n\n  setRotation(mk) {\n    this.rotation = 0;\n\n    if (mk instanceof _primitives.Dict) {\n      let angle = mk.get(\"R\") || 0;\n\n      if (Number.isInteger(angle) && angle !== 0) {\n        angle %= 360;\n\n        if (angle < 0) {\n          angle += 360;\n        }\n\n        if (angle % 90 === 0) {\n          this.rotation = angle;\n        }\n      }\n    }\n  }\n\n  setBorderAndBackgroundColors(mk) {\n    if (mk instanceof _primitives.Dict) {\n      this.borderColor = getRgbColor(mk.getArray(\"BC\"), null);\n      this.backgroundColor = getRgbColor(mk.getArray(\"BG\"), null);\n    } else {\n      this.borderColor = this.backgroundColor = null;\n    }\n  }\n\n  setBorderStyle(borderStyle) {\n    this.borderStyle = new AnnotationBorderStyle();\n\n    if (!(borderStyle instanceof _primitives.Dict)) {\n      return;\n    }\n\n    if (borderStyle.has(\"BS\")) {\n      const dict = borderStyle.get(\"BS\");\n      const dictType = dict.get(\"Type\");\n\n      if (!dictType || (0, _primitives.isName)(dictType, \"Border\")) {\n        this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n        this.borderStyle.setStyle(dict.get(\"S\"));\n        this.borderStyle.setDashArray(dict.getArray(\"D\"));\n      }\n    } else if (borderStyle.has(\"Border\")) {\n      const array = borderStyle.getArray(\"Border\");\n\n      if (Array.isArray(array) && array.length >= 3) {\n        this.borderStyle.setHorizontalCornerRadius(array[0]);\n        this.borderStyle.setVerticalCornerRadius(array[1]);\n        this.borderStyle.setWidth(array[2], this.rectangle);\n\n        if (array.length === 4) {\n          this.borderStyle.setDashArray(array[3], true);\n        }\n      }\n    } else {\n      this.borderStyle.setWidth(0);\n    }\n  }\n\n  setAppearance(dict) {\n    this.appearance = null;\n    const appearanceStates = dict.get(\"AP\");\n\n    if (!(appearanceStates instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const normalAppearanceState = appearanceStates.get(\"N\");\n\n    if (normalAppearanceState instanceof _base_stream.BaseStream) {\n      this.appearance = normalAppearanceState;\n      return;\n    }\n\n    if (!(normalAppearanceState instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const as = dict.get(\"AS\");\n\n    if (!(as instanceof _primitives.Name) || !normalAppearanceState.has(as.name)) {\n      return;\n    }\n\n    this.appearance = normalAppearanceState.get(as.name);\n  }\n\n  setOptionalContent(dict) {\n    this.oc = null;\n    const oc = dict.get(\"OC\");\n\n    if (oc instanceof _primitives.Name) {\n      (0, _util.warn)(\"setOptionalContent: Support for /Name-entry is not implemented.\");\n    } else if (oc instanceof _primitives.Dict) {\n      this.oc = oc;\n    }\n  }\n\n  loadResources(keys, appearance) {\n    return appearance.dict.getAsync(\"Resources\").then(resources => {\n      if (!resources) {\n        return undefined;\n      }\n\n      const objectLoader = new _object_loader.ObjectLoader(resources, keys, resources.xref);\n      return objectLoader.load().then(function () {\n        return resources;\n      });\n    });\n  }\n\n  async getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n    const data = this.data;\n    let appearance = this.appearance;\n    const isUsingOwnCanvas = !!(this.data.hasOwnCanvas && intent & _util.RenderingIntentFlag.DISPLAY);\n\n    if (!appearance) {\n      if (!isUsingOwnCanvas) {\n        return {\n          opList: new _operator_list.OperatorList(),\n          separateForm: false,\n          separateCanvas: false\n        };\n      }\n\n      appearance = new _stream.StringStream(\"\");\n      appearance.dict = new _primitives.Dict();\n    }\n\n    const appearanceDict = appearance.dict;\n    const resources = await this.loadResources([\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"], appearance);\n    const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n    const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n    const transform = getTransformMatrix(data.rect, bbox, matrix);\n    const opList = new _operator_list.OperatorList();\n    let optionalContent;\n\n    if (this.oc) {\n      optionalContent = await evaluator.parseMarkedContentProps(this.oc, null);\n    }\n\n    if (optionalContent !== undefined) {\n      opList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    opList.addOp(_util.OPS.beginAnnotation, [data.id, data.rect, transform, matrix, isUsingOwnCanvas]);\n    await evaluator.getOperatorList({\n      stream: appearance,\n      task,\n      resources,\n      operatorList: opList,\n      fallbackFontDict: this._fallbackFontDict\n    });\n    opList.addOp(_util.OPS.endAnnotation, []);\n\n    if (optionalContent !== undefined) {\n      opList.addOp(_util.OPS.endMarkedContent, []);\n    }\n\n    this.reset();\n    return {\n      opList,\n      separateForm: false,\n      separateCanvas: isUsingOwnCanvas\n    };\n  }\n\n  async save(evaluator, task, annotationStorage) {\n    return null;\n  }\n\n  get hasTextContent() {\n    return false;\n  }\n\n  async extractTextContent(evaluator, task, viewBox) {\n    if (!this.appearance) {\n      return;\n    }\n\n    const resources = await this.loadResources([\"ExtGState\", \"Font\", \"Properties\", \"XObject\"], this.appearance);\n    const text = [];\n    const buffer = [];\n    const sink = {\n      desiredSize: Math.Infinity,\n      ready: true,\n\n      enqueue(chunk, size) {\n        for (const item of chunk.items) {\n          buffer.push(item.str);\n\n          if (item.hasEOL) {\n            text.push(buffer.join(\"\"));\n            buffer.length = 0;\n          }\n        }\n      }\n\n    };\n    await evaluator.getTextContent({\n      stream: this.appearance,\n      task,\n      resources,\n      includeMarkedContent: true,\n      combineTextItems: true,\n      sink,\n      viewBox\n    });\n    this.reset();\n\n    if (buffer.length) {\n      text.push(buffer.join(\"\"));\n    }\n\n    if (text.length > 0) {\n      this.data.textContent = text;\n    }\n  }\n\n  getFieldObject() {\n    if (this.data.kidIds) {\n      return {\n        id: this.data.id,\n        actions: this.data.actions,\n        name: this.data.fieldName,\n        strokeColor: this.data.borderColor,\n        fillColor: this.data.backgroundColor,\n        type: \"\",\n        kidIds: this.data.kidIds,\n        page: this.data.pageIndex,\n        rotation: this.rotation\n      };\n    }\n\n    return null;\n  }\n\n  reset() {\n    for (const stream of this._streams) {\n      stream.reset();\n    }\n  }\n\n  _constructFieldName(dict) {\n    if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n      (0, _util.warn)(\"Unknown field name, falling back to empty field name.\");\n      return \"\";\n    }\n\n    if (!dict.has(\"Parent\")) {\n      return (0, _util.stringToPDFString)(dict.get(\"T\"));\n    }\n\n    const fieldName = [];\n\n    if (dict.has(\"T\")) {\n      fieldName.unshift((0, _util.stringToPDFString)(dict.get(\"T\")));\n    }\n\n    let loopDict = dict;\n    const visited = new _primitives.RefSet();\n\n    if (dict.objId) {\n      visited.put(dict.objId);\n    }\n\n    while (loopDict.has(\"Parent\")) {\n      loopDict = loopDict.get(\"Parent\");\n\n      if (!(loopDict instanceof _primitives.Dict) || loopDict.objId && visited.has(loopDict.objId)) {\n        break;\n      }\n\n      if (loopDict.objId) {\n        visited.put(loopDict.objId);\n      }\n\n      if (loopDict.has(\"T\")) {\n        fieldName.unshift((0, _util.stringToPDFString)(loopDict.get(\"T\")));\n      }\n    }\n\n    return fieldName.join(\".\");\n  }\n\n}\n\nexports.Annotation = Annotation;\n\nclass AnnotationBorderStyle {\n  constructor() {\n    this.width = 1;\n    this.style = _util.AnnotationBorderStyleType.SOLID;\n    this.dashArray = [3];\n    this.horizontalCornerRadius = 0;\n    this.verticalCornerRadius = 0;\n  }\n\n  setWidth(width, rect = [0, 0, 0, 0]) {\n    if (width instanceof _primitives.Name) {\n      this.width = 0;\n      return;\n    }\n\n    if (typeof width === \"number\") {\n      if (width > 0) {\n        const maxWidth = (rect[2] - rect[0]) / 2;\n        const maxHeight = (rect[3] - rect[1]) / 2;\n\n        if (maxWidth > 0 && maxHeight > 0 && (width > maxWidth || width > maxHeight)) {\n          (0, _util.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n          width = 1;\n        }\n      }\n\n      this.width = width;\n    }\n  }\n\n  setStyle(style) {\n    if (!(style instanceof _primitives.Name)) {\n      return;\n    }\n\n    switch (style.name) {\n      case \"S\":\n        this.style = _util.AnnotationBorderStyleType.SOLID;\n        break;\n\n      case \"D\":\n        this.style = _util.AnnotationBorderStyleType.DASHED;\n        break;\n\n      case \"B\":\n        this.style = _util.AnnotationBorderStyleType.BEVELED;\n        break;\n\n      case \"I\":\n        this.style = _util.AnnotationBorderStyleType.INSET;\n        break;\n\n      case \"U\":\n        this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n        break;\n\n      default:\n        break;\n    }\n  }\n\n  setDashArray(dashArray, forceStyle = false) {\n    if (Array.isArray(dashArray) && dashArray.length > 0) {\n      let isValid = true;\n      let allZeros = true;\n\n      for (const element of dashArray) {\n        const validNumber = +element >= 0;\n\n        if (!validNumber) {\n          isValid = false;\n          break;\n        } else if (element > 0) {\n          allZeros = false;\n        }\n      }\n\n      if (isValid && !allZeros) {\n        this.dashArray = dashArray;\n\n        if (forceStyle) {\n          this.setStyle(_primitives.Name.get(\"D\"));\n        }\n      } else {\n        this.width = 0;\n      }\n    } else if (dashArray) {\n      this.width = 0;\n    }\n  }\n\n  setHorizontalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.horizontalCornerRadius = radius;\n    }\n  }\n\n  setVerticalCornerRadius(radius) {\n    if (Number.isInteger(radius)) {\n      this.verticalCornerRadius = radius;\n    }\n  }\n\n}\n\nexports.AnnotationBorderStyle = AnnotationBorderStyle;\n\nclass MarkupAnnotation extends Annotation {\n  constructor(parameters) {\n    super(parameters);\n    const dict = parameters.dict;\n\n    if (dict.has(\"IRT\")) {\n      const rawIRT = dict.getRaw(\"IRT\");\n      this.data.inReplyTo = rawIRT instanceof _primitives.Ref ? rawIRT.toString() : null;\n      const rt = dict.get(\"RT\");\n      this.data.replyType = rt instanceof _primitives.Name ? rt.name : _util.AnnotationReplyType.REPLY;\n    }\n\n    if (this.data.replyType === _util.AnnotationReplyType.GROUP) {\n      const parent = dict.get(\"IRT\");\n      this.setTitle(parent.get(\"T\"));\n      this.data.titleObj = this._title;\n      this.setContents(parent.get(\"Contents\"));\n      this.data.contentsObj = this._contents;\n\n      if (!parent.has(\"CreationDate\")) {\n        this.data.creationDate = null;\n      } else {\n        this.setCreationDate(parent.get(\"CreationDate\"));\n        this.data.creationDate = this.creationDate;\n      }\n\n      if (!parent.has(\"M\")) {\n        this.data.modificationDate = null;\n      } else {\n        this.setModificationDate(parent.get(\"M\"));\n        this.data.modificationDate = this.modificationDate;\n      }\n\n      this.data.hasPopup = parent.has(\"Popup\");\n\n      if (!parent.has(\"C\")) {\n        this.data.color = null;\n      } else {\n        this.setColor(parent.getArray(\"C\"));\n        this.data.color = this.color;\n      }\n    } else {\n      this.data.titleObj = this._title;\n      this.setCreationDate(dict.get(\"CreationDate\"));\n      this.data.creationDate = this.creationDate;\n      this.data.hasPopup = dict.has(\"Popup\");\n\n      if (!dict.has(\"C\")) {\n        this.data.color = null;\n      }\n    }\n\n    if (dict.has(\"RC\")) {\n      this.data.richText = _factory.XFAFactory.getRichTextAsHtml(dict.get(\"RC\"));\n    }\n  }\n\n  setCreationDate(creationDate) {\n    this.creationDate = typeof creationDate === \"string\" ? creationDate : null;\n  }\n\n  _setDefaultAppearance({\n    xref,\n    extra,\n    strokeColor,\n    fillColor,\n    blendMode,\n    strokeAlpha,\n    fillAlpha,\n    pointsCallback\n  }) {\n    let minX = Number.MAX_VALUE;\n    let minY = Number.MAX_VALUE;\n    let maxX = Number.MIN_VALUE;\n    let maxY = Number.MIN_VALUE;\n    const buffer = [\"q\"];\n\n    if (extra) {\n      buffer.push(extra);\n    }\n\n    if (strokeColor) {\n      buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n    }\n\n    if (fillColor) {\n      buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n    }\n\n    let pointsArray = this.data.quadPoints;\n\n    if (!pointsArray) {\n      pointsArray = [[{\n        x: this.rectangle[0],\n        y: this.rectangle[3]\n      }, {\n        x: this.rectangle[2],\n        y: this.rectangle[3]\n      }, {\n        x: this.rectangle[0],\n        y: this.rectangle[1]\n      }, {\n        x: this.rectangle[2],\n        y: this.rectangle[1]\n      }]];\n    }\n\n    for (const points of pointsArray) {\n      const [mX, MX, mY, MY] = pointsCallback(buffer, points);\n      minX = Math.min(minX, mX);\n      maxX = Math.max(maxX, MX);\n      minY = Math.min(minY, mY);\n      maxY = Math.max(maxY, MY);\n    }\n\n    buffer.push(\"Q\");\n    const formDict = new _primitives.Dict(xref);\n    const appearanceStreamDict = new _primitives.Dict(xref);\n    appearanceStreamDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    const appearanceStream = new _stream.StringStream(buffer.join(\" \"));\n    appearanceStream.dict = appearanceStreamDict;\n    formDict.set(\"Fm0\", appearanceStream);\n    const gsDict = new _primitives.Dict(xref);\n\n    if (blendMode) {\n      gsDict.set(\"BM\", _primitives.Name.get(blendMode));\n    }\n\n    if (typeof strokeAlpha === \"number\") {\n      gsDict.set(\"CA\", strokeAlpha);\n    }\n\n    if (typeof fillAlpha === \"number\") {\n      gsDict.set(\"ca\", fillAlpha);\n    }\n\n    const stateDict = new _primitives.Dict(xref);\n    stateDict.set(\"GS0\", gsDict);\n    const resources = new _primitives.Dict(xref);\n    resources.set(\"ExtGState\", stateDict);\n    resources.set(\"XObject\", formDict);\n    const appearanceDict = new _primitives.Dict(xref);\n    appearanceDict.set(\"Resources\", resources);\n    const bbox = this.data.rect = [minX, minY, maxX, maxY];\n    appearanceDict.set(\"BBox\", bbox);\n    this.appearance = new _stream.StringStream(\"/GS0 gs /Fm0 Do\");\n    this.appearance.dict = appearanceDict;\n\n    this._streams.push(this.appearance, appearanceStream);\n  }\n\n  static async createNewAnnotation(xref, annotation, dependencies, params) {\n    const annotationRef = xref.getNewRef();\n    const apRef = xref.getNewRef();\n    const annotationDict = this.createNewDict(annotation, xref, {\n      apRef\n    });\n    const ap = await this.createNewAppearanceStream(annotation, xref, params);\n    const buffer = [];\n    let transform = xref.encrypt ? xref.encrypt.createCipherTransform(apRef.num, apRef.gen) : null;\n    (0, _writer.writeObject)(apRef, ap, buffer, transform);\n    dependencies.push({\n      ref: apRef,\n      data: buffer.join(\"\")\n    });\n    buffer.length = 0;\n    transform = xref.encrypt ? xref.encrypt.createCipherTransform(annotationRef.num, annotationRef.gen) : null;\n    (0, _writer.writeObject)(annotationRef, annotationDict, buffer, transform);\n    return {\n      ref: annotationRef,\n      data: buffer.join(\"\")\n    };\n  }\n\n  static async createNewPrintAnnotation(xref, annotation, params) {\n    const ap = await this.createNewAppearanceStream(annotation, xref, params);\n    const annotationDict = this.createNewDict(annotation, xref, {\n      ap\n    });\n    return new this.prototype.constructor({\n      dict: annotationDict,\n      xref\n    });\n  }\n\n}\n\nexports.MarkupAnnotation = MarkupAnnotation;\n\nclass WidgetAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n    const dict = params.dict;\n    const data = this.data;\n    this.ref = params.ref;\n    data.annotationType = _util.AnnotationType.WIDGET;\n\n    if (data.fieldName === undefined) {\n      data.fieldName = this._constructFieldName(dict);\n    }\n\n    if (data.actions === undefined) {\n      data.actions = (0, _core_utils.collectActions)(params.xref, dict, _util.AnnotationActionEventType);\n    }\n\n    let fieldValue = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"V\",\n      getArray: true\n    });\n    data.fieldValue = this._decodeFormValue(fieldValue);\n    const defaultFieldValue = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"DV\",\n      getArray: true\n    });\n    data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n\n    if (fieldValue === undefined && params.xfaDatasets) {\n      const path = this._title.str;\n\n      if (path) {\n        this._hasValueFromXFA = true;\n        data.fieldValue = fieldValue = params.xfaDatasets.getValue(path);\n      }\n    }\n\n    if (fieldValue === undefined && data.defaultFieldValue !== null) {\n      data.fieldValue = data.defaultFieldValue;\n    }\n\n    data.alternativeText = (0, _util.stringToPDFString)(dict.get(\"TU\") || \"\");\n    const defaultAppearance = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"DA\"\n    }) || params.acroForm.get(\"DA\");\n    this._defaultAppearance = typeof defaultAppearance === \"string\" ? defaultAppearance : \"\";\n    data.defaultAppearanceData = (0, _default_appearance.parseDefaultAppearance)(this._defaultAppearance);\n    const fieldType = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"FT\"\n    });\n    data.fieldType = fieldType instanceof _primitives.Name ? fieldType.name : null;\n    const localResources = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"DR\"\n    });\n    const acroFormResources = params.acroForm.get(\"DR\");\n    const appearanceResources = this.appearance && this.appearance.dict.get(\"Resources\");\n    this._fieldResources = {\n      localResources,\n      acroFormResources,\n      appearanceResources,\n      mergedResources: _primitives.Dict.merge({\n        xref: params.xref,\n        dictArray: [localResources, appearanceResources, acroFormResources],\n        mergeSubDicts: true\n      })\n    };\n    data.fieldFlags = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"Ff\"\n    });\n\n    if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n      data.fieldFlags = 0;\n    }\n\n    data.readOnly = this.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n    data.required = this.hasFieldFlag(_util.AnnotationFieldFlag.REQUIRED);\n    data.hidden = this._hasFlag(data.annotationFlags, _util.AnnotationFlag.HIDDEN);\n  }\n\n  _decodeFormValue(formValue) {\n    if (Array.isArray(formValue)) {\n      return formValue.filter(item => typeof item === \"string\").map(item => (0, _util.stringToPDFString)(item));\n    } else if (formValue instanceof _primitives.Name) {\n      return (0, _util.stringToPDFString)(formValue.name);\n    } else if (typeof formValue === \"string\") {\n      return (0, _util.stringToPDFString)(formValue);\n    }\n\n    return null;\n  }\n\n  hasFieldFlag(flag) {\n    return !!(this.data.fieldFlags & flag);\n  }\n\n  static _getRotationMatrix(rotation, width, height) {\n    switch (rotation) {\n      case 90:\n        return [0, 1, -1, 0, width, 0];\n\n      case 180:\n        return [-1, 0, 0, -1, width, height];\n\n      case 270:\n        return [0, -1, 1, 0, 0, height];\n\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n\n  getRotationMatrix(annotationStorage) {\n    const storageEntry = annotationStorage ? annotationStorage.get(this.data.id) : undefined;\n    let rotation = storageEntry && storageEntry.rotation;\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    if (rotation === 0) {\n      return _util.IDENTITY_MATRIX;\n    }\n\n    const width = this.data.rect[2] - this.data.rect[0];\n    const height = this.data.rect[3] - this.data.rect[1];\n    return WidgetAnnotation._getRotationMatrix(rotation, width, height);\n  }\n\n  getBorderAndBackgroundAppearances(annotationStorage) {\n    const storageEntry = annotationStorage ? annotationStorage.get(this.data.id) : undefined;\n    let rotation = storageEntry && storageEntry.rotation;\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    if (!this.backgroundColor && !this.borderColor) {\n      return \"\";\n    }\n\n    const width = this.data.rect[2] - this.data.rect[0];\n    const height = this.data.rect[3] - this.data.rect[1];\n    const rect = rotation === 0 || rotation === 180 ? `0 0 ${width} ${height} re` : `0 0 ${height} ${width} re`;\n    let str = \"\";\n\n    if (this.backgroundColor) {\n      str = `${(0, _default_appearance.getPdfColor)(this.backgroundColor, true)} ${rect} f `;\n    }\n\n    if (this.borderColor) {\n      const borderWidth = this.borderStyle.width || 1;\n      str += `${borderWidth} w ${(0, _default_appearance.getPdfColor)(this.borderColor, false)} ${rect} S `;\n    }\n\n    return str;\n  }\n\n  async getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n    if (renderForms && !(this instanceof SignatureWidgetAnnotation)) {\n      return {\n        opList: new _operator_list.OperatorList(),\n        separateForm: true,\n        separateCanvas: false\n      };\n    }\n\n    if (!this._hasText) {\n      return super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage);\n    }\n\n    const content = await this._getAppearance(evaluator, task, annotationStorage);\n\n    if (this.appearance && content === null) {\n      return super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage);\n    }\n\n    const opList = new _operator_list.OperatorList();\n\n    if (!this._defaultAppearance || content === null) {\n      return {\n        opList,\n        separateForm: false,\n        separateCanvas: false\n      };\n    }\n\n    const matrix = [1, 0, 0, 1, 0, 0];\n    const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]];\n    const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n    let optionalContent;\n\n    if (this.oc) {\n      optionalContent = await evaluator.parseMarkedContentProps(this.oc, null);\n    }\n\n    if (optionalContent !== undefined) {\n      opList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    opList.addOp(_util.OPS.beginAnnotation, [this.data.id, this.data.rect, transform, this.getRotationMatrix(annotationStorage), false]);\n    const stream = new _stream.StringStream(content);\n    await evaluator.getOperatorList({\n      stream,\n      task,\n      resources: this._fieldResources.mergedResources,\n      operatorList: opList\n    });\n    opList.addOp(_util.OPS.endAnnotation, []);\n\n    if (optionalContent !== undefined) {\n      opList.addOp(_util.OPS.endMarkedContent, []);\n    }\n\n    return {\n      opList,\n      separateForm: false,\n      separateCanvas: false\n    };\n  }\n\n  _getMKDict(rotation) {\n    const mk = new _primitives.Dict(null);\n\n    if (rotation) {\n      mk.set(\"R\", rotation);\n    }\n\n    if (this.borderColor) {\n      mk.set(\"BC\", Array.from(this.borderColor).map(c => c / 255));\n    }\n\n    if (this.backgroundColor) {\n      mk.set(\"BG\", Array.from(this.backgroundColor).map(c => c / 255));\n    }\n\n    return mk.size > 0 ? mk : null;\n  }\n\n  async save(evaluator, task, annotationStorage) {\n    const storageEntry = annotationStorage ? annotationStorage.get(this.data.id) : undefined;\n    let value = storageEntry && storageEntry.value;\n    let rotation = storageEntry && storageEntry.rotation;\n\n    if (value === this.data.fieldValue || value === undefined) {\n      if (!this._hasValueFromXFA && rotation === undefined) {\n        return null;\n      }\n\n      value = value || this.data.fieldValue;\n    }\n\n    if (rotation === undefined && !this._hasValueFromXFA && Array.isArray(value) && Array.isArray(this.data.fieldValue) && value.length === this.data.fieldValue.length && value.every((x, i) => x === this.data.fieldValue[i])) {\n      return null;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    let appearance = await this._getAppearance(evaluator, task, annotationStorage);\n\n    if (appearance === null) {\n      return null;\n    }\n\n    const {\n      xref\n    } = evaluator;\n    const dict = xref.fetchIfRef(this.ref);\n\n    if (!(dict instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    const bbox = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]];\n    const xfa = {\n      path: (0, _util.stringToPDFString)(dict.get(\"T\") || \"\"),\n      value\n    };\n    const newRef = xref.getNewRef();\n    const AP = new _primitives.Dict(xref);\n    AP.set(\"N\", newRef);\n    const encrypt = xref.encrypt;\n    let originalTransform = null;\n    let newTransform = null;\n\n    if (encrypt) {\n      originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n      newTransform = encrypt.createCipherTransform(newRef.num, newRef.gen);\n      appearance = newTransform.encryptString(appearance);\n    }\n\n    const encoder = val => (0, _util.isAscii)(val) ? val : (0, _util.stringToUTF16BEString)(val);\n\n    dict.set(\"V\", Array.isArray(value) ? value.map(encoder) : encoder(value));\n    dict.set(\"AP\", AP);\n    dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n\n    const maybeMK = this._getMKDict(rotation);\n\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n\n    const appearanceDict = new _primitives.Dict(xref);\n    appearanceDict.set(\"Length\", appearance.length);\n    appearanceDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    appearanceDict.set(\"Resources\", this._getSaveFieldResources(xref));\n    appearanceDict.set(\"BBox\", bbox);\n    const rotationMatrix = this.getRotationMatrix(annotationStorage);\n\n    if (rotationMatrix !== _util.IDENTITY_MATRIX) {\n      appearanceDict.set(\"Matrix\", rotationMatrix);\n    }\n\n    const bufferOriginal = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n    (0, _writer.writeDict)(dict, bufferOriginal, originalTransform);\n    bufferOriginal.push(\"\\nendobj\\n\");\n    const bufferNew = [`${newRef.num} ${newRef.gen} obj\\n`];\n    (0, _writer.writeDict)(appearanceDict, bufferNew, newTransform);\n    bufferNew.push(\" stream\\n\", appearance, \"\\nendstream\\nendobj\\n\");\n    return [{\n      ref: this.ref,\n      data: bufferOriginal.join(\"\"),\n      xfa\n    }, {\n      ref: newRef,\n      data: bufferNew.join(\"\"),\n      xfa: null\n    }];\n  }\n\n  async _getAppearance(evaluator, task, annotationStorage) {\n    const isPassword = this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD);\n\n    if (isPassword) {\n      return null;\n    }\n\n    const storageEntry = annotationStorage ? annotationStorage.get(this.data.id) : undefined;\n    let value, rotation;\n\n    if (storageEntry) {\n      value = storageEntry.formattedValue || storageEntry.value;\n      rotation = storageEntry.rotation;\n    }\n\n    if (rotation === undefined && value === undefined) {\n      if (!this._hasValueFromXFA || this.appearance) {\n        return null;\n      }\n    }\n\n    if (value === undefined) {\n      value = this.data.fieldValue;\n\n      if (!value) {\n        return \"\";\n      }\n    }\n\n    if (Array.isArray(value) && value.length === 1) {\n      value = value[0];\n    }\n\n    (0, _util.assert)(typeof value === \"string\", \"Expected `value` to be a string.\");\n    value = value.trim();\n\n    if (value === \"\") {\n      return \"\";\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    let lineCount = -1;\n\n    if (this.data.multiLine) {\n      lineCount = value.split(/\\r\\n|\\r|\\n/).length;\n    }\n\n    const defaultPadding = 2;\n    const hPadding = defaultPadding;\n    let totalHeight = this.data.rect[3] - this.data.rect[1];\n    let totalWidth = this.data.rect[2] - this.data.rect[0];\n\n    if (rotation === 90 || rotation === 270) {\n      [totalWidth, totalHeight] = [totalHeight, totalWidth];\n    }\n\n    if (!this._defaultAppearance) {\n      this.data.defaultAppearanceData = (0, _default_appearance.parseDefaultAppearance)(this._defaultAppearance = \"/Helvetica 0 Tf 0 g\");\n    }\n\n    const font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources);\n\n    const [defaultAppearance, fontSize] = this._computeFontSize(totalHeight - defaultPadding, totalWidth - 2 * hPadding, value, font, lineCount);\n\n    let descent = font.descent;\n\n    if (isNaN(descent)) {\n      descent = 0;\n    }\n\n    const defaultVPadding = Math.min(Math.floor((totalHeight - fontSize) / 2), defaultPadding);\n    const vPadding = defaultVPadding + Math.abs(descent) * fontSize;\n    const alignment = this.data.textAlignment;\n\n    if (this.data.multiLine) {\n      return this._getMultilineAppearance(defaultAppearance, value, font, fontSize, totalWidth, totalHeight, alignment, hPadding, vPadding, annotationStorage);\n    }\n\n    const encodedString = font.encodeString(value).join(\"\");\n\n    if (this.data.comb) {\n      return this._getCombAppearance(defaultAppearance, font, encodedString, totalWidth, hPadding, vPadding, annotationStorage);\n    }\n\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n\n    if (alignment === 0 || alignment > 2) {\n      return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm (${(0, _util.escapeString)(encodedString)}) Tj` + \" ET Q EMC\";\n    }\n\n    const renderedText = this._renderText(encodedString, font, fontSize, totalWidth, alignment, hPadding, vPadding);\n\n    return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 0 Tm ${renderedText}` + \" ET Q EMC\";\n  }\n\n  static async _getFontData(evaluator, task, appearanceData, resources) {\n    const operatorList = new _operator_list.OperatorList();\n    const initialState = {\n      font: null,\n\n      clone() {\n        return this;\n      }\n\n    };\n    const {\n      fontName,\n      fontSize\n    } = appearanceData;\n    await evaluator.handleSetFont(resources, [fontName && _primitives.Name.get(fontName), fontSize], null, operatorList, task, initialState, null);\n    return initialState.font;\n  }\n\n  _getTextWidth(text, font) {\n    return font.charsToGlyphs(text).reduce((width, glyph) => width + glyph.width, 0) / 1000;\n  }\n\n  _computeFontSize(height, width, text, font, lineCount) {\n    let {\n      fontSize\n    } = this.data.defaultAppearanceData;\n\n    if (!fontSize) {\n      const roundWithTwoDigits = x => Math.floor(x * 100) / 100;\n\n      if (lineCount === -1) {\n        const textWidth = this._getTextWidth(text, font);\n\n        fontSize = roundWithTwoDigits(Math.min(height / _util.LINE_FACTOR, width / textWidth));\n      } else {\n        const lines = text.split(/\\r\\n?|\\n/);\n        const cachedLines = [];\n\n        for (const line of lines) {\n          const encoded = font.encodeString(line).join(\"\");\n          const glyphs = font.charsToGlyphs(encoded);\n          const positions = font.getCharPositions(encoded);\n          cachedLines.push({\n            line: encoded,\n            glyphs,\n            positions\n          });\n        }\n\n        const isTooBig = fsize => {\n          let totalHeight = 0;\n\n          for (const cache of cachedLines) {\n            const chunks = this._splitLine(null, font, fsize, width, cache);\n\n            totalHeight += chunks.length * fsize;\n\n            if (totalHeight > height) {\n              return true;\n            }\n          }\n\n          return false;\n        };\n\n        fontSize = 12;\n        let lineHeight = fontSize * _util.LINE_FACTOR;\n        let numberOfLines = Math.round(height / lineHeight);\n        numberOfLines = Math.max(numberOfLines, lineCount);\n\n        while (true) {\n          lineHeight = height / numberOfLines;\n          fontSize = roundWithTwoDigits(lineHeight / _util.LINE_FACTOR);\n\n          if (isTooBig(fontSize)) {\n            numberOfLines++;\n            continue;\n          }\n\n          break;\n        }\n      }\n\n      const {\n        fontName,\n        fontColor\n      } = this.data.defaultAppearanceData;\n      this._defaultAppearance = (0, _default_appearance.createDefaultAppearance)({\n        fontSize,\n        fontName,\n        fontColor\n      });\n    }\n\n    return [this._defaultAppearance, fontSize];\n  }\n\n  _renderText(text, font, fontSize, totalWidth, alignment, hPadding, vPadding) {\n    let shift;\n\n    if (alignment === 1) {\n      const width = this._getTextWidth(text, font) * fontSize;\n      shift = (totalWidth - width) / 2;\n    } else if (alignment === 2) {\n      const width = this._getTextWidth(text, font) * fontSize;\n      shift = totalWidth - width - hPadding;\n    } else {\n      shift = hPadding;\n    }\n\n    shift = (0, _core_utils.numberToString)(shift);\n    vPadding = (0, _core_utils.numberToString)(vPadding);\n    return `${shift} ${vPadding} Td (${(0, _util.escapeString)(text)}) Tj`;\n  }\n\n  _getSaveFieldResources(xref) {\n    const {\n      localResources,\n      appearanceResources,\n      acroFormResources\n    } = this._fieldResources;\n    const fontName = this.data.defaultAppearanceData && this.data.defaultAppearanceData.fontName;\n\n    if (!fontName) {\n      return localResources || _primitives.Dict.empty;\n    }\n\n    for (const resources of [localResources, appearanceResources]) {\n      if (resources instanceof _primitives.Dict) {\n        const localFont = resources.get(\"Font\");\n\n        if (localFont instanceof _primitives.Dict && localFont.has(fontName)) {\n          return resources;\n        }\n      }\n    }\n\n    if (acroFormResources instanceof _primitives.Dict) {\n      const acroFormFont = acroFormResources.get(\"Font\");\n\n      if (acroFormFont instanceof _primitives.Dict && acroFormFont.has(fontName)) {\n        const subFontDict = new _primitives.Dict(xref);\n        subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n        const subResourcesDict = new _primitives.Dict(xref);\n        subResourcesDict.set(\"Font\", subFontDict);\n        return _primitives.Dict.merge({\n          xref,\n          dictArray: [subResourcesDict, localResources],\n          mergeSubDicts: true\n        });\n      }\n    }\n\n    return localResources || _primitives.Dict.empty;\n  }\n\n  getFieldObject() {\n    return null;\n  }\n\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this._hasText = true;\n    const dict = params.dict;\n\n    if (typeof this.data.fieldValue !== \"string\") {\n      this.data.fieldValue = \"\";\n    }\n\n    let alignment = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"Q\"\n    });\n\n    if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n      alignment = null;\n    }\n\n    this.data.textAlignment = alignment;\n    let maximumLength = (0, _core_utils.getInheritableProperty)({\n      dict,\n      key: \"MaxLen\"\n    });\n\n    if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n      maximumLength = 0;\n    }\n\n    this.data.maxLen = maximumLength;\n    this.data.multiLine = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n    this.data.comb = this.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !this.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !this.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && this.data.maxLen !== 0;\n    this.data.doNotScroll = this.hasFieldFlag(_util.AnnotationFieldFlag.DONOTSCROLL);\n  }\n\n  _getCombAppearance(defaultAppearance, font, text, width, hPadding, vPadding, annotationStorage) {\n    const combWidth = (0, _core_utils.numberToString)(width / this.data.maxLen);\n    const buf = [];\n    const positions = font.getCharPositions(text);\n\n    for (const [start, end] of positions) {\n      buf.push(`(${(0, _util.escapeString)(text.substring(start, end))}) Tj`);\n    }\n\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n    const renderedComb = buf.join(` ${combWidth} 0 Td `);\n    return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}` + \" ET Q EMC\";\n  }\n\n  _getMultilineAppearance(defaultAppearance, text, font, fontSize, width, height, alignment, hPadding, vPadding, annotationStorage) {\n    const lines = text.split(/\\r\\n?|\\n/);\n    const buf = [];\n    const totalWidth = width - 2 * hPadding;\n\n    for (const line of lines) {\n      const chunks = this._splitLine(line, font, fontSize, totalWidth);\n\n      for (const chunk of chunks) {\n        const padding = buf.length === 0 ? hPadding : 0;\n        buf.push(this._renderText(chunk, font, fontSize, width, alignment, padding, -fontSize));\n      }\n    }\n\n    const renderedText = buf.join(\"\\n\");\n    const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n    return `/Tx BMC q ${colors}BT ` + defaultAppearance + ` 1 0 0 1 0 ${height} Tm ${renderedText}` + \" ET Q EMC\";\n  }\n\n  _splitLine(line, font, fontSize, width, cache = {}) {\n    line = cache.line || font.encodeString(line).join(\"\");\n    const glyphs = cache.glyphs || font.charsToGlyphs(line);\n\n    if (glyphs.length <= 1) {\n      return [line];\n    }\n\n    const positions = cache.positions || font.getCharPositions(line);\n    const scale = fontSize / 1000;\n    const chunks = [];\n    let lastSpacePosInStringStart = -1,\n        lastSpacePosInStringEnd = -1,\n        lastSpacePos = -1,\n        startChunk = 0,\n        currentWidth = 0;\n\n    for (let i = 0, ii = glyphs.length; i < ii; i++) {\n      const [start, end] = positions[i];\n      const glyph = glyphs[i];\n      const glyphWidth = glyph.width * scale;\n\n      if (glyph.unicode === \" \") {\n        if (currentWidth + glyphWidth > width) {\n          chunks.push(line.substring(startChunk, start));\n          startChunk = start;\n          currentWidth = glyphWidth;\n          lastSpacePosInStringStart = -1;\n          lastSpacePos = -1;\n        } else {\n          currentWidth += glyphWidth;\n          lastSpacePosInStringStart = start;\n          lastSpacePosInStringEnd = end;\n          lastSpacePos = i;\n        }\n      } else {\n        if (currentWidth + glyphWidth > width) {\n          if (lastSpacePosInStringStart !== -1) {\n            chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n            startChunk = lastSpacePosInStringEnd;\n            i = lastSpacePos + 1;\n            lastSpacePosInStringStart = -1;\n            currentWidth = 0;\n          } else {\n            chunks.push(line.substring(startChunk, start));\n            startChunk = start;\n            currentWidth = glyphWidth;\n          }\n        } else {\n          currentWidth += glyphWidth;\n        }\n      }\n    }\n\n    if (startChunk < line.length) {\n      chunks.push(line.substring(startChunk, line.length));\n    }\n\n    return chunks;\n  }\n\n  getFieldObject() {\n    return {\n      id: this.data.id,\n      value: this.data.fieldValue,\n      defaultValue: this.data.defaultFieldValue || \"\",\n      multiline: this.data.multiLine,\n      password: this.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD),\n      charLimit: this.data.maxLen,\n      comb: this.data.comb,\n      editable: !this.data.readOnly,\n      hidden: this.data.hidden,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      actions: this.data.actions,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type: \"text\"\n    };\n  }\n\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this.checkedAppearance = null;\n    this.uncheckedAppearance = null;\n    this.data.checkBox = !this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    this.data.radioButton = this.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    this.data.pushButton = this.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    this.data.isTooltipOnly = false;\n\n    if (this.data.checkBox) {\n      this._processCheckBox(params);\n    } else if (this.data.radioButton) {\n      this._processRadioButton(params);\n    } else if (this.data.pushButton) {\n      this.data.hasOwnCanvas = true;\n\n      this._processPushButton(params);\n    } else {\n      (0, _util.warn)(\"Invalid field flags for button widget annotation\");\n    }\n  }\n\n  async getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n    if (this.data.pushButton) {\n      return super.getOperatorList(evaluator, task, intent, false, annotationStorage);\n    }\n\n    let value = null;\n    let rotation = null;\n\n    if (annotationStorage) {\n      const storageEntry = annotationStorage.get(this.data.id);\n      value = storageEntry ? storageEntry.value : null;\n      rotation = storageEntry ? storageEntry.rotation : null;\n    }\n\n    if (value === null && this.appearance) {\n      return super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage);\n    }\n\n    if (value === null || value === undefined) {\n      if (this.data.checkBox) {\n        value = this.data.fieldValue === this.data.exportValue;\n      } else {\n        value = this.data.fieldValue === this.data.buttonValue;\n      }\n    }\n\n    const appearance = value ? this.checkedAppearance : this.uncheckedAppearance;\n\n    if (appearance) {\n      const savedAppearance = this.appearance;\n\n      const savedMatrix = appearance.dict.getArray(\"Matrix\") || _util.IDENTITY_MATRIX;\n\n      if (rotation) {\n        appearance.dict.set(\"Matrix\", this.getRotationMatrix(annotationStorage));\n      }\n\n      this.appearance = appearance;\n      const operatorList = super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage);\n      this.appearance = savedAppearance;\n      appearance.dict.set(\"Matrix\", savedMatrix);\n      return operatorList;\n    }\n\n    return {\n      opList: new _operator_list.OperatorList(),\n      separateForm: false,\n      separateCanvas: false\n    };\n  }\n\n  async save(evaluator, task, annotationStorage) {\n    if (this.data.checkBox) {\n      return this._saveCheckbox(evaluator, task, annotationStorage);\n    }\n\n    if (this.data.radioButton) {\n      return this._saveRadioButton(evaluator, task, annotationStorage);\n    }\n\n    return null;\n  }\n\n  async _saveCheckbox(evaluator, task, annotationStorage) {\n    if (!annotationStorage) {\n      return null;\n    }\n\n    const storageEntry = annotationStorage.get(this.data.id);\n    let rotation = storageEntry && storageEntry.rotation;\n    let value = storageEntry && storageEntry.value;\n\n    if (rotation === undefined) {\n      if (value === undefined) {\n        return null;\n      }\n\n      const defaultValue = this.data.fieldValue === this.data.exportValue;\n\n      if (defaultValue === value) {\n        return null;\n      }\n    }\n\n    const dict = evaluator.xref.fetchIfRef(this.ref);\n\n    if (!(dict instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    if (value === undefined) {\n      value = this.data.fieldValue === this.data.exportValue;\n    }\n\n    const xfa = {\n      path: (0, _util.stringToPDFString)(dict.get(\"T\") || \"\"),\n      value: value ? this.data.exportValue : \"\"\n    };\n\n    const name = _primitives.Name.get(value ? this.data.exportValue : \"Off\");\n\n    dict.set(\"V\", name);\n    dict.set(\"AS\", name);\n    dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n\n    const maybeMK = this._getMKDict(rotation);\n\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n\n    const encrypt = evaluator.xref.encrypt;\n    let originalTransform = null;\n\n    if (encrypt) {\n      originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n    }\n\n    const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n    (0, _writer.writeDict)(dict, buffer, originalTransform);\n    buffer.push(\"\\nendobj\\n\");\n    return [{\n      ref: this.ref,\n      data: buffer.join(\"\"),\n      xfa\n    }];\n  }\n\n  async _saveRadioButton(evaluator, task, annotationStorage) {\n    if (!annotationStorage) {\n      return null;\n    }\n\n    const storageEntry = annotationStorage.get(this.data.id);\n    let rotation = storageEntry && storageEntry.rotation;\n    let value = storageEntry && storageEntry.value;\n\n    if (rotation === undefined) {\n      if (value === undefined) {\n        return null;\n      }\n\n      const defaultValue = this.data.fieldValue === this.data.buttonValue;\n\n      if (defaultValue === value) {\n        return null;\n      }\n    }\n\n    const dict = evaluator.xref.fetchIfRef(this.ref);\n\n    if (!(dict instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    if (value === undefined) {\n      value = this.data.fieldValue === this.data.buttonValue;\n    }\n\n    if (rotation === undefined) {\n      rotation = this.rotation;\n    }\n\n    const xfa = {\n      path: (0, _util.stringToPDFString)(dict.get(\"T\") || \"\"),\n      value: value ? this.data.buttonValue : \"\"\n    };\n\n    const name = _primitives.Name.get(value ? this.data.buttonValue : \"Off\");\n\n    let parentBuffer = null;\n    const encrypt = evaluator.xref.encrypt;\n\n    if (value) {\n      if (this.parent instanceof _primitives.Ref) {\n        const parent = evaluator.xref.fetch(this.parent);\n        let parentTransform = null;\n\n        if (encrypt) {\n          parentTransform = encrypt.createCipherTransform(this.parent.num, this.parent.gen);\n        }\n\n        parent.set(\"V\", name);\n        parentBuffer = [`${this.parent.num} ${this.parent.gen} obj\\n`];\n        (0, _writer.writeDict)(parent, parentBuffer, parentTransform);\n        parentBuffer.push(\"\\nendobj\\n\");\n      } else if (this.parent instanceof _primitives.Dict) {\n        this.parent.set(\"V\", name);\n      }\n    }\n\n    dict.set(\"AS\", name);\n    dict.set(\"M\", `D:${(0, _util.getModificationDate)()}`);\n\n    const maybeMK = this._getMKDict(rotation);\n\n    if (maybeMK) {\n      dict.set(\"MK\", maybeMK);\n    }\n\n    let originalTransform = null;\n\n    if (encrypt) {\n      originalTransform = encrypt.createCipherTransform(this.ref.num, this.ref.gen);\n    }\n\n    const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n    (0, _writer.writeDict)(dict, buffer, originalTransform);\n    buffer.push(\"\\nendobj\\n\");\n    const newRefs = [{\n      ref: this.ref,\n      data: buffer.join(\"\"),\n      xfa\n    }];\n\n    if (parentBuffer !== null) {\n      newRefs.push({\n        ref: this.parent,\n        data: parentBuffer.join(\"\"),\n        xfa: null\n      });\n    }\n\n    return newRefs;\n  }\n\n  _getDefaultCheckedAppearance(params, type) {\n    const width = this.data.rect[2] - this.data.rect[0];\n    const height = this.data.rect[3] - this.data.rect[1];\n    const bbox = [0, 0, width, height];\n    const FONT_RATIO = 0.8;\n    const fontSize = Math.min(width, height) * FONT_RATIO;\n    let metrics, char;\n\n    if (type === \"check\") {\n      metrics = {\n        width: 0.755 * fontSize,\n        height: 0.705 * fontSize\n      };\n      char = \"\\x33\";\n    } else if (type === \"disc\") {\n      metrics = {\n        width: 0.791 * fontSize,\n        height: 0.705 * fontSize\n      };\n      char = \"\\x6C\";\n    } else {\n      (0, _util.unreachable)(`_getDefaultCheckedAppearance - unsupported type: ${type}`);\n    }\n\n    const xShift = (0, _core_utils.numberToString)((width - metrics.width) / 2);\n    const yShift = (0, _core_utils.numberToString)((height - metrics.height) / 2);\n    const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;\n    const appearanceStreamDict = new _primitives.Dict(params.xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", _primitives.Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", bbox);\n    appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, 0, 0]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    const resources = new _primitives.Dict(params.xref);\n    const font = new _primitives.Dict(params.xref);\n    font.set(\"PdfJsZaDb\", this.fallbackFontDict);\n    resources.set(\"Font\", font);\n    appearanceStreamDict.set(\"Resources\", resources);\n    this.checkedAppearance = new _stream.StringStream(appearance);\n    this.checkedAppearance.dict = appearanceStreamDict;\n\n    this._streams.push(this.checkedAppearance);\n  }\n\n  _processCheckBox(params) {\n    const customAppearance = params.dict.get(\"AP\");\n\n    if (!(customAppearance instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const normalAppearance = customAppearance.get(\"N\");\n\n    if (!(normalAppearance instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const asValue = this._decodeFormValue(params.dict.get(\"AS\"));\n\n    if (typeof asValue === \"string\") {\n      this.data.fieldValue = asValue;\n    }\n\n    const yes = this.data.fieldValue !== null && this.data.fieldValue !== \"Off\" ? this.data.fieldValue : \"Yes\";\n    const exportValues = normalAppearance.getKeys();\n\n    if (exportValues.length === 0) {\n      exportValues.push(\"Off\", yes);\n    } else if (exportValues.length === 1) {\n      if (exportValues[0] === \"Off\") {\n        exportValues.push(yes);\n      } else {\n        exportValues.unshift(\"Off\");\n      }\n    } else if (exportValues.includes(yes)) {\n      exportValues.length = 0;\n      exportValues.push(\"Off\", yes);\n    } else {\n      const otherYes = exportValues.find(v => v !== \"Off\");\n      exportValues.length = 0;\n      exportValues.push(\"Off\", otherYes);\n    }\n\n    if (!exportValues.includes(this.data.fieldValue)) {\n      this.data.fieldValue = \"Off\";\n    }\n\n    this.data.exportValue = exportValues[1];\n    this.checkedAppearance = normalAppearance.get(this.data.exportValue) || null;\n    this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n    if (this.checkedAppearance) {\n      this._streams.push(this.checkedAppearance);\n    } else {\n      this._getDefaultCheckedAppearance(params, \"check\");\n    }\n\n    if (this.uncheckedAppearance) {\n      this._streams.push(this.uncheckedAppearance);\n    }\n\n    this._fallbackFontDict = this.fallbackFontDict;\n  }\n\n  _processRadioButton(params) {\n    this.data.fieldValue = this.data.buttonValue = null;\n    const fieldParent = params.dict.get(\"Parent\");\n\n    if (fieldParent instanceof _primitives.Dict) {\n      this.parent = params.dict.getRaw(\"Parent\");\n      const fieldParentValue = fieldParent.get(\"V\");\n\n      if (fieldParentValue instanceof _primitives.Name) {\n        this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n      }\n    }\n\n    const appearanceStates = params.dict.get(\"AP\");\n\n    if (!(appearanceStates instanceof _primitives.Dict)) {\n      return;\n    }\n\n    const normalAppearance = appearanceStates.get(\"N\");\n\n    if (!(normalAppearance instanceof _primitives.Dict)) {\n      return;\n    }\n\n    for (const key of normalAppearance.getKeys()) {\n      if (key !== \"Off\") {\n        this.data.buttonValue = this._decodeFormValue(key);\n        break;\n      }\n    }\n\n    this.checkedAppearance = normalAppearance.get(this.data.buttonValue) || null;\n    this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n    if (this.checkedAppearance) {\n      this._streams.push(this.checkedAppearance);\n    } else {\n      this._getDefaultCheckedAppearance(params, \"disc\");\n    }\n\n    if (this.uncheckedAppearance) {\n      this._streams.push(this.uncheckedAppearance);\n    }\n\n    this._fallbackFontDict = this.fallbackFontDict;\n  }\n\n  _processPushButton(params) {\n    if (!params.dict.has(\"A\") && !params.dict.has(\"AA\") && !this.data.alternativeText) {\n      (0, _util.warn)(\"Push buttons without action dictionaries are not supported\");\n      return;\n    }\n\n    this.data.isTooltipOnly = !params.dict.has(\"A\") && !params.dict.has(\"AA\");\n\n    _catalog.Catalog.parseDestDictionary({\n      destDict: params.dict,\n      resultObj: this.data,\n      docBaseUrl: params.pdfManager.docBaseUrl\n    });\n  }\n\n  getFieldObject() {\n    let type = \"button\";\n    let exportValues;\n\n    if (this.data.checkBox) {\n      type = \"checkbox\";\n      exportValues = this.data.exportValue;\n    } else if (this.data.radioButton) {\n      type = \"radiobutton\";\n      exportValues = this.data.buttonValue;\n    }\n\n    return {\n      id: this.data.id,\n      value: this.data.fieldValue || \"Off\",\n      defaultValue: this.data.defaultFieldValue,\n      exportValues,\n      editable: !this.data.readOnly,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      hidden: this.data.hidden,\n      actions: this.data.actions,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type\n    };\n  }\n\n  get fallbackFontDict() {\n    const dict = new _primitives.Dict();\n    dict.set(\"BaseFont\", _primitives.Name.get(\"ZapfDingbats\"));\n    dict.set(\"Type\", _primitives.Name.get(\"FallbackType\"));\n    dict.set(\"Subtype\", _primitives.Name.get(\"FallbackType\"));\n    dict.set(\"Encoding\", _primitives.Name.get(\"ZapfDingbatsEncoding\"));\n    return (0, _util.shadow)(this, \"fallbackFontDict\", dict);\n  }\n\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this.data.options = [];\n    const options = (0, _core_utils.getInheritableProperty)({\n      dict: params.dict,\n      key: \"Opt\"\n    });\n\n    if (Array.isArray(options)) {\n      const xref = params.xref;\n\n      for (let i = 0, ii = options.length; i < ii; i++) {\n        const option = xref.fetchIfRef(options[i]);\n        const isOptionArray = Array.isArray(option);\n        this.data.options[i] = {\n          exportValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[0]) : option),\n          displayValue: this._decodeFormValue(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n        };\n      }\n    }\n\n    if (typeof this.data.fieldValue === \"string\") {\n      this.data.fieldValue = [this.data.fieldValue];\n    } else if (!this.data.fieldValue) {\n      this.data.fieldValue = [];\n    }\n\n    this.data.combo = this.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n    this.data.multiSelect = this.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n    this._hasText = true;\n  }\n\n  getFieldObject() {\n    const type = this.data.combo ? \"combobox\" : \"listbox\";\n    const value = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n    return {\n      id: this.data.id,\n      value,\n      defaultValue: this.data.defaultFieldValue,\n      editable: !this.data.readOnly,\n      name: this.data.fieldName,\n      rect: this.data.rect,\n      numItems: this.data.fieldValue.length,\n      multipleSelection: this.data.multiSelect,\n      hidden: this.data.hidden,\n      actions: this.data.actions,\n      items: this.data.options,\n      page: this.data.pageIndex,\n      strokeColor: this.data.borderColor,\n      fillColor: this.data.backgroundColor,\n      rotation: this.rotation,\n      type\n    };\n  }\n\n  async _getAppearance(evaluator, task, annotationStorage) {\n    if (this.data.combo) {\n      return super._getAppearance(evaluator, task, annotationStorage);\n    }\n\n    if (!annotationStorage) {\n      return null;\n    }\n\n    const storageEntry = annotationStorage.get(this.data.id);\n\n    if (!storageEntry) {\n      return null;\n    }\n\n    const rotation = storageEntry.rotation;\n    let exportedValue = storageEntry.value;\n\n    if (rotation === undefined && exportedValue === undefined) {\n      return null;\n    }\n\n    if (exportedValue === undefined) {\n      exportedValue = this.data.fieldValue;\n    } else if (!Array.isArray(exportedValue)) {\n      exportedValue = [exportedValue];\n    }\n\n    const defaultPadding = 2;\n    const hPadding = defaultPadding;\n    let totalHeight = this.data.rect[3] - this.data.rect[1];\n    let totalWidth = this.data.rect[2] - this.data.rect[0];\n\n    if (rotation === 90 || rotation === 270) {\n      [totalWidth, totalHeight] = [totalHeight, totalWidth];\n    }\n\n    const lineCount = this.data.options.length;\n    const valueIndices = [];\n\n    for (let i = 0; i < lineCount; i++) {\n      const {\n        exportValue\n      } = this.data.options[i];\n\n      if (exportedValue.includes(exportValue)) {\n        valueIndices.push(i);\n      }\n    }\n\n    if (!this._defaultAppearance) {\n      this.data.defaultAppearanceData = (0, _default_appearance.parseDefaultAppearance)(this._defaultAppearance = \"/Helvetica 0 Tf 0 g\");\n    }\n\n    const font = await WidgetAnnotation._getFontData(evaluator, task, this.data.defaultAppearanceData, this._fieldResources.mergedResources);\n    let defaultAppearance;\n    let {\n      fontSize\n    } = this.data.defaultAppearanceData;\n\n    if (!fontSize) {\n      const lineHeight = (totalHeight - defaultPadding) / lineCount;\n      let lineWidth = -1;\n      let value;\n\n      for (const {\n        displayValue\n      } of this.data.options) {\n        const width = this._getTextWidth(displayValue, font);\n\n        if (width > lineWidth) {\n          lineWidth = width;\n          value = displayValue;\n        }\n      }\n\n      [defaultAppearance, fontSize] = this._computeFontSize(lineHeight, totalWidth - 2 * hPadding, value, font, -1);\n    } else {\n      defaultAppearance = this._defaultAppearance;\n    }\n\n    const lineHeight = fontSize * _util.LINE_FACTOR;\n    const vPadding = (lineHeight - fontSize) / 2;\n    const numberOfVisibleLines = Math.floor(totalHeight / lineHeight);\n    let firstIndex;\n\n    if (valueIndices.length === 1) {\n      const valuePosition = valueIndices[0];\n      const indexInPage = valuePosition % numberOfVisibleLines;\n      firstIndex = valuePosition - indexInPage;\n    } else {\n      firstIndex = valueIndices.length ? valueIndices[0] : 0;\n    }\n\n    const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount);\n    const buf = [\"/Tx BMC q\", `1 1 ${totalWidth} ${totalHeight} re W n`];\n\n    if (valueIndices.length) {\n      buf.push(\"0.600006 0.756866 0.854904 rg\");\n\n      for (const index of valueIndices) {\n        if (firstIndex <= index && index < end) {\n          buf.push(`1 ${totalHeight - (index - firstIndex + 1) * lineHeight} ${totalWidth} ${lineHeight} re f`);\n        }\n      }\n    }\n\n    buf.push(\"BT\", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`);\n\n    for (let i = firstIndex; i < end; i++) {\n      const {\n        displayValue\n      } = this.data.options[i];\n      const hpadding = i === firstIndex ? hPadding : 0;\n      const vpadding = i === firstIndex ? vPadding : 0;\n      buf.push(this._renderText(displayValue, font, fontSize, totalWidth, 0, hpadding, -lineHeight + vpadding));\n    }\n\n    buf.push(\"ET Q EMC\");\n    return buf.join(\"\\n\");\n  }\n\n}\n\nclass SignatureWidgetAnnotation extends WidgetAnnotation {\n  constructor(params) {\n    super(params);\n    this.data.fieldValue = null;\n  }\n\n  getFieldObject() {\n    return {\n      id: this.data.id,\n      value: null,\n      page: this.data.pageIndex,\n      type: \"signature\"\n    };\n  }\n\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    const DEFAULT_ICON_SIZE = 22;\n    super(parameters);\n    const dict = parameters.dict;\n    this.data.annotationType = _util.AnnotationType.TEXT;\n\n    if (this.data.hasAppearance) {\n      this.data.name = \"NoIcon\";\n    } else {\n      this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n      this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n      this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n    }\n\n    if (dict.has(\"State\")) {\n      this.data.state = dict.get(\"State\") || null;\n      this.data.stateModel = dict.get(\"StateModel\") || null;\n    } else {\n      this.data.state = null;\n      this.data.stateModel = null;\n    }\n  }\n\n}\n\nclass LinkAnnotation extends Annotation {\n  constructor(params) {\n    super(params);\n    this.data.annotationType = _util.AnnotationType.LINK;\n    const quadPoints = getQuadPoints(params.dict, this.rectangle);\n\n    if (quadPoints) {\n      this.data.quadPoints = quadPoints;\n    }\n\n    this.data.borderColor = this.data.borderColor || this.data.color;\n\n    _catalog.Catalog.parseDestDictionary({\n      destDict: params.dict,\n      resultObj: this.data,\n      docBaseUrl: params.pdfManager.docBaseUrl\n    });\n  }\n\n}\n\nclass PopupAnnotation extends Annotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.POPUP;\n    let parentItem = parameters.dict.get(\"Parent\");\n\n    if (!parentItem) {\n      (0, _util.warn)(\"Popup annotation has a missing or invalid parent annotation.\");\n      return;\n    }\n\n    const parentSubtype = parentItem.get(\"Subtype\");\n    this.data.parentType = parentSubtype instanceof _primitives.Name ? parentSubtype.name : null;\n    const rawParent = parameters.dict.getRaw(\"Parent\");\n    this.data.parentId = rawParent instanceof _primitives.Ref ? rawParent.toString() : null;\n    const parentRect = parentItem.getArray(\"Rect\");\n\n    if (Array.isArray(parentRect) && parentRect.length === 4) {\n      this.data.parentRect = _util.Util.normalizeRect(parentRect);\n    } else {\n      this.data.parentRect = [0, 0, 0, 0];\n    }\n\n    const rt = parentItem.get(\"RT\");\n\n    if ((0, _primitives.isName)(rt, _util.AnnotationReplyType.GROUP)) {\n      parentItem = parentItem.get(\"IRT\");\n    }\n\n    if (!parentItem.has(\"M\")) {\n      this.data.modificationDate = null;\n    } else {\n      this.setModificationDate(parentItem.get(\"M\"));\n      this.data.modificationDate = this.modificationDate;\n    }\n\n    if (!parentItem.has(\"C\")) {\n      this.data.color = null;\n    } else {\n      this.setColor(parentItem.getArray(\"C\"));\n      this.data.color = this.color;\n    }\n\n    if (!this.viewable) {\n      const parentFlags = parentItem.get(\"F\");\n\n      if (this._isViewable(parentFlags)) {\n        this.setFlags(parentFlags);\n      }\n    }\n\n    this.setTitle(parentItem.get(\"T\"));\n    this.data.titleObj = this._title;\n    this.setContents(parentItem.get(\"Contents\"));\n    this.data.contentsObj = this._contents;\n\n    if (parentItem.has(\"RC\")) {\n      this.data.richText = _factory.XFAFactory.getRichTextAsHtml(parentItem.get(\"RC\"));\n    }\n  }\n\n}\n\nexports.PopupAnnotation = PopupAnnotation;\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.FREETEXT;\n  }\n\n  get hasTextContent() {\n    return !!this.appearance;\n  }\n\n  static createNewDict(annotation, xref, {\n    apRef,\n    ap\n  }) {\n    const {\n      color,\n      fontSize,\n      rect,\n      rotation,\n      user,\n      value\n    } = annotation;\n    const freetext = new _primitives.Dict(xref);\n    freetext.set(\"Type\", _primitives.Name.get(\"Annot\"));\n    freetext.set(\"Subtype\", _primitives.Name.get(\"FreeText\"));\n    freetext.set(\"CreationDate\", `D:${(0, _util.getModificationDate)()}`);\n    freetext.set(\"Rect\", rect);\n    const da = `/Helv ${fontSize} Tf ${(0, _default_appearance.getPdfColor)(color, true)}`;\n    freetext.set(\"DA\", da);\n    freetext.set(\"Contents\", value);\n    freetext.set(\"F\", 4);\n    freetext.set(\"Border\", [0, 0, 0]);\n    freetext.set(\"Rotate\", rotation);\n\n    if (user) {\n      freetext.set(\"T\", (0, _util.stringToUTF8String)(user));\n    }\n\n    const n = new _primitives.Dict(xref);\n    freetext.set(\"AP\", n);\n\n    if (apRef) {\n      n.set(\"N\", apRef);\n    } else {\n      n.set(\"N\", ap);\n    }\n\n    return freetext;\n  }\n\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const {\n      baseFontRef,\n      evaluator,\n      task\n    } = params;\n    const {\n      color,\n      fontSize,\n      rect,\n      rotation,\n      value\n    } = annotation;\n    const resources = new _primitives.Dict(xref);\n    const font = new _primitives.Dict(xref);\n\n    if (baseFontRef) {\n      font.set(\"Helv\", baseFontRef);\n    } else {\n      const baseFont = new _primitives.Dict(xref);\n      baseFont.set(\"BaseFont\", _primitives.Name.get(\"Helvetica\"));\n      baseFont.set(\"Type\", _primitives.Name.get(\"Font\"));\n      baseFont.set(\"Subtype\", _primitives.Name.get(\"Type1\"));\n      baseFont.set(\"Encoding\", _primitives.Name.get(\"WinAnsiEncoding\"));\n      font.set(\"Helv\", baseFont);\n    }\n\n    resources.set(\"Font\", font);\n    const helv = await WidgetAnnotation._getFontData(evaluator, task, {\n      fontName: \"Helvetica\",\n      fontSize\n    }, resources);\n    const [x1, y1, x2, y2] = rect;\n    let w = x2 - x1;\n    let h = y2 - y1;\n\n    if (rotation % 180 !== 0) {\n      [w, h] = [h, w];\n    }\n\n    const lines = value.split(\"\\n\");\n    const scale = fontSize / 1000;\n    let totalWidth = -Infinity;\n    const encodedLines = [];\n\n    for (let line of lines) {\n      line = helv.encodeString(line).join(\"\");\n      encodedLines.push(line);\n      let lineWidth = 0;\n      const glyphs = helv.charsToGlyphs(line);\n\n      for (const glyph of glyphs) {\n        lineWidth += glyph.width * scale;\n      }\n\n      totalWidth = Math.max(totalWidth, lineWidth);\n    }\n\n    let hscale = 1;\n\n    if (totalWidth > w) {\n      hscale = w / totalWidth;\n    }\n\n    let vscale = 1;\n    const lineHeight = _util.LINE_FACTOR * fontSize;\n    const lineDescent = _util.LINE_DESCENT_FACTOR * fontSize;\n    const totalHeight = lineHeight * lines.length;\n\n    if (totalHeight > h) {\n      vscale = h / totalHeight;\n    }\n\n    const fscale = Math.min(hscale, vscale);\n    const newFontSize = fontSize * fscale;\n    const buffer = [\"q\", `0 0 ${(0, _core_utils.numberToString)(w)} ${(0, _core_utils.numberToString)(h)} re W n`, `BT`, `1 0 0 1 0 ${(0, _core_utils.numberToString)(h + lineDescent)} Tm 0 Tc ${(0, _default_appearance.getPdfColor)(color, true)}`, `/Helv ${(0, _core_utils.numberToString)(newFontSize)} Tf`];\n    const vShift = (0, _core_utils.numberToString)(lineHeight);\n\n    for (const line of encodedLines) {\n      buffer.push(`0 -${vShift} Td (${(0, _util.escapeString)(line)}) Tj`);\n    }\n\n    buffer.push(\"ET\", \"Q\");\n    const appearance = buffer.join(\"\\n\");\n    const appearanceStreamDict = new _primitives.Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", _primitives.Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", [0, 0, w, h]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n    appearanceStreamDict.set(\"Resources\", resources);\n\n    if (rotation) {\n      const matrix = WidgetAnnotation._getRotationMatrix(rotation, w, h);\n\n      appearanceStreamDict.set(\"Matrix\", matrix);\n    }\n\n    const ap = new _stream.StringStream(appearance);\n    ap.dict = appearanceStreamDict;\n    return ap;\n  }\n\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    const {\n      dict\n    } = parameters;\n    this.data.annotationType = _util.AnnotationType.LINE;\n    const lineCoordinates = dict.getArray(\"L\");\n    this.data.lineCoordinates = _util.Util.normalizeRect(lineCoordinates);\n    this.setLineEndings(dict.getArray(\"LE\"));\n    this.data.lineEndings = this.lineEndings;\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = dict.get(\"CA\");\n      let fillColor = null,\n          interiorColor = dict.getArray(\"IC\");\n\n      if (interiorColor) {\n        interiorColor = getRgbColor(interiorColor, null);\n        fillColor = interiorColor ? Array.from(interiorColor).map(c => c / 255) : null;\n      }\n\n      const fillAlpha = fillColor ? strokeAlpha : null;\n      const borderWidth = this.borderStyle.width || 1,\n            borderAdjust = 2 * borderWidth;\n      const bbox = [this.data.lineCoordinates[0] - borderAdjust, this.data.lineCoordinates[1] - borderAdjust, this.data.lineCoordinates[2] + borderAdjust, this.data.lineCoordinates[3] + borderAdjust];\n\n      if (!_util.Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          buffer.push(`${lineCoordinates[0]} ${lineCoordinates[1]} m`, `${lineCoordinates[2]} ${lineCoordinates[3]} l`, \"S\");\n          return [points[0].x - borderWidth, points[1].x + borderWidth, points[3].y - borderWidth, points[1].y + borderWidth];\n        }\n      });\n    }\n  }\n\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.SQUARE;\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = parameters.dict.get(\"CA\");\n      let fillColor = null,\n          interiorColor = parameters.dict.getArray(\"IC\");\n\n      if (interiorColor) {\n        interiorColor = getRgbColor(interiorColor, null);\n        fillColor = interiorColor ? Array.from(interiorColor).map(c => c / 255) : null;\n      }\n\n      const fillAlpha = fillColor ? strokeAlpha : null;\n\n      if (this.borderStyle.width === 0 && !fillColor) {\n        return;\n      }\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${this.borderStyle.width} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          const x = points[2].x + this.borderStyle.width / 2;\n          const y = points[2].y + this.borderStyle.width / 2;\n          const width = points[3].x - points[2].x - this.borderStyle.width;\n          const height = points[1].y - points[3].y - this.borderStyle.width;\n          buffer.push(`${x} ${y} ${width} ${height} re`);\n\n          if (fillColor) {\n            buffer.push(\"B\");\n          } else {\n            buffer.push(\"S\");\n          }\n\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        }\n      });\n    }\n  }\n\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.CIRCLE;\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = parameters.dict.get(\"CA\");\n      let fillColor = null;\n      let interiorColor = parameters.dict.getArray(\"IC\");\n\n      if (interiorColor) {\n        interiorColor = getRgbColor(interiorColor, null);\n        fillColor = interiorColor ? Array.from(interiorColor).map(c => c / 255) : null;\n      }\n\n      const fillAlpha = fillColor ? strokeAlpha : null;\n\n      if (this.borderStyle.width === 0 && !fillColor) {\n        return;\n      }\n\n      const controlPointsDistance = 4 / 3 * Math.tan(Math.PI / (2 * 4));\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${this.borderStyle.width} w`,\n        strokeColor,\n        fillColor,\n        strokeAlpha,\n        fillAlpha,\n        pointsCallback: (buffer, points) => {\n          const x0 = points[0].x + this.borderStyle.width / 2;\n          const y0 = points[0].y - this.borderStyle.width / 2;\n          const x1 = points[3].x - this.borderStyle.width / 2;\n          const y1 = points[3].y + this.borderStyle.width / 2;\n          const xMid = x0 + (x1 - x0) / 2;\n          const yMid = y0 + (y1 - y0) / 2;\n          const xOffset = (x1 - x0) / 2 * controlPointsDistance;\n          const yOffset = (y1 - y0) / 2 * controlPointsDistance;\n          buffer.push(`${xMid} ${y1} m`, `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`, `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`, `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`, `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`, \"h\");\n\n          if (fillColor) {\n            buffer.push(\"B\");\n          } else {\n            buffer.push(\"S\");\n          }\n\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        }\n      });\n    }\n  }\n\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    const {\n      dict\n    } = parameters;\n    this.data.annotationType = _util.AnnotationType.POLYLINE;\n    this.data.vertices = [];\n\n    if (!(this instanceof PolygonAnnotation)) {\n      this.setLineEndings(dict.getArray(\"LE\"));\n      this.data.lineEndings = this.lineEndings;\n    }\n\n    const rawVertices = dict.getArray(\"Vertices\");\n\n    if (!Array.isArray(rawVertices)) {\n      return;\n    }\n\n    for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n      this.data.vertices.push({\n        x: rawVertices[i],\n        y: rawVertices[i + 1]\n      });\n    }\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = dict.get(\"CA\");\n      const borderWidth = this.borderStyle.width || 1,\n            borderAdjust = 2 * borderWidth;\n      const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n\n      for (const vertex of this.data.vertices) {\n        bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n        bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n        bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n        bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n      }\n\n      if (!_util.Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        strokeAlpha,\n        pointsCallback: (buffer, points) => {\n          const vertices = this.data.vertices;\n\n          for (let i = 0, ii = vertices.length; i < ii; i++) {\n            buffer.push(`${vertices[i].x} ${vertices[i].y} ${i === 0 ? \"m\" : \"l\"}`);\n          }\n\n          buffer.push(\"S\");\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        }\n      });\n    }\n  }\n\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.POLYGON;\n  }\n\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.CARET;\n  }\n\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.INK;\n    this.data.inkLists = [];\n    const rawInkLists = parameters.dict.getArray(\"InkList\");\n\n    if (!Array.isArray(rawInkLists)) {\n      return;\n    }\n\n    const xref = parameters.xref;\n\n    for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n      this.data.inkLists.push([]);\n\n      for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n        this.data.inkLists[i].push({\n          x: xref.fetchIfRef(rawInkLists[i][j]),\n          y: xref.fetchIfRef(rawInkLists[i][j + 1])\n        });\n      }\n    }\n\n    if (!this.appearance) {\n      const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n      const strokeAlpha = parameters.dict.get(\"CA\");\n      const borderWidth = this.borderStyle.width || 1,\n            borderAdjust = 2 * borderWidth;\n      const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n\n      for (const inkLists of this.data.inkLists) {\n        for (const vertex of inkLists) {\n          bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n          bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n          bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n          bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n        }\n      }\n\n      if (!_util.Util.intersect(this.rectangle, bbox)) {\n        this.rectangle = bbox;\n      }\n\n      this._setDefaultAppearance({\n        xref: parameters.xref,\n        extra: `${borderWidth} w`,\n        strokeColor,\n        strokeAlpha,\n        pointsCallback: (buffer, points) => {\n          for (const inkList of this.data.inkLists) {\n            for (let i = 0, ii = inkList.length; i < ii; i++) {\n              buffer.push(`${inkList[i].x} ${inkList[i].y} ${i === 0 ? \"m\" : \"l\"}`);\n            }\n\n            buffer.push(\"S\");\n          }\n\n          return [points[0].x, points[1].x, points[3].y, points[1].y];\n        }\n      });\n    }\n  }\n\n  static createNewDict(annotation, xref, {\n    apRef,\n    ap\n  }) {\n    const {\n      paths,\n      rect,\n      rotation\n    } = annotation;\n    const ink = new _primitives.Dict(xref);\n    ink.set(\"Type\", _primitives.Name.get(\"Annot\"));\n    ink.set(\"Subtype\", _primitives.Name.get(\"Ink\"));\n    ink.set(\"CreationDate\", `D:${(0, _util.getModificationDate)()}`);\n    ink.set(\"Rect\", rect);\n    ink.set(\"InkList\", paths.map(p => p.points));\n    ink.set(\"F\", 4);\n    ink.set(\"Border\", [0, 0, 0]);\n    ink.set(\"Rotate\", rotation);\n    const n = new _primitives.Dict(xref);\n    ink.set(\"AP\", n);\n\n    if (apRef) {\n      n.set(\"N\", apRef);\n    } else {\n      n.set(\"N\", ap);\n    }\n\n    return ink;\n  }\n\n  static async createNewAppearanceStream(annotation, xref, params) {\n    const {\n      color,\n      rect,\n      rotation,\n      paths,\n      thickness,\n      opacity\n    } = annotation;\n    const [x1, y1, x2, y2] = rect;\n    let w = x2 - x1;\n    let h = y2 - y1;\n\n    if (rotation % 180 !== 0) {\n      [w, h] = [h, w];\n    }\n\n    const appearanceBuffer = [`${thickness} w 1 J 1 j`, `${(0, _default_appearance.getPdfColor)(color, false)}`];\n\n    if (opacity !== 1) {\n      appearanceBuffer.push(\"/R0 gs\");\n    }\n\n    const buffer = [];\n\n    for (const {\n      bezier\n    } of paths) {\n      buffer.length = 0;\n      buffer.push(`${(0, _core_utils.numberToString)(bezier[0])} ${(0, _core_utils.numberToString)(bezier[1])} m`);\n\n      for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n        const curve = bezier.slice(i, i + 6).map(_core_utils.numberToString).join(\" \");\n        buffer.push(`${curve} c`);\n      }\n\n      buffer.push(\"S\");\n      appearanceBuffer.push(buffer.join(\"\\n\"));\n    }\n\n    const appearance = appearanceBuffer.join(\"\\n\");\n    const appearanceStreamDict = new _primitives.Dict(xref);\n    appearanceStreamDict.set(\"FormType\", 1);\n    appearanceStreamDict.set(\"Subtype\", _primitives.Name.get(\"Form\"));\n    appearanceStreamDict.set(\"Type\", _primitives.Name.get(\"XObject\"));\n    appearanceStreamDict.set(\"BBox\", [0, 0, w, h]);\n    appearanceStreamDict.set(\"Length\", appearance.length);\n\n    if (rotation) {\n      const matrix = WidgetAnnotation._getRotationMatrix(rotation, w, h);\n\n      appearanceStreamDict.set(\"Matrix\", matrix);\n    }\n\n    if (opacity !== 1) {\n      const resources = new _primitives.Dict(xref);\n      const extGState = new _primitives.Dict(xref);\n      const r0 = new _primitives.Dict(xref);\n      r0.set(\"CA\", opacity);\n      r0.set(\"Type\", _primitives.Name.get(\"ExtGState\"));\n      extGState.set(\"R0\", r0);\n      resources.set(\"ExtGState\", extGState);\n      appearanceStreamDict.set(\"Resources\", resources);\n    }\n\n    const ap = new _stream.StringStream(appearance);\n    ap.dict = appearanceStreamDict;\n    return ap;\n  }\n\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n    const quadPoints = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n    if (quadPoints) {\n      const resources = this.appearance && this.appearance.dict.get(\"Resources\");\n\n      if (!this.appearance || !(resources && resources.has(\"ExtGState\"))) {\n        if (this.appearance) {\n          (0, _util.warn)(\"HighlightAnnotation - ignoring built-in appearance stream.\");\n        }\n\n        const fillColor = this.color ? Array.from(this.color).map(c => c / 255) : [1, 1, 0];\n        const fillAlpha = parameters.dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref: parameters.xref,\n          fillColor,\n          blendMode: \"Multiply\",\n          fillAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(`${points[0].x} ${points[0].y} m`, `${points[1].x} ${points[1].y} l`, `${points[3].x} ${points[3].y} l`, `${points[2].x} ${points[2].y} l`, \"f\");\n            return [points[0].x, points[1].x, points[3].y, points[1].y];\n          }\n        });\n      }\n    } else {\n      this.data.hasPopup = false;\n    }\n  }\n\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.UNDERLINE;\n    const quadPoints = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n    if (quadPoints) {\n      if (!this.appearance) {\n        const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n        const strokeAlpha = parameters.dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref: parameters.xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(`${points[2].x} ${points[2].y} m`, `${points[3].x} ${points[3].y} l`, \"S\");\n            return [points[0].x, points[1].x, points[3].y, points[1].y];\n          }\n        });\n      }\n    } else {\n      this.data.hasPopup = false;\n    }\n  }\n\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.SQUIGGLY;\n    const quadPoints = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n    if (quadPoints) {\n      if (!this.appearance) {\n        const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n        const strokeAlpha = parameters.dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref: parameters.xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            const dy = (points[0].y - points[2].y) / 6;\n            let shift = dy;\n            let x = points[2].x;\n            const y = points[2].y;\n            const xEnd = points[3].x;\n            buffer.push(`${x} ${y + shift} m`);\n\n            do {\n              x += 2;\n              shift = shift === 0 ? dy : 0;\n              buffer.push(`${x} ${y + shift} l`);\n            } while (x < xEnd);\n\n            buffer.push(\"S\");\n            return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy];\n          }\n        });\n      }\n    } else {\n      this.data.hasPopup = false;\n    }\n  }\n\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.STRIKEOUT;\n    const quadPoints = this.data.quadPoints = getQuadPoints(parameters.dict, null);\n\n    if (quadPoints) {\n      if (!this.appearance) {\n        const strokeColor = this.color ? Array.from(this.color).map(c => c / 255) : [0, 0, 0];\n        const strokeAlpha = parameters.dict.get(\"CA\");\n\n        this._setDefaultAppearance({\n          xref: parameters.xref,\n          extra: \"[] 0 d 1 w\",\n          strokeColor,\n          strokeAlpha,\n          pointsCallback: (buffer, points) => {\n            buffer.push(`${(points[0].x + points[2].x) / 2} ` + `${(points[0].y + points[2].y) / 2} m`, `${(points[1].x + points[3].x) / 2} ` + `${(points[1].y + points[3].y) / 2} l`, \"S\");\n            return [points[0].x, points[1].x, points[3].y, points[1].y];\n          }\n        });\n      }\n    } else {\n      this.data.hasPopup = false;\n    }\n  }\n\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    this.data.annotationType = _util.AnnotationType.STAMP;\n  }\n\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n  constructor(parameters) {\n    super(parameters);\n    const file = new _file_spec.FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n    this.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n    this.data.file = file.serializable;\n  }\n\n}\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.createDefaultAppearance = createDefaultAppearance;\nexports.getPdfColor = getPdfColor;\nexports.parseDefaultAppearance = parseDefaultAppearance;\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _colorspace = __w_pdfjs_require__(14);\n\nvar _evaluator = __w_pdfjs_require__(15);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _stream = __w_pdfjs_require__(10);\n\nclass DefaultAppearanceEvaluator extends _evaluator.EvaluatorPreprocessor {\n  constructor(str) {\n    super(new _stream.StringStream(str));\n  }\n\n  parse() {\n    const operation = {\n      fn: 0,\n      args: []\n    };\n    const result = {\n      fontSize: 0,\n      fontName: \"\",\n      fontColor: new Uint8ClampedArray(3)\n    };\n\n    try {\n      while (true) {\n        operation.args.length = 0;\n\n        if (!this.read(operation)) {\n          break;\n        }\n\n        if (this.savedStatesDepth !== 0) {\n          continue;\n        }\n\n        const {\n          fn,\n          args\n        } = operation;\n\n        switch (fn | 0) {\n          case _util.OPS.setFont:\n            const [fontName, fontSize] = args;\n\n            if (fontName instanceof _primitives.Name) {\n              result.fontName = fontName.name;\n            }\n\n            if (typeof fontSize === \"number\" && fontSize > 0) {\n              result.fontSize = fontSize;\n            }\n\n            break;\n\n          case _util.OPS.setFillRGBColor:\n            _colorspace.ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n\n            break;\n\n          case _util.OPS.setFillGray:\n            _colorspace.ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n\n            break;\n\n          case _util.OPS.setFillColorSpace:\n            _colorspace.ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n\n            break;\n        }\n      }\n    } catch (reason) {\n      (0, _util.warn)(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n    }\n\n    return result;\n  }\n\n}\n\nfunction parseDefaultAppearance(str) {\n  return new DefaultAppearanceEvaluator(str).parse();\n}\n\nfunction getPdfColor(color, isFill) {\n  if (color[0] === color[1] && color[1] === color[2]) {\n    const gray = color[0] / 255;\n    return `${(0, _core_utils.numberToString)(gray)} ${isFill ? \"g\" : \"G\"}`;\n  }\n\n  return Array.from(color).map(c => (0, _core_utils.numberToString)(c / 255)).join(\" \") + ` ${isFill ? \"rg\" : \"RG\"}`;\n}\n\nfunction createDefaultAppearance({\n  fontSize,\n  fontName,\n  fontColor\n}) {\n  return `/${(0, _core_utils.escapePDFName)(fontName)} ${fontSize} Tf ${getPdfColor(fontColor, true)}`;\n}\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ColorSpace = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n  const COMPONENTS = 3;\n  alpha01 = alpha01 !== 1 ? 0 : alpha01;\n  const xRatio = w1 / w2;\n  const yRatio = h1 / h2;\n  let newIndex = 0,\n      oldIndex;\n  const xScaled = new Uint16Array(w2);\n  const w1Scanline = w1 * COMPONENTS;\n\n  for (let i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n  }\n\n  for (let i = 0; i < h2; i++) {\n    const py = Math.floor(i * yRatio) * w1Scanline;\n\n    for (let j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      newIndex += alpha01;\n    }\n  }\n}\n\nclass ColorSpace {\n  constructor(name, numComps) {\n    if (this.constructor === ColorSpace) {\n      (0, _util.unreachable)(\"Cannot initialize ColorSpace.\");\n    }\n\n    this.name = name;\n    this.numComps = numComps;\n  }\n\n  getRgb(src, srcOffset) {\n    const rgb = new Uint8ClampedArray(3);\n    this.getRgbItem(src, srcOffset, rgb, 0);\n    return rgb;\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    (0, _util.unreachable)(\"Should not call ColorSpace.getRgbItem\");\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    (0, _util.unreachable)(\"Should not call ColorSpace.getRgbBuffer\");\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    (0, _util.unreachable)(\"Should not call ColorSpace.getOutputLength\");\n  }\n\n  isPassthrough(bits) {\n    return false;\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n  }\n\n  fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n    const count = originalWidth * originalHeight;\n    let rgbBuf = null;\n    const numComponentColors = 1 << bpc;\n    const needsResizing = originalHeight !== height || originalWidth !== width;\n\n    if (this.isPassthrough(bpc)) {\n      rgbBuf = comps;\n    } else if (this.numComps === 1 && count > numComponentColors && this.name !== \"DeviceGray\" && this.name !== \"DeviceRGB\") {\n      const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n\n      for (let i = 0; i < numComponentColors; i++) {\n        allColors[i] = i;\n      }\n\n      const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n      this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n\n      if (!needsResizing) {\n        let destPos = 0;\n\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          dest[destPos++] = colorMap[key];\n          dest[destPos++] = colorMap[key + 1];\n          dest[destPos++] = colorMap[key + 2];\n          destPos += alpha01;\n        }\n      } else {\n        rgbBuf = new Uint8Array(count * 3);\n        let rgbPos = 0;\n\n        for (let i = 0; i < count; ++i) {\n          const key = comps[i] * 3;\n          rgbBuf[rgbPos++] = colorMap[key];\n          rgbBuf[rgbPos++] = colorMap[key + 1];\n          rgbBuf[rgbPos++] = colorMap[key + 2];\n        }\n      }\n    } else {\n      if (!needsResizing) {\n        this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n      } else {\n        rgbBuf = new Uint8ClampedArray(count * 3);\n        this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n      }\n    }\n\n    if (rgbBuf) {\n      if (needsResizing) {\n        resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);\n      } else {\n        let destPos = 0,\n            rgbPos = 0;\n\n        for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          dest[destPos++] = rgbBuf[rgbPos++];\n          destPos += alpha01;\n        }\n      }\n    }\n  }\n\n  get usesZeroToOneRange() {\n    return (0, _util.shadow)(this, \"usesZeroToOneRange\", true);\n  }\n\n  static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n    if (!localColorSpaceCache) {\n      throw new Error('ColorSpace._cache - expected \"localColorSpaceCache\" argument.');\n    }\n\n    if (!parsedColorSpace) {\n      throw new Error('ColorSpace._cache - expected \"parsedColorSpace\" argument.');\n    }\n\n    let csName, csRef;\n\n    if (cacheKey instanceof _primitives.Ref) {\n      csRef = cacheKey;\n      cacheKey = xref.fetch(cacheKey);\n    }\n\n    if (cacheKey instanceof _primitives.Name) {\n      csName = cacheKey.name;\n    }\n\n    if (csName || csRef) {\n      localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n    }\n  }\n\n  static getCached(cacheKey, xref, localColorSpaceCache) {\n    if (!localColorSpaceCache) {\n      throw new Error('ColorSpace.getCached - expected \"localColorSpaceCache\" argument.');\n    }\n\n    if (cacheKey instanceof _primitives.Ref) {\n      const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n\n      if (localColorSpace) {\n        return localColorSpace;\n      }\n\n      try {\n        cacheKey = xref.fetch(cacheKey);\n      } catch (ex) {\n        if (ex instanceof _core_utils.MissingDataException) {\n          throw ex;\n        }\n      }\n    }\n\n    if (cacheKey instanceof _primitives.Name) {\n      const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n\n      if (localColorSpace) {\n        return localColorSpace;\n      }\n    }\n\n    return null;\n  }\n\n  static async parseAsync({\n    cs,\n    xref,\n    resources = null,\n    pdfFunctionFactory,\n    localColorSpaceCache\n  }) {\n    const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory);\n\n    this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n    return parsedColorSpace;\n  }\n\n  static parse({\n    cs,\n    xref,\n    resources = null,\n    pdfFunctionFactory,\n    localColorSpaceCache\n  }) {\n    const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n\n    if (cachedColorSpace) {\n      return cachedColorSpace;\n    }\n\n    const parsedColorSpace = this._parse(cs, xref, resources, pdfFunctionFactory);\n\n    this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n    return parsedColorSpace;\n  }\n\n  static _parse(cs, xref, resources = null, pdfFunctionFactory) {\n    cs = xref.fetchIfRef(cs);\n\n    if (cs instanceof _primitives.Name) {\n      switch (cs.name) {\n        case \"G\":\n        case \"DeviceGray\":\n          return this.singletons.gray;\n\n        case \"RGB\":\n        case \"DeviceRGB\":\n          return this.singletons.rgb;\n\n        case \"CMYK\":\n        case \"DeviceCMYK\":\n          return this.singletons.cmyk;\n\n        case \"Pattern\":\n          return new PatternCS(null);\n\n        default:\n          if (resources instanceof _primitives.Dict) {\n            const colorSpaces = resources.get(\"ColorSpace\");\n\n            if (colorSpaces instanceof _primitives.Dict) {\n              const resourcesCS = colorSpaces.get(cs.name);\n\n              if (resourcesCS) {\n                if (resourcesCS instanceof _primitives.Name) {\n                  return this._parse(resourcesCS, xref, resources, pdfFunctionFactory);\n                }\n\n                cs = resourcesCS;\n                break;\n              }\n            }\n          }\n\n          throw new _util.FormatError(`Unrecognized ColorSpace: ${cs.name}`);\n      }\n    }\n\n    if (Array.isArray(cs)) {\n      const mode = xref.fetchIfRef(cs[0]).name;\n      let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n      switch (mode) {\n        case \"G\":\n        case \"DeviceGray\":\n          return this.singletons.gray;\n\n        case \"RGB\":\n        case \"DeviceRGB\":\n          return this.singletons.rgb;\n\n        case \"CMYK\":\n        case \"DeviceCMYK\":\n          return this.singletons.cmyk;\n\n        case \"CalGray\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.get(\"Gamma\");\n          return new CalGrayCS(whitePoint, blackPoint, gamma);\n\n        case \"CalRGB\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          gamma = params.getArray(\"Gamma\");\n          const matrix = params.getArray(\"Matrix\");\n          return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n\n        case \"ICCBased\":\n          const stream = xref.fetchIfRef(cs[1]);\n          const dict = stream.dict;\n          numComps = dict.get(\"N\");\n          const alt = dict.get(\"Alternate\");\n\n          if (alt) {\n            const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n\n            if (altCS.numComps === numComps) {\n              return altCS;\n            }\n\n            (0, _util.warn)(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n          }\n\n          if (numComps === 1) {\n            return this.singletons.gray;\n          } else if (numComps === 3) {\n            return this.singletons.rgb;\n          } else if (numComps === 4) {\n            return this.singletons.cmyk;\n          }\n\n          break;\n\n        case \"Pattern\":\n          baseCS = cs[1] || null;\n\n          if (baseCS) {\n            baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n          }\n\n          return new PatternCS(baseCS);\n\n        case \"I\":\n        case \"Indexed\":\n          baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n          const hiVal = xref.fetchIfRef(cs[2]) + 1;\n          const lookup = xref.fetchIfRef(cs[3]);\n          return new IndexedCS(baseCS, hiVal, lookup);\n\n        case \"Separation\":\n        case \"DeviceN\":\n          const name = xref.fetchIfRef(cs[1]);\n          numComps = Array.isArray(name) ? name.length : 1;\n          baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n          const tintFn = pdfFunctionFactory.create(cs[3]);\n          return new AlternateCS(numComps, baseCS, tintFn);\n\n        case \"Lab\":\n          params = xref.fetchIfRef(cs[1]);\n          whitePoint = params.getArray(\"WhitePoint\");\n          blackPoint = params.getArray(\"BlackPoint\");\n          const range = params.getArray(\"Range\");\n          return new LabCS(whitePoint, blackPoint, range);\n\n        default:\n          throw new _util.FormatError(`Unimplemented ColorSpace object: ${mode}`);\n      }\n    }\n\n    throw new _util.FormatError(`Unrecognized ColorSpace object: ${cs}`);\n  }\n\n  static isDefaultDecode(decode, numComps) {\n    if (!Array.isArray(decode)) {\n      return true;\n    }\n\n    if (numComps * 2 !== decode.length) {\n      (0, _util.warn)(\"The decode map is not the correct length\");\n      return true;\n    }\n\n    for (let i = 0, ii = decode.length; i < ii; i += 2) {\n      if (decode[i] !== 0 || decode[i + 1] !== 1) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  static get singletons() {\n    return (0, _util.shadow)(this, \"singletons\", {\n      get gray() {\n        return (0, _util.shadow)(this, \"gray\", new DeviceGrayCS());\n      },\n\n      get rgb() {\n        return (0, _util.shadow)(this, \"rgb\", new DeviceRgbCS());\n      },\n\n      get cmyk() {\n        return (0, _util.shadow)(this, \"cmyk\", new DeviceCmykCS());\n      }\n\n    });\n  }\n\n}\n\nexports.ColorSpace = ColorSpace;\n\nclass AlternateCS extends ColorSpace {\n  constructor(numComps, base, tintFn) {\n    super(\"Alternate\", numComps);\n    this.base = base;\n    this.tintFn = tintFn;\n    this.tmpBuf = new Float32Array(base.numComps);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    const tmpBuf = this.tmpBuf;\n    this.tintFn(src, srcOffset, tmpBuf, 0);\n    this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const tintFn = this.tintFn;\n    const base = this.base;\n    const scale = 1 / ((1 << bits) - 1);\n    const baseNumComps = base.numComps;\n    const usesZeroToOneRange = base.usesZeroToOneRange;\n    const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n    let pos = isPassthrough ? destOffset : 0;\n    const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);\n    const numComps = this.numComps;\n    const scaled = new Float32Array(numComps);\n    const tinted = new Float32Array(baseNumComps);\n    let i, j;\n\n    for (i = 0; i < count; i++) {\n      for (j = 0; j < numComps; j++) {\n        scaled[j] = src[srcOffset++] * scale;\n      }\n\n      tintFn(scaled, 0, tinted, 0);\n\n      if (usesZeroToOneRange) {\n        for (j = 0; j < baseNumComps; j++) {\n          baseBuf[pos++] = tinted[j] * 255;\n        }\n      } else {\n        base.getRgbItem(tinted, 0, baseBuf, pos);\n        pos += baseNumComps;\n      }\n    }\n\n    if (!isPassthrough) {\n      base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n  }\n\n}\n\nclass PatternCS extends ColorSpace {\n  constructor(baseCS) {\n    super(\"Pattern\", null);\n    this.base = baseCS;\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    (0, _util.unreachable)(\"Should not call PatternCS.isDefaultDecode\");\n  }\n\n}\n\nclass IndexedCS extends ColorSpace {\n  constructor(base, highVal, lookup) {\n    super(\"Indexed\", 1);\n    this.base = base;\n    this.highVal = highVal;\n    const length = base.numComps * highVal;\n    this.lookup = new Uint8Array(length);\n\n    if (lookup instanceof _base_stream.BaseStream) {\n      const bytes = lookup.getBytes(length);\n      this.lookup.set(bytes);\n    } else if (typeof lookup === \"string\") {\n      for (let i = 0; i < length; ++i) {\n        this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n      }\n    } else {\n      throw new _util.FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n    }\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    const numComps = this.base.numComps;\n    const start = src[srcOffset] * numComps;\n    this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const base = this.base;\n    const numComps = base.numComps;\n    const outputDelta = base.getOutputLength(numComps, alpha01);\n    const lookup = this.lookup;\n\n    for (let i = 0; i < count; ++i) {\n      const lookupPos = src[srcOffset++] * numComps;\n      base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n      destOffset += outputDelta;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n  }\n\n  isDefaultDecode(decodeMap, bpc) {\n    if (!Array.isArray(decodeMap)) {\n      return true;\n    }\n\n    if (decodeMap.length !== 2) {\n      (0, _util.warn)(\"Decode map length is not correct\");\n      return true;\n    }\n\n    if (!Number.isInteger(bpc) || bpc < 1) {\n      (0, _util.warn)(\"Bits per component is not correct\");\n      return true;\n    }\n\n    return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n  }\n\n}\n\nclass DeviceGrayCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceGray\", 1);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    const c = src[srcOffset] * 255;\n    dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n        q = destOffset;\n\n    for (let i = 0; i < count; ++i) {\n      const c = scale * src[j++];\n      dest[q++] = c;\n      dest[q++] = c;\n      dest[q++] = c;\n      q += alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01);\n  }\n\n}\n\nclass DeviceRgbCS extends ColorSpace {\n  constructor() {\n    super(\"DeviceRGB\", 3);\n  }\n\n  getRgbItem(src, srcOffset, dest, destOffset) {\n    dest[destOffset] = src[srcOffset] * 255;\n    dest[destOffset + 1] = src[srcOffset + 1] * 255;\n    dest[destOffset + 2] = src[srcOffset + 2] * 255;\n  }\n\n  getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n    if (bits === 8 && alpha01 === 0) {\n      dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n      return;\n    }\n\n    const scale = 255 / ((1 << bits) - 1);\n    let j = srcOffset,\n        q = destOffset;\n\n    for (let i = 0; i < count; ++i) {\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      dest[q++] = scale * src[j++];\n      q += alpha01;\n    }\n  }\n\n  getOutputLength(inputLength, alpha01) {\n    return inputLength * (3 + alpha01) / 3 | 0;\n  }\n\n  isPassthrough(bits) {\n    return bits === 8;\n  }\n\n}\n\nconst DeviceCmykCS = function DeviceCmykCSClosure() {\n  function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n    const c = src[srcOffset] * srcScale;\n    const m = src[srcOffset + 1] * srcScale;\n    const y = src[srcOffset + 2] * srcScale;\n    const k = src[srcOffset + 3] * srcScale;\n    dest[destOffset] = 255 + 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);\n    dest[destOffset + 1] = 255 + 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);\n    dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);\n  }\n\n  class DeviceCmykCS extends ColorSpace {\n    constructor() {\n      super(\"DeviceCMYK\", 4);\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      convertToRgb(src, srcOffset, 1, dest, destOffset);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      const scale = 1 / ((1 << bits) - 1);\n\n      for (let i = 0; i < count; i++) {\n        convertToRgb(src, srcOffset, scale, dest, destOffset);\n        srcOffset += 4;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return inputLength / 4 * (3 + alpha01) | 0;\n    }\n\n  }\n\n  return DeviceCmykCS;\n}();\n\nconst CalGrayCS = function CalGrayCSClosure() {\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    const A = src[srcOffset] * scale;\n    const AG = A ** cs.G;\n    const L = cs.YW * AG;\n    const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n    dest[destOffset] = val;\n    dest[destOffset + 1] = val;\n    dest[destOffset + 2] = val;\n  }\n\n  class CalGrayCS extends ColorSpace {\n    constructor(whitePoint, blackPoint, gamma) {\n      super(\"CalGray\", 1);\n\n      if (!whitePoint) {\n        throw new _util.FormatError(\"WhitePoint missing - required for color space CalGray\");\n      }\n\n      blackPoint = blackPoint || [0, 0, 0];\n      gamma = gamma || 1;\n      this.XW = whitePoint[0];\n      this.YW = whitePoint[1];\n      this.ZW = whitePoint[2];\n      this.XB = blackPoint[0];\n      this.YB = blackPoint[1];\n      this.ZB = blackPoint[2];\n      this.G = gamma;\n\n      if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n        throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n      }\n\n      if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n        (0, _util.info)(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n        this.XB = this.YB = this.ZB = 0;\n      }\n\n      if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n        (0, _util.warn)(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`);\n      }\n\n      if (this.G < 1) {\n        (0, _util.info)(`Invalid Gamma: ${this.G} for ${this.name}, ` + \"falling back to default.\");\n        this.G = 1;\n      }\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      const scale = 1 / ((1 << bits) - 1);\n\n      for (let i = 0; i < count; ++i) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n        srcOffset += 1;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01);\n    }\n\n  }\n\n  return CalGrayCS;\n}();\n\nconst CalRGBCS = function CalRGBCSClosure() {\n  const BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n  const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n  const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n  const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n  const tempNormalizeMatrix = new Float32Array(3);\n  const tempConvertMatrix1 = new Float32Array(3);\n  const tempConvertMatrix2 = new Float32Array(3);\n  const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n  function matrixProduct(a, b, result) {\n    result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n    result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n    result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n  }\n\n  function convertToFlat(sourceWhitePoint, LMS, result) {\n    result[0] = LMS[0] * 1 / sourceWhitePoint[0];\n    result[1] = LMS[1] * 1 / sourceWhitePoint[1];\n    result[2] = LMS[2] * 1 / sourceWhitePoint[2];\n  }\n\n  function convertToD65(sourceWhitePoint, LMS, result) {\n    const D65X = 0.95047;\n    const D65Y = 1;\n    const D65Z = 1.08883;\n    result[0] = LMS[0] * D65X / sourceWhitePoint[0];\n    result[1] = LMS[1] * D65Y / sourceWhitePoint[1];\n    result[2] = LMS[2] * D65Z / sourceWhitePoint[2];\n  }\n\n  function sRGBTransferFunction(color) {\n    if (color <= 0.0031308) {\n      return adjustToRange(0, 1, 12.92 * color);\n    }\n\n    if (color >= 0.99554525) {\n      return 1;\n    }\n\n    return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n  }\n\n  function adjustToRange(min, max, value) {\n    return Math.max(min, Math.min(max, value));\n  }\n\n  function decodeL(L) {\n    if (L < 0) {\n      return -decodeL(-L);\n    }\n\n    if (L > 8.0) {\n      return ((L + 16) / 116) ** 3;\n    }\n\n    return L * DECODE_L_CONSTANT;\n  }\n\n  function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n    if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n      result[0] = XYZ_Flat[0];\n      result[1] = XYZ_Flat[1];\n      result[2] = XYZ_Flat[2];\n      return;\n    }\n\n    const zeroDecodeL = decodeL(0);\n    const X_DST = zeroDecodeL;\n    const X_SRC = decodeL(sourceBlackPoint[0]);\n    const Y_DST = zeroDecodeL;\n    const Y_SRC = decodeL(sourceBlackPoint[1]);\n    const Z_DST = zeroDecodeL;\n    const Z_SRC = decodeL(sourceBlackPoint[2]);\n    const X_Scale = (1 - X_DST) / (1 - X_SRC);\n    const X_Offset = 1 - X_Scale;\n    const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n    const Y_Offset = 1 - Y_Scale;\n    const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n    const Z_Offset = 1 - Z_Scale;\n    result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n    result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n    result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n  }\n\n  function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n    if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n      result[0] = XYZ_In[0];\n      result[1] = XYZ_In[1];\n      result[2] = XYZ_In[2];\n      return;\n    }\n\n    const LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    const LMS_Flat = tempNormalizeMatrix;\n    convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n  }\n\n  function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n    const LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    const LMS_D65 = tempNormalizeMatrix;\n    convertToD65(sourceWhitePoint, LMS, LMS_D65);\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n  }\n\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    const A = adjustToRange(0, 1, src[srcOffset] * scale);\n    const B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n    const C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n    const AGR = A === 1 ? 1 : A ** cs.GR;\n    const BGG = B === 1 ? 1 : B ** cs.GG;\n    const CGB = C === 1 ? 1 : C ** cs.GB;\n    const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n    const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n    const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n    const XYZ = tempConvertMatrix1;\n    XYZ[0] = X;\n    XYZ[1] = Y;\n    XYZ[2] = Z;\n    const XYZ_Flat = tempConvertMatrix2;\n    normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n    const XYZ_Black = tempConvertMatrix1;\n    compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n    const XYZ_D65 = tempConvertMatrix2;\n    normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n    const SRGB = tempConvertMatrix1;\n    matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n    dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n    dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n    dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n  }\n\n  class CalRGBCS extends ColorSpace {\n    constructor(whitePoint, blackPoint, gamma, matrix) {\n      super(\"CalRGB\", 3);\n\n      if (!whitePoint) {\n        throw new _util.FormatError(\"WhitePoint missing - required for color space CalRGB\");\n      }\n\n      blackPoint = blackPoint || new Float32Array(3);\n      gamma = gamma || new Float32Array([1, 1, 1]);\n      matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n      const XW = whitePoint[0];\n      const YW = whitePoint[1];\n      const ZW = whitePoint[2];\n      this.whitePoint = whitePoint;\n      const XB = blackPoint[0];\n      const YB = blackPoint[1];\n      const ZB = blackPoint[2];\n      this.blackPoint = blackPoint;\n      this.GR = gamma[0];\n      this.GG = gamma[1];\n      this.GB = gamma[2];\n      this.MXA = matrix[0];\n      this.MYA = matrix[1];\n      this.MZA = matrix[2];\n      this.MXB = matrix[3];\n      this.MYB = matrix[4];\n      this.MZB = matrix[5];\n      this.MXC = matrix[6];\n      this.MYC = matrix[7];\n      this.MZC = matrix[8];\n\n      if (XW < 0 || ZW < 0 || YW !== 1) {\n        throw new _util.FormatError(`Invalid WhitePoint components for ${this.name}` + \", no fallback available\");\n      }\n\n      if (XB < 0 || YB < 0 || ZB < 0) {\n        (0, _util.info)(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + \"falling back to default.\");\n        this.blackPoint = new Float32Array(3);\n      }\n\n      if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n        (0, _util.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`);\n        this.GR = this.GG = this.GB = 1;\n      }\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      const scale = 1 / ((1 << bits) - 1);\n\n      for (let i = 0; i < count; ++i) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n        srcOffset += 3;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01) / 3 | 0;\n    }\n\n  }\n\n  return CalRGBCS;\n}();\n\nconst LabCS = function LabCSClosure() {\n  function fn_g(x) {\n    let result;\n\n    if (x >= 6 / 29) {\n      result = x ** 3;\n    } else {\n      result = 108 / 841 * (x - 4 / 29);\n    }\n\n    return result;\n  }\n\n  function decode(value, high1, low2, high2) {\n    return low2 + value * (high2 - low2) / high1;\n  }\n\n  function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n    let Ls = src[srcOffset];\n    let as = src[srcOffset + 1];\n    let bs = src[srcOffset + 2];\n\n    if (maxVal !== false) {\n      Ls = decode(Ls, maxVal, 0, 100);\n      as = decode(as, maxVal, cs.amin, cs.amax);\n      bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n    }\n\n    if (as > cs.amax) {\n      as = cs.amax;\n    } else if (as < cs.amin) {\n      as = cs.amin;\n    }\n\n    if (bs > cs.bmax) {\n      bs = cs.bmax;\n    } else if (bs < cs.bmin) {\n      bs = cs.bmin;\n    }\n\n    const M = (Ls + 16) / 116;\n    const L = M + as / 500;\n    const N = M - bs / 200;\n    const X = cs.XW * fn_g(L);\n    const Y = cs.YW * fn_g(M);\n    const Z = cs.ZW * fn_g(N);\n    let r, g, b;\n\n    if (cs.ZW < 1) {\n      r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n      g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n      b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n    } else {\n      r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n      g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n      b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n    }\n\n    dest[destOffset] = Math.sqrt(r) * 255;\n    dest[destOffset + 1] = Math.sqrt(g) * 255;\n    dest[destOffset + 2] = Math.sqrt(b) * 255;\n  }\n\n  class LabCS extends ColorSpace {\n    constructor(whitePoint, blackPoint, range) {\n      super(\"Lab\", 3);\n\n      if (!whitePoint) {\n        throw new _util.FormatError(\"WhitePoint missing - required for color space Lab\");\n      }\n\n      blackPoint = blackPoint || [0, 0, 0];\n      range = range || [-100, 100, -100, 100];\n      this.XW = whitePoint[0];\n      this.YW = whitePoint[1];\n      this.ZW = whitePoint[2];\n      this.amin = range[0];\n      this.amax = range[1];\n      this.bmin = range[2];\n      this.bmax = range[3];\n      this.XB = blackPoint[0];\n      this.YB = blackPoint[1];\n      this.ZB = blackPoint[2];\n\n      if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n        throw new _util.FormatError(\"Invalid WhitePoint components, no fallback available\");\n      }\n\n      if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n        (0, _util.info)(\"Invalid BlackPoint, falling back to default\");\n        this.XB = this.YB = this.ZB = 0;\n      }\n\n      if (this.amin > this.amax || this.bmin > this.bmax) {\n        (0, _util.info)(\"Invalid Range, falling back to defaults\");\n        this.amin = -100;\n        this.amax = 100;\n        this.bmin = -100;\n        this.bmax = 100;\n      }\n    }\n\n    getRgbItem(src, srcOffset, dest, destOffset) {\n      convertToRgb(this, src, srcOffset, false, dest, destOffset);\n    }\n\n    getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      const maxVal = (1 << bits) - 1;\n\n      for (let i = 0; i < count; i++) {\n        convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n        srcOffset += 3;\n        destOffset += 3 + alpha01;\n      }\n    }\n\n    getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01) / 3 | 0;\n    }\n\n    isDefaultDecode(decodeMap, bpc) {\n      return true;\n    }\n\n    get usesZeroToOneRange() {\n      return (0, _util.shadow)(this, \"usesZeroToOneRange\", false);\n    }\n\n  }\n\n  return LabCS;\n}();\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PartialEvaluator = exports.EvaluatorPreprocessor = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cmap = __w_pdfjs_require__(16);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _fonts = __w_pdfjs_require__(34);\n\nvar _fonts_utils = __w_pdfjs_require__(38);\n\nvar _encodings = __w_pdfjs_require__(37);\n\nvar _standard_fonts = __w_pdfjs_require__(41);\n\nvar _unicode = __w_pdfjs_require__(40);\n\nvar _pattern = __w_pdfjs_require__(50);\n\nvar _xfa_fonts = __w_pdfjs_require__(51);\n\nvar _to_unicode_map = __w_pdfjs_require__(42);\n\nvar _function = __w_pdfjs_require__(57);\n\nvar _parser = __w_pdfjs_require__(17);\n\nvar _image_utils = __w_pdfjs_require__(59);\n\nvar _stream = __w_pdfjs_require__(10);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _bidi = __w_pdfjs_require__(60);\n\nvar _colorspace = __w_pdfjs_require__(14);\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _glyphlist = __w_pdfjs_require__(39);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _metrics = __w_pdfjs_require__(45);\n\nvar _murmurhash = __w_pdfjs_require__(61);\n\nvar _operator_list = __w_pdfjs_require__(62);\n\nvar _image = __w_pdfjs_require__(63);\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n  maxImageSize: -1,\n  disableFontFace: false,\n  ignoreErrors: false,\n  isEvalSupported: true,\n  fontExtraProperties: false,\n  useSystemFonts: true,\n  cMapUrl: null,\n  standardFontDataUrl: null\n});\nconst PatternType = {\n  TILING: 1,\n  SHADING: 2\n};\nconst TEXT_CHUNK_BATCH_SIZE = 10;\nconst deferred = Promise.resolve();\n\nfunction normalizeBlendMode(value, parsingArray = false) {\n  if (Array.isArray(value)) {\n    for (let i = 0, ii = value.length; i < ii; i++) {\n      const maybeBM = normalizeBlendMode(value[i], true);\n\n      if (maybeBM) {\n        return maybeBM;\n      }\n    }\n\n    (0, _util.warn)(`Unsupported blend mode Array: ${value}`);\n    return \"source-over\";\n  }\n\n  if (!(value instanceof _primitives.Name)) {\n    if (parsingArray) {\n      return null;\n    }\n\n    return \"source-over\";\n  }\n\n  switch (value.name) {\n    case \"Normal\":\n    case \"Compatible\":\n      return \"source-over\";\n\n    case \"Multiply\":\n      return \"multiply\";\n\n    case \"Screen\":\n      return \"screen\";\n\n    case \"Overlay\":\n      return \"overlay\";\n\n    case \"Darken\":\n      return \"darken\";\n\n    case \"Lighten\":\n      return \"lighten\";\n\n    case \"ColorDodge\":\n      return \"color-dodge\";\n\n    case \"ColorBurn\":\n      return \"color-burn\";\n\n    case \"HardLight\":\n      return \"hard-light\";\n\n    case \"SoftLight\":\n      return \"soft-light\";\n\n    case \"Difference\":\n      return \"difference\";\n\n    case \"Exclusion\":\n      return \"exclusion\";\n\n    case \"Hue\":\n      return \"hue\";\n\n    case \"Saturation\":\n      return \"saturation\";\n\n    case \"Color\":\n      return \"color\";\n\n    case \"Luminosity\":\n      return \"luminosity\";\n  }\n\n  if (parsingArray) {\n    return null;\n  }\n\n  (0, _util.warn)(`Unsupported blend mode: ${value.name}`);\n  return \"source-over\";\n}\n\nfunction incrementCachedImageMaskCount(data) {\n  if (data.fn === _util.OPS.paintImageMaskXObject && data.args[0] && data.args[0].count > 0) {\n    data.args[0].count++;\n  }\n}\n\nclass TimeSlotManager {\n  static get TIME_SLOT_DURATION_MS() {\n    return (0, _util.shadow)(this, \"TIME_SLOT_DURATION_MS\", 20);\n  }\n\n  static get CHECK_TIME_EVERY() {\n    return (0, _util.shadow)(this, \"CHECK_TIME_EVERY\", 100);\n  }\n\n  constructor() {\n    this.reset();\n  }\n\n  check() {\n    if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n      return false;\n    }\n\n    this.checked = 0;\n    return this.endTime <= Date.now();\n  }\n\n  reset() {\n    this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n    this.checked = 0;\n  }\n\n}\n\nclass PartialEvaluator {\n  constructor({\n    xref,\n    handler,\n    pageIndex,\n    idFactory,\n    fontCache,\n    builtInCMapCache,\n    standardFontDataCache,\n    globalImageCache,\n    options = null\n  }) {\n    this.xref = xref;\n    this.handler = handler;\n    this.pageIndex = pageIndex;\n    this.idFactory = idFactory;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.standardFontDataCache = standardFontDataCache;\n    this.globalImageCache = globalImageCache;\n    this.options = options || DefaultPartialEvaluatorOptions;\n    this.parsingType3Font = false;\n    this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n  }\n\n  get _pdfFunctionFactory() {\n    const pdfFunctionFactory = new _function.PDFFunctionFactory({\n      xref: this.xref,\n      isEvalSupported: this.options.isEvalSupported\n    });\n    return (0, _util.shadow)(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n  }\n\n  clone(newOptions = null) {\n    const newEvaluator = Object.create(this);\n    newEvaluator.options = Object.assign(Object.create(null), this.options, newOptions);\n    return newEvaluator;\n  }\n\n  hasBlendModes(resources, nonBlendModesSet) {\n    if (!(resources instanceof _primitives.Dict)) {\n      return false;\n    }\n\n    if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n      return false;\n    }\n\n    const processed = new _primitives.RefSet(nonBlendModesSet);\n\n    if (resources.objId) {\n      processed.put(resources.objId);\n    }\n\n    const nodes = [resources],\n          xref = this.xref;\n\n    while (nodes.length) {\n      const node = nodes.shift();\n      const graphicStates = node.get(\"ExtGState\");\n\n      if (graphicStates instanceof _primitives.Dict) {\n        for (let graphicState of graphicStates.getRawValues()) {\n          if (graphicState instanceof _primitives.Ref) {\n            if (processed.has(graphicState)) {\n              continue;\n            }\n\n            try {\n              graphicState = xref.fetch(graphicState);\n            } catch (ex) {\n              processed.put(graphicState);\n              (0, _util.info)(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n              continue;\n            }\n          }\n\n          if (!(graphicState instanceof _primitives.Dict)) {\n            continue;\n          }\n\n          if (graphicState.objId) {\n            processed.put(graphicState.objId);\n          }\n\n          const bm = graphicState.get(\"BM\");\n\n          if (bm instanceof _primitives.Name) {\n            if (bm.name !== \"Normal\") {\n              return true;\n            }\n\n            continue;\n          }\n\n          if (bm !== undefined && Array.isArray(bm)) {\n            for (const element of bm) {\n              if (element instanceof _primitives.Name && element.name !== \"Normal\") {\n                return true;\n              }\n            }\n          }\n        }\n      }\n\n      const xObjects = node.get(\"XObject\");\n\n      if (!(xObjects instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      for (let xObject of xObjects.getRawValues()) {\n        if (xObject instanceof _primitives.Ref) {\n          if (processed.has(xObject)) {\n            continue;\n          }\n\n          try {\n            xObject = xref.fetch(xObject);\n          } catch (ex) {\n            processed.put(xObject);\n            (0, _util.info)(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n            continue;\n          }\n        }\n\n        if (!(xObject instanceof _base_stream.BaseStream)) {\n          continue;\n        }\n\n        if (xObject.dict.objId) {\n          processed.put(xObject.dict.objId);\n        }\n\n        const xResources = xObject.dict.get(\"Resources\");\n\n        if (!(xResources instanceof _primitives.Dict)) {\n          continue;\n        }\n\n        if (xResources.objId && processed.has(xResources.objId)) {\n          continue;\n        }\n\n        nodes.push(xResources);\n\n        if (xResources.objId) {\n          processed.put(xResources.objId);\n        }\n      }\n    }\n\n    for (const ref of processed) {\n      nonBlendModesSet.put(ref);\n    }\n\n    return false;\n  }\n\n  async fetchBuiltInCMap(name) {\n    const cachedData = this.builtInCMapCache.get(name);\n\n    if (cachedData) {\n      return cachedData;\n    }\n\n    let data;\n\n    if (this.options.cMapUrl !== null) {\n      const url = `${this.options.cMapUrl}${name}.bcmap`;\n      const response = await fetch(url);\n\n      if (!response.ok) {\n        throw new Error(`fetchBuiltInCMap: failed to fetch file \"${url}\" with \"${response.statusText}\".`);\n      }\n\n      data = {\n        cMapData: new Uint8Array(await response.arrayBuffer()),\n        compressionType: _util.CMapCompressionType.BINARY\n      };\n    } else {\n      data = await this.handler.sendWithPromise(\"FetchBuiltInCMap\", {\n        name\n      });\n    }\n\n    if (data.compressionType !== _util.CMapCompressionType.NONE) {\n      this.builtInCMapCache.set(name, data);\n    }\n\n    return data;\n  }\n\n  async fetchStandardFontData(name) {\n    const cachedData = this.standardFontDataCache.get(name);\n\n    if (cachedData) {\n      return new _stream.Stream(cachedData);\n    }\n\n    if (this.options.useSystemFonts && name !== \"Symbol\" && name !== \"ZapfDingbats\") {\n      return null;\n    }\n\n    const standardFontNameToFileName = (0, _standard_fonts.getFontNameToFileMap)(),\n          filename = standardFontNameToFileName[name];\n    let data;\n\n    if (this.options.standardFontDataUrl !== null) {\n      const url = `${this.options.standardFontDataUrl}${filename}`;\n      const response = await fetch(url);\n\n      if (!response.ok) {\n        (0, _util.warn)(`fetchStandardFontData: failed to fetch file \"${url}\" with \"${response.statusText}\".`);\n      } else {\n        data = await response.arrayBuffer();\n      }\n    } else {\n      try {\n        data = await this.handler.sendWithPromise(\"FetchStandardFontData\", {\n          filename\n        });\n      } catch (e) {\n        (0, _util.warn)(`fetchStandardFontData: failed to fetch file \"${filename}\" with \"${e}\".`);\n      }\n    }\n\n    if (!data) {\n      return null;\n    }\n\n    this.standardFontDataCache.set(name, data);\n    return new _stream.Stream(data);\n  }\n\n  async buildFormXObject(resources, xobj, smask, operatorList, task, initialState, localColorSpaceCache) {\n    const dict = xobj.dict;\n    const matrix = dict.getArray(\"Matrix\");\n    let bbox = dict.getArray(\"BBox\");\n\n    if (Array.isArray(bbox) && bbox.length === 4) {\n      bbox = _util.Util.normalizeRect(bbox);\n    } else {\n      bbox = null;\n    }\n\n    let optionalContent, groupOptions;\n\n    if (dict.has(\"OC\")) {\n      optionalContent = await this.parseMarkedContentProps(dict.get(\"OC\"), resources);\n    }\n\n    if (optionalContent !== undefined) {\n      operatorList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    const group = dict.get(\"Group\");\n\n    if (group) {\n      groupOptions = {\n        matrix,\n        bbox,\n        smask,\n        isolated: false,\n        knockout: false\n      };\n      const groupSubtype = group.get(\"S\");\n      let colorSpace = null;\n\n      if ((0, _primitives.isName)(groupSubtype, \"Transparency\")) {\n        groupOptions.isolated = group.get(\"I\") || false;\n        groupOptions.knockout = group.get(\"K\") || false;\n\n        if (group.has(\"CS\")) {\n          const cs = group.getRaw(\"CS\");\n\n          const cachedColorSpace = _colorspace.ColorSpace.getCached(cs, this.xref, localColorSpaceCache);\n\n          if (cachedColorSpace) {\n            colorSpace = cachedColorSpace;\n          } else {\n            colorSpace = await this.parseColorSpace({\n              cs,\n              resources,\n              localColorSpaceCache\n            });\n          }\n        }\n      }\n\n      if (smask && smask.backdrop) {\n        colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n        smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n      }\n\n      operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n    }\n\n    const args = group ? [matrix, null] : [matrix, bbox];\n    operatorList.addOp(_util.OPS.paintFormXObjectBegin, args);\n    return this.getOperatorList({\n      stream: xobj,\n      task,\n      resources: dict.get(\"Resources\") || resources,\n      operatorList,\n      initialState\n    }).then(function () {\n      operatorList.addOp(_util.OPS.paintFormXObjectEnd, []);\n\n      if (group) {\n        operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n      }\n\n      if (optionalContent !== undefined) {\n        operatorList.addOp(_util.OPS.endMarkedContent, []);\n      }\n    });\n  }\n\n  _sendImgData(objId, imgData, cacheGlobally = false) {\n    const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null;\n\n    if (this.parsingType3Font || cacheGlobally) {\n      return this.handler.send(\"commonobj\", [objId, \"Image\", imgData], transfers);\n    }\n\n    return this.handler.send(\"obj\", [objId, this.pageIndex, \"Image\", imgData], transfers);\n  }\n\n  async buildPaintImageXObject({\n    resources,\n    image,\n    isInline = false,\n    operatorList,\n    cacheKey,\n    localImageCache,\n    localColorSpaceCache\n  }) {\n    const dict = image.dict;\n    const imageRef = dict.objId;\n    const w = dict.get(\"W\", \"Width\");\n    const h = dict.get(\"H\", \"Height\");\n\n    if (!(w && typeof w === \"number\") || !(h && typeof h === \"number\")) {\n      (0, _util.warn)(\"Image dimensions are missing, or not numbers.\");\n      return;\n    }\n\n    const maxImageSize = this.options.maxImageSize;\n\n    if (maxImageSize !== -1 && w * h > maxImageSize) {\n      const msg = \"Image exceeded maximum allowed size and was removed.\";\n\n      if (this.options.ignoreErrors) {\n        (0, _util.warn)(msg);\n        return;\n      }\n\n      throw new Error(msg);\n    }\n\n    let optionalContent;\n\n    if (dict.has(\"OC\")) {\n      optionalContent = await this.parseMarkedContentProps(dict.get(\"OC\"), resources);\n    }\n\n    const imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n    let imgData, args;\n\n    if (imageMask) {\n      const interpolate = dict.get(\"I\", \"Interpolate\");\n      const bitStrideLength = w + 7 >> 3;\n      const imgArray = image.getBytes(bitStrideLength * h);\n      const decode = dict.getArray(\"D\", \"Decode\");\n\n      if (this.parsingType3Font) {\n        imgData = _image.PDFImage.createRawMask({\n          imgArray,\n          width: w,\n          height: h,\n          imageIsFromDecodeStream: image instanceof _decode_stream.DecodeStream,\n          inverseDecode: !!decode && decode[0] > 0,\n          interpolate\n        });\n        imgData.cached = !!cacheKey;\n        args = [imgData];\n        operatorList.addImageOps(_util.OPS.paintImageMaskXObject, args, optionalContent);\n\n        if (cacheKey) {\n          localImageCache.set(cacheKey, imageRef, {\n            fn: _util.OPS.paintImageMaskXObject,\n            args,\n            optionalContent\n          });\n        }\n\n        return;\n      }\n\n      imgData = _image.PDFImage.createMask({\n        imgArray,\n        width: w,\n        height: h,\n        imageIsFromDecodeStream: image instanceof _decode_stream.DecodeStream,\n        inverseDecode: !!decode && decode[0] > 0,\n        interpolate\n      });\n\n      if (imgData.isSingleOpaquePixel) {\n        operatorList.addImageOps(_util.OPS.paintSolidColorImageMask, [], optionalContent);\n\n        if (cacheKey) {\n          localImageCache.set(cacheKey, imageRef, {\n            fn: _util.OPS.paintSolidColorImageMask,\n            args: [],\n            optionalContent\n          });\n        }\n\n        return;\n      }\n\n      const objId = `mask_${this.idFactory.createObjId()}`;\n      operatorList.addDependency(objId);\n\n      this._sendImgData(objId, imgData);\n\n      args = [{\n        data: objId,\n        width: imgData.width,\n        height: imgData.height,\n        interpolate: imgData.interpolate,\n        count: 1\n      }];\n      operatorList.addImageOps(_util.OPS.paintImageMaskXObject, args, optionalContent);\n\n      if (cacheKey) {\n        localImageCache.set(cacheKey, imageRef, {\n          fn: _util.OPS.paintImageMaskXObject,\n          args,\n          optionalContent\n        });\n      }\n\n      return;\n    }\n\n    const softMask = dict.get(\"SM\", \"SMask\") || false;\n    const mask = dict.get(\"Mask\") || false;\n    const SMALL_IMAGE_DIMENSIONS = 200;\n\n    if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n      const imageObj = new _image.PDFImage({\n        xref: this.xref,\n        res: resources,\n        image,\n        isInline,\n        pdfFunctionFactory: this._pdfFunctionFactory,\n        localColorSpaceCache\n      });\n      imgData = imageObj.createImageData(true);\n      operatorList.addImageOps(_util.OPS.paintInlineImageXObject, [imgData], optionalContent);\n      return;\n    }\n\n    let objId = `img_${this.idFactory.createObjId()}`,\n        cacheGlobally = false;\n\n    if (this.parsingType3Font) {\n      objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n    } else if (imageRef) {\n      cacheGlobally = this.globalImageCache.shouldCache(imageRef, this.pageIndex);\n\n      if (cacheGlobally) {\n        objId = `${this.idFactory.getDocId()}_${objId}`;\n      }\n    }\n\n    operatorList.addDependency(objId);\n    args = [objId, w, h];\n\n    _image.PDFImage.buildImage({\n      xref: this.xref,\n      res: resources,\n      image,\n      isInline,\n      pdfFunctionFactory: this._pdfFunctionFactory,\n      localColorSpaceCache\n    }).then(imageObj => {\n      imgData = imageObj.createImageData(false);\n\n      if (cacheKey && imageRef && cacheGlobally) {\n        this.globalImageCache.addByteSize(imageRef, imgData.data.length);\n      }\n\n      return this._sendImgData(objId, imgData, cacheGlobally);\n    }).catch(reason => {\n      (0, _util.warn)(`Unable to decode image \"${objId}\": \"${reason}\".`);\n      return this._sendImgData(objId, null, cacheGlobally);\n    });\n\n    operatorList.addImageOps(_util.OPS.paintImageXObject, args, optionalContent);\n\n    if (cacheKey) {\n      localImageCache.set(cacheKey, imageRef, {\n        fn: _util.OPS.paintImageXObject,\n        args,\n        optionalContent\n      });\n\n      if (imageRef) {\n        (0, _util.assert)(!isInline, \"Cannot cache an inline image globally.\");\n        this.globalImageCache.addPageIndex(imageRef, this.pageIndex);\n\n        if (cacheGlobally) {\n          this.globalImageCache.setData(imageRef, {\n            objId,\n            fn: _util.OPS.paintImageXObject,\n            args,\n            optionalContent,\n            byteSize: 0\n          });\n        }\n      }\n    }\n  }\n\n  handleSMask(smask, resources, operatorList, task, stateManager, localColorSpaceCache) {\n    const smaskContent = smask.get(\"G\");\n    const smaskOptions = {\n      subtype: smask.get(\"S\").name,\n      backdrop: smask.get(\"BC\")\n    };\n    const transferObj = smask.get(\"TR\");\n\n    if ((0, _function.isPDFFunction)(transferObj)) {\n      const transferFn = this._pdfFunctionFactory.create(transferObj);\n\n      const transferMap = new Uint8Array(256);\n      const tmp = new Float32Array(1);\n\n      for (let i = 0; i < 256; i++) {\n        tmp[0] = i / 255;\n        transferFn(tmp, 0, tmp, 0);\n        transferMap[i] = tmp[0] * 255 | 0;\n      }\n\n      smaskOptions.transferMap = transferMap;\n    }\n\n    return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone(), localColorSpaceCache);\n  }\n\n  handleTransferFunction(tr) {\n    let transferArray;\n\n    if (Array.isArray(tr)) {\n      transferArray = tr;\n    } else if ((0, _function.isPDFFunction)(tr)) {\n      transferArray = [tr];\n    } else {\n      return null;\n    }\n\n    const transferMaps = [];\n    let numFns = 0,\n        numEffectfulFns = 0;\n\n    for (const entry of transferArray) {\n      const transferObj = this.xref.fetchIfRef(entry);\n      numFns++;\n\n      if ((0, _primitives.isName)(transferObj, \"Identity\")) {\n        transferMaps.push(null);\n        continue;\n      } else if (!(0, _function.isPDFFunction)(transferObj)) {\n        return null;\n      }\n\n      const transferFn = this._pdfFunctionFactory.create(transferObj);\n\n      const transferMap = new Uint8Array(256),\n            tmp = new Float32Array(1);\n\n      for (let j = 0; j < 256; j++) {\n        tmp[0] = j / 255;\n        transferFn(tmp, 0, tmp, 0);\n        transferMap[j] = tmp[0] * 255 | 0;\n      }\n\n      transferMaps.push(transferMap);\n      numEffectfulFns++;\n    }\n\n    if (!(numFns === 1 || numFns === 4)) {\n      return null;\n    }\n\n    if (numEffectfulFns === 0) {\n      return null;\n    }\n\n    return transferMaps;\n  }\n\n  handleTilingType(fn, color, resources, pattern, patternDict, operatorList, task, localTilingPatternCache) {\n    const tilingOpList = new _operator_list.OperatorList();\n\n    const patternResources = _primitives.Dict.merge({\n      xref: this.xref,\n      dictArray: [patternDict.get(\"Resources\"), resources]\n    });\n\n    return this.getOperatorList({\n      stream: pattern,\n      task,\n      resources: patternResources,\n      operatorList: tilingOpList\n    }).then(function () {\n      const operatorListIR = tilingOpList.getIR();\n      const tilingPatternIR = (0, _pattern.getTilingPatternIR)(operatorListIR, patternDict, color);\n      operatorList.addDependencies(tilingOpList.dependencies);\n      operatorList.addOp(fn, tilingPatternIR);\n\n      if (patternDict.objId) {\n        localTilingPatternCache.set(null, patternDict.objId, {\n          operatorListIR,\n          dict: patternDict\n        });\n      }\n    }).catch(reason => {\n      if (reason instanceof _util.AbortException) {\n        return;\n      }\n\n      if (this.options.ignoreErrors) {\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: _util.UNSUPPORTED_FEATURES.errorTilingPattern\n        });\n        (0, _util.warn)(`handleTilingType - ignoring pattern: \"${reason}\".`);\n        return;\n      }\n\n      throw reason;\n    });\n  }\n\n  handleSetFont(resources, fontArgs, fontRef, operatorList, task, state, fallbackFontDict = null, cssFontInfo = null) {\n    const fontName = fontArgs && fontArgs[0] instanceof _primitives.Name ? fontArgs[0].name : null;\n    return this.loadFont(fontName, fontRef, resources, fallbackFontDict, cssFontInfo).then(translated => {\n      if (!translated.font.isType3Font) {\n        return translated;\n      }\n\n      return translated.loadType3Data(this, resources, task).then(function () {\n        operatorList.addDependencies(translated.type3Dependencies);\n        return translated;\n      }).catch(reason => {\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadType3\n        });\n        return new TranslatedFont({\n          loadedName: \"g_font_error\",\n          font: new _fonts.ErrorFont(`Type3 font load error: ${reason}`),\n          dict: translated.font,\n          evaluatorOptions: this.options\n        });\n      });\n    }).then(translated => {\n      state.font = translated.font;\n      translated.send(this.handler);\n      return translated.loadedName;\n    });\n  }\n\n  handleText(chars, state) {\n    const font = state.font;\n    const glyphs = font.charsToGlyphs(chars);\n\n    if (font.data) {\n      const isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n\n      if (isAddToPathSet || state.fillColorSpace.name === \"Pattern\" || font.disableFontFace || this.options.disableFontFace) {\n        PartialEvaluator.buildFontPaths(font, glyphs, this.handler, this.options);\n      }\n    }\n\n    return glyphs;\n  }\n\n  ensureStateFont(state) {\n    if (state.font) {\n      return;\n    }\n\n    const reason = new _util.FormatError(\"Missing setFont (Tf) operator before text rendering operator.\");\n\n    if (this.options.ignoreErrors) {\n      this.handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.errorFontState\n      });\n      (0, _util.warn)(`ensureStateFont: \"${reason}\".`);\n      return;\n    }\n\n    throw reason;\n  }\n\n  async setGState({\n    resources,\n    gState,\n    operatorList,\n    cacheKey,\n    task,\n    stateManager,\n    localGStateCache,\n    localColorSpaceCache\n  }) {\n    const gStateRef = gState.objId;\n    let isSimpleGState = true;\n    const gStateObj = [];\n    const gStateKeys = gState.getKeys();\n    let promise = Promise.resolve();\n\n    for (let i = 0, ii = gStateKeys.length; i < ii; i++) {\n      const key = gStateKeys[i];\n      const value = gState.get(key);\n\n      switch (key) {\n        case \"Type\":\n          break;\n\n        case \"LW\":\n        case \"LC\":\n        case \"LJ\":\n        case \"ML\":\n        case \"D\":\n        case \"RI\":\n        case \"FL\":\n        case \"CA\":\n        case \"ca\":\n          gStateObj.push([key, value]);\n          break;\n\n        case \"Font\":\n          isSimpleGState = false;\n          promise = promise.then(() => {\n            return this.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {\n              operatorList.addDependency(loadedName);\n              gStateObj.push([key, [loadedName, value[1]]]);\n            });\n          });\n          break;\n\n        case \"BM\":\n          gStateObj.push([key, normalizeBlendMode(value)]);\n          break;\n\n        case \"SMask\":\n          if ((0, _primitives.isName)(value, \"None\")) {\n            gStateObj.push([key, false]);\n            break;\n          }\n\n          if (value instanceof _primitives.Dict) {\n            isSimpleGState = false;\n            promise = promise.then(() => {\n              return this.handleSMask(value, resources, operatorList, task, stateManager, localColorSpaceCache);\n            });\n            gStateObj.push([key, true]);\n          } else {\n            (0, _util.warn)(\"Unsupported SMask type\");\n          }\n\n          break;\n\n        case \"TR\":\n          const transferMaps = this.handleTransferFunction(value);\n          gStateObj.push([key, transferMaps]);\n          break;\n\n        case \"OP\":\n        case \"op\":\n        case \"OPM\":\n        case \"BG\":\n        case \"BG2\":\n        case \"UCR\":\n        case \"UCR2\":\n        case \"TR2\":\n        case \"HT\":\n        case \"SM\":\n        case \"SA\":\n        case \"AIS\":\n        case \"TK\":\n          (0, _util.info)(\"graphic state operator \" + key);\n          break;\n\n        default:\n          (0, _util.info)(\"Unknown graphic state operator \" + key);\n          break;\n      }\n    }\n\n    return promise.then(function () {\n      if (gStateObj.length > 0) {\n        operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n      }\n\n      if (isSimpleGState) {\n        localGStateCache.set(cacheKey, gStateRef, gStateObj);\n      }\n    });\n  }\n\n  loadFont(fontName, font, resources, fallbackFontDict = null, cssFontInfo = null) {\n    const errorFont = async () => {\n      return new TranslatedFont({\n        loadedName: \"g_font_error\",\n        font: new _fonts.ErrorFont(`Font \"${fontName}\" is not available.`),\n        dict: font,\n        evaluatorOptions: this.options\n      });\n    };\n\n    const xref = this.xref;\n    let fontRef;\n\n    if (font) {\n      if (font instanceof _primitives.Ref) {\n        fontRef = font;\n      }\n    } else {\n      const fontRes = resources.get(\"Font\");\n\n      if (fontRes) {\n        fontRef = fontRes.getRaw(fontName);\n      }\n    }\n\n    if (!fontRef) {\n      const partialMsg = `Font \"${fontName || font && font.toString()}\" is not available`;\n\n      if (!this.options.ignoreErrors && !this.parsingType3Font) {\n        (0, _util.warn)(`${partialMsg}.`);\n        return errorFont();\n      }\n\n      this.handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.errorFontMissing\n      });\n      (0, _util.warn)(`${partialMsg} -- attempting to fallback to a default font.`);\n\n      if (fallbackFontDict) {\n        fontRef = fallbackFontDict;\n      } else {\n        fontRef = PartialEvaluator.fallbackFontDict;\n      }\n    }\n\n    if (this.parsingType3Font && this.type3FontRefs.has(fontRef)) {\n      return errorFont();\n    }\n\n    if (this.fontCache.has(fontRef)) {\n      return this.fontCache.get(fontRef);\n    }\n\n    font = xref.fetchIfRef(fontRef);\n\n    if (!(font instanceof _primitives.Dict)) {\n      return errorFont();\n    }\n\n    if (font.cacheKey && this.fontCache.has(font.cacheKey)) {\n      return this.fontCache.get(font.cacheKey);\n    }\n\n    const fontCapability = (0, _util.createPromiseCapability)();\n    let preEvaluatedFont;\n\n    try {\n      preEvaluatedFont = this.preEvaluateFont(font);\n      preEvaluatedFont.cssFontInfo = cssFontInfo;\n    } catch (reason) {\n      (0, _util.warn)(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n      return errorFont();\n    }\n\n    const {\n      descriptor,\n      hash\n    } = preEvaluatedFont;\n    const fontRefIsRef = fontRef instanceof _primitives.Ref;\n    let fontID;\n\n    if (fontRefIsRef) {\n      fontID = `f${fontRef.toString()}`;\n    }\n\n    if (hash && descriptor instanceof _primitives.Dict) {\n      if (!descriptor.fontAliases) {\n        descriptor.fontAliases = Object.create(null);\n      }\n\n      const fontAliases = descriptor.fontAliases;\n\n      if (fontAliases[hash]) {\n        const aliasFontRef = fontAliases[hash].aliasRef;\n\n        if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n          this.fontCache.putAlias(fontRef, aliasFontRef);\n          return this.fontCache.get(fontRef);\n        }\n      } else {\n        fontAliases[hash] = {\n          fontID: this.idFactory.createFontId()\n        };\n      }\n\n      if (fontRefIsRef) {\n        fontAliases[hash].aliasRef = fontRef;\n      }\n\n      fontID = fontAliases[hash].fontID;\n    }\n\n    if (fontRefIsRef) {\n      this.fontCache.put(fontRef, fontCapability.promise);\n    } else {\n      if (!fontID) {\n        fontID = this.idFactory.createFontId();\n      }\n\n      font.cacheKey = `cacheKey_${fontID}`;\n      this.fontCache.put(font.cacheKey, fontCapability.promise);\n    }\n\n    (0, _util.assert)(fontID && fontID.startsWith(\"f\"), 'The \"fontID\" must be (correctly) defined.');\n    font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n    this.translateFont(preEvaluatedFont).then(translatedFont => {\n      if (translatedFont.fontType !== undefined) {\n        xref.stats.addFontType(translatedFont.fontType);\n      }\n\n      fontCapability.resolve(new TranslatedFont({\n        loadedName: font.loadedName,\n        font: translatedFont,\n        dict: font,\n        evaluatorOptions: this.options\n      }));\n    }).catch(reason => {\n      this.handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.errorFontTranslate\n      });\n      (0, _util.warn)(`loadFont - translateFont failed: \"${reason}\".`);\n\n      try {\n        const fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n        const subtype = fontFile3 && fontFile3.get(\"Subtype\");\n        const fontType = (0, _fonts_utils.getFontType)(preEvaluatedFont.type, subtype && subtype.name);\n\n        if (fontType !== undefined) {\n          xref.stats.addFontType(fontType);\n        }\n      } catch (ex) {}\n\n      fontCapability.resolve(new TranslatedFont({\n        loadedName: font.loadedName,\n        font: new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason),\n        dict: font,\n        evaluatorOptions: this.options\n      }));\n    });\n    return fontCapability.promise;\n  }\n\n  buildPath(operatorList, fn, args, parsingText = false) {\n    const lastIndex = operatorList.length - 1;\n\n    if (!args) {\n      args = [];\n    }\n\n    let minMax;\n\n    if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n      if (parsingText) {\n        (0, _util.warn)(`Encountered path operator \"${fn}\" inside of a text object.`);\n        operatorList.addOp(_util.OPS.save, null);\n      }\n\n      minMax = [Infinity, -Infinity, Infinity, -Infinity];\n      operatorList.addOp(_util.OPS.constructPath, [[fn], args, minMax]);\n\n      if (parsingText) {\n        operatorList.addOp(_util.OPS.restore, null);\n      }\n    } else {\n      const opArgs = operatorList.argsArray[lastIndex];\n      opArgs[0].push(fn);\n      Array.prototype.push.apply(opArgs[1], args);\n      minMax = opArgs[2];\n    }\n\n    switch (fn) {\n      case _util.OPS.rectangle:\n        minMax[0] = Math.min(minMax[0], args[0], args[0] + args[2]);\n        minMax[1] = Math.max(minMax[1], args[0], args[0] + args[2]);\n        minMax[2] = Math.min(minMax[2], args[1], args[1] + args[3]);\n        minMax[3] = Math.max(minMax[3], args[1], args[1] + args[3]);\n        break;\n\n      case _util.OPS.moveTo:\n      case _util.OPS.lineTo:\n        minMax[0] = Math.min(minMax[0], args[0]);\n        minMax[1] = Math.max(minMax[1], args[0]);\n        minMax[2] = Math.min(minMax[2], args[1]);\n        minMax[3] = Math.max(minMax[3], args[1]);\n        break;\n    }\n  }\n\n  parseColorSpace({\n    cs,\n    resources,\n    localColorSpaceCache\n  }) {\n    return _colorspace.ColorSpace.parseAsync({\n      cs,\n      xref: this.xref,\n      resources,\n      pdfFunctionFactory: this._pdfFunctionFactory,\n      localColorSpaceCache\n    }).catch(reason => {\n      if (reason instanceof _util.AbortException) {\n        return null;\n      }\n\n      if (this.options.ignoreErrors) {\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: _util.UNSUPPORTED_FEATURES.errorColorSpace\n        });\n        (0, _util.warn)(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n        return null;\n      }\n\n      throw reason;\n    });\n  }\n\n  parseShading({\n    shading,\n    resources,\n    localColorSpaceCache,\n    localShadingPatternCache\n  }) {\n    let id = localShadingPatternCache.get(shading);\n\n    if (!id) {\n      var shadingFill = _pattern.Pattern.parseShading(shading, this.xref, resources, this.handler, this._pdfFunctionFactory, localColorSpaceCache);\n\n      const patternIR = shadingFill.getIR();\n      id = `pattern_${this.idFactory.createObjId()}`;\n      localShadingPatternCache.set(shading, id);\n      this.handler.send(\"obj\", [id, this.pageIndex, \"Pattern\", patternIR]);\n    }\n\n    return id;\n  }\n\n  handleColorN(operatorList, fn, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache) {\n    const patternName = args.pop();\n\n    if (patternName instanceof _primitives.Name) {\n      const rawPattern = patterns.getRaw(patternName.name);\n      const localTilingPattern = rawPattern instanceof _primitives.Ref && localTilingPatternCache.getByRef(rawPattern);\n\n      if (localTilingPattern) {\n        try {\n          const color = cs.base ? cs.base.getRgb(args, 0) : null;\n          const tilingPatternIR = (0, _pattern.getTilingPatternIR)(localTilingPattern.operatorListIR, localTilingPattern.dict, color);\n          operatorList.addOp(fn, tilingPatternIR);\n          return undefined;\n        } catch (ex) {}\n      }\n\n      const pattern = this.xref.fetchIfRef(rawPattern);\n\n      if (pattern) {\n        const dict = pattern instanceof _base_stream.BaseStream ? pattern.dict : pattern;\n        const typeNum = dict.get(\"PatternType\");\n\n        if (typeNum === PatternType.TILING) {\n          const color = cs.base ? cs.base.getRgb(args, 0) : null;\n          return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task, localTilingPatternCache);\n        } else if (typeNum === PatternType.SHADING) {\n          const shading = dict.get(\"Shading\");\n          const matrix = dict.getArray(\"Matrix\");\n          const objId = this.parseShading({\n            shading,\n            resources,\n            localColorSpaceCache,\n            localShadingPatternCache\n          });\n          operatorList.addOp(fn, [\"Shading\", objId, matrix]);\n          return undefined;\n        }\n\n        throw new _util.FormatError(`Unknown PatternType: ${typeNum}`);\n      }\n    }\n\n    throw new _util.FormatError(`Unknown PatternName: ${patternName}`);\n  }\n\n  _parseVisibilityExpression(array, nestingCounter, currentResult) {\n    const MAX_NESTING = 10;\n\n    if (++nestingCounter > MAX_NESTING) {\n      (0, _util.warn)(\"Visibility expression is too deeply nested\");\n      return;\n    }\n\n    const length = array.length;\n    const operator = this.xref.fetchIfRef(array[0]);\n\n    if (length < 2 || !(operator instanceof _primitives.Name)) {\n      (0, _util.warn)(\"Invalid visibility expression\");\n      return;\n    }\n\n    switch (operator.name) {\n      case \"And\":\n      case \"Or\":\n      case \"Not\":\n        currentResult.push(operator.name);\n        break;\n\n      default:\n        (0, _util.warn)(`Invalid operator ${operator.name} in visibility expression`);\n        return;\n    }\n\n    for (let i = 1; i < length; i++) {\n      const raw = array[i];\n      const object = this.xref.fetchIfRef(raw);\n\n      if (Array.isArray(object)) {\n        const nestedResult = [];\n        currentResult.push(nestedResult);\n\n        this._parseVisibilityExpression(object, nestingCounter, nestedResult);\n      } else if (raw instanceof _primitives.Ref) {\n        currentResult.push(raw.toString());\n      }\n    }\n  }\n\n  async parseMarkedContentProps(contentProperties, resources) {\n    let optionalContent;\n\n    if (contentProperties instanceof _primitives.Name) {\n      const properties = resources.get(\"Properties\");\n      optionalContent = properties.get(contentProperties.name);\n    } else if (contentProperties instanceof _primitives.Dict) {\n      optionalContent = contentProperties;\n    } else {\n      throw new _util.FormatError(\"Optional content properties malformed.\");\n    }\n\n    const optionalContentType = optionalContent.get(\"Type\").name;\n\n    if (optionalContentType === \"OCG\") {\n      return {\n        type: optionalContentType,\n        id: optionalContent.objId\n      };\n    } else if (optionalContentType === \"OCMD\") {\n      const expression = optionalContent.get(\"VE\");\n\n      if (Array.isArray(expression)) {\n        const result = [];\n\n        this._parseVisibilityExpression(expression, 0, result);\n\n        if (result.length > 0) {\n          return {\n            type: \"OCMD\",\n            expression: result\n          };\n        }\n      }\n\n      const optionalContentGroups = optionalContent.get(\"OCGs\");\n\n      if (Array.isArray(optionalContentGroups) || optionalContentGroups instanceof _primitives.Dict) {\n        const groupIds = [];\n\n        if (Array.isArray(optionalContentGroups)) {\n          for (const ocg of optionalContentGroups) {\n            groupIds.push(ocg.toString());\n          }\n        } else {\n          groupIds.push(optionalContentGroups.objId);\n        }\n\n        return {\n          type: optionalContentType,\n          ids: groupIds,\n          policy: optionalContent.get(\"P\") instanceof _primitives.Name ? optionalContent.get(\"P\").name : null,\n          expression: null\n        };\n      } else if (optionalContentGroups instanceof _primitives.Ref) {\n        return {\n          type: optionalContentType,\n          id: optionalContentGroups.toString()\n        };\n      }\n    }\n\n    return null;\n  }\n\n  getOperatorList({\n    stream,\n    task,\n    resources,\n    operatorList,\n    initialState = null,\n    fallbackFontDict = null\n  }) {\n    resources = resources || _primitives.Dict.empty;\n    initialState = initialState || new EvalState();\n\n    if (!operatorList) {\n      throw new Error('getOperatorList: missing \"operatorList\" parameter');\n    }\n\n    const self = this;\n    const xref = this.xref;\n    let parsingText = false;\n    const localImageCache = new _image_utils.LocalImageCache();\n    const localColorSpaceCache = new _image_utils.LocalColorSpaceCache();\n    const localGStateCache = new _image_utils.LocalGStateCache();\n    const localTilingPatternCache = new _image_utils.LocalTilingPatternCache();\n    const localShadingPatternCache = new Map();\n\n    const xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n\n    const patterns = resources.get(\"Pattern\") || _primitives.Dict.empty;\n\n    const stateManager = new StateManager(initialState);\n    const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n    const timeSlotManager = new TimeSlotManager();\n\n    function closePendingRestoreOPS(argument) {\n      for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n        operatorList.addOp(_util.OPS.restore, []);\n      }\n    }\n\n    return new Promise(function promiseBody(resolve, reject) {\n      const next = function (promise) {\n        Promise.all([promise, operatorList.ready]).then(function () {\n          try {\n            promiseBody(resolve, reject);\n          } catch (ex) {\n            reject(ex);\n          }\n        }, reject);\n      };\n\n      task.ensureNotTerminated();\n      timeSlotManager.reset();\n      const operation = {};\n      let stop, i, ii, cs, name, isValidName;\n\n      while (!(stop = timeSlotManager.check())) {\n        operation.args = null;\n\n        if (!preprocessor.read(operation)) {\n          break;\n        }\n\n        let args = operation.args;\n        let fn = operation.fn;\n\n        switch (fn | 0) {\n          case _util.OPS.paintXObject:\n            isValidName = args[0] instanceof _primitives.Name;\n            name = args[0].name;\n\n            if (isValidName) {\n              const localImage = localImageCache.getByName(name);\n\n              if (localImage) {\n                operatorList.addImageOps(localImage.fn, localImage.args, localImage.optionalContent);\n                incrementCachedImageMaskCount(localImage);\n                args = null;\n                continue;\n              }\n            }\n\n            next(new Promise(function (resolveXObject, rejectXObject) {\n              if (!isValidName) {\n                throw new _util.FormatError(\"XObject must be referred to by name.\");\n              }\n\n              let xobj = xobjs.getRaw(name);\n\n              if (xobj instanceof _primitives.Ref) {\n                const localImage = localImageCache.getByRef(xobj);\n\n                if (localImage) {\n                  operatorList.addImageOps(localImage.fn, localImage.args, localImage.optionalContent);\n                  incrementCachedImageMaskCount(localImage);\n                  resolveXObject();\n                  return;\n                }\n\n                const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);\n\n                if (globalImage) {\n                  operatorList.addDependency(globalImage.objId);\n                  operatorList.addImageOps(globalImage.fn, globalImage.args, globalImage.optionalContent);\n                  resolveXObject();\n                  return;\n                }\n\n                xobj = xref.fetch(xobj);\n              }\n\n              if (!(xobj instanceof _base_stream.BaseStream)) {\n                throw new _util.FormatError(\"XObject should be a stream\");\n              }\n\n              const type = xobj.dict.get(\"Subtype\");\n\n              if (!(type instanceof _primitives.Name)) {\n                throw new _util.FormatError(\"XObject should have a Name subtype\");\n              }\n\n              if (type.name === \"Form\") {\n                stateManager.save();\n                self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone(), localColorSpaceCache).then(function () {\n                  stateManager.restore();\n                  resolveXObject();\n                }, rejectXObject);\n                return;\n              } else if (type.name === \"Image\") {\n                self.buildPaintImageXObject({\n                  resources,\n                  image: xobj,\n                  operatorList,\n                  cacheKey: name,\n                  localImageCache,\n                  localColorSpaceCache\n                }).then(resolveXObject, rejectXObject);\n                return;\n              } else if (type.name === \"PS\") {\n                (0, _util.info)(\"Ignored XObject subtype PS\");\n              } else {\n                throw new _util.FormatError(`Unhandled XObject subtype ${type.name}`);\n              }\n\n              resolveXObject();\n            }).catch(function (reason) {\n              if (reason instanceof _util.AbortException) {\n                return;\n              }\n\n              if (self.options.ignoreErrors) {\n                self.handler.send(\"UnsupportedFeature\", {\n                  featureId: _util.UNSUPPORTED_FEATURES.errorXObject\n                });\n                (0, _util.warn)(`getOperatorList - ignoring XObject: \"${reason}\".`);\n                return;\n              }\n\n              throw reason;\n            }));\n            return;\n\n          case _util.OPS.setFont:\n            var fontSize = args[1];\n            next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state, fallbackFontDict).then(function (loadedName) {\n              operatorList.addDependency(loadedName);\n              operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n            }));\n            return;\n\n          case _util.OPS.beginText:\n            parsingText = true;\n            break;\n\n          case _util.OPS.endText:\n            parsingText = false;\n            break;\n\n          case _util.OPS.endInlineImage:\n            var cacheKey = args[0].cacheKey;\n\n            if (cacheKey) {\n              const localImage = localImageCache.getByName(cacheKey);\n\n              if (localImage) {\n                operatorList.addImageOps(localImage.fn, localImage.args, localImage.optionalContent);\n                incrementCachedImageMaskCount(localImage);\n                args = null;\n                continue;\n              }\n            }\n\n            next(self.buildPaintImageXObject({\n              resources,\n              image: args[0],\n              isInline: true,\n              operatorList,\n              cacheKey,\n              localImageCache,\n              localColorSpaceCache\n            }));\n            return;\n\n          case _util.OPS.showText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            args[0] = self.handleText(args[0], stateManager.state);\n            break;\n\n          case _util.OPS.showSpacedText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            var arr = args[0];\n            var combinedGlyphs = [];\n            var arrLength = arr.length;\n            var state = stateManager.state;\n\n            for (i = 0; i < arrLength; ++i) {\n              const arrItem = arr[i];\n\n              if (typeof arrItem === \"string\") {\n                Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state));\n              } else if (typeof arrItem === \"number\") {\n                combinedGlyphs.push(arrItem);\n              }\n            }\n\n            args[0] = combinedGlyphs;\n            fn = _util.OPS.showText;\n            break;\n\n          case _util.OPS.nextLineShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            operatorList.addOp(_util.OPS.nextLine);\n            args[0] = self.handleText(args[0], stateManager.state);\n            fn = _util.OPS.showText;\n            break;\n\n          case _util.OPS.nextLineSetSpacingShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            operatorList.addOp(_util.OPS.nextLine);\n            operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]);\n            operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]);\n            args[0] = self.handleText(args[0], stateManager.state);\n            fn = _util.OPS.showText;\n            break;\n\n          case _util.OPS.setTextRenderingMode:\n            stateManager.state.textRenderingMode = args[0];\n            break;\n\n          case _util.OPS.setFillColorSpace:\n            {\n              const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache);\n\n              if (cachedColorSpace) {\n                stateManager.state.fillColorSpace = cachedColorSpace;\n                continue;\n              }\n\n              next(self.parseColorSpace({\n                cs: args[0],\n                resources,\n                localColorSpaceCache\n              }).then(function (colorSpace) {\n                if (colorSpace) {\n                  stateManager.state.fillColorSpace = colorSpace;\n                }\n              }));\n              return;\n            }\n\n          case _util.OPS.setStrokeColorSpace:\n            {\n              const cachedColorSpace = _colorspace.ColorSpace.getCached(args[0], xref, localColorSpaceCache);\n\n              if (cachedColorSpace) {\n                stateManager.state.strokeColorSpace = cachedColorSpace;\n                continue;\n              }\n\n              next(self.parseColorSpace({\n                cs: args[0],\n                resources,\n                localColorSpaceCache\n              }).then(function (colorSpace) {\n                if (colorSpace) {\n                  stateManager.state.strokeColorSpace = colorSpace;\n                }\n              }));\n              return;\n            }\n\n          case _util.OPS.setFillColor:\n            cs = stateManager.state.fillColorSpace;\n            args = cs.getRgb(args, 0);\n            fn = _util.OPS.setFillRGBColor;\n            break;\n\n          case _util.OPS.setStrokeColor:\n            cs = stateManager.state.strokeColorSpace;\n            args = cs.getRgb(args, 0);\n            fn = _util.OPS.setStrokeRGBColor;\n            break;\n\n          case _util.OPS.setFillGray:\n            stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n            args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n            fn = _util.OPS.setFillRGBColor;\n            break;\n\n          case _util.OPS.setStrokeGray:\n            stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n            args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n            fn = _util.OPS.setStrokeRGBColor;\n            break;\n\n          case _util.OPS.setFillCMYKColor:\n            stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n            args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n            fn = _util.OPS.setFillRGBColor;\n            break;\n\n          case _util.OPS.setStrokeCMYKColor:\n            stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n            args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n            fn = _util.OPS.setStrokeRGBColor;\n            break;\n\n          case _util.OPS.setFillRGBColor:\n            stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n            args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n            break;\n\n          case _util.OPS.setStrokeRGBColor:\n            stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb;\n            args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n            break;\n\n          case _util.OPS.setFillColorN:\n            cs = stateManager.state.fillColorSpace;\n\n            if (cs.name === \"Pattern\") {\n              next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache));\n              return;\n            }\n\n            args = cs.getRgb(args, 0);\n            fn = _util.OPS.setFillRGBColor;\n            break;\n\n          case _util.OPS.setStrokeColorN:\n            cs = stateManager.state.strokeColorSpace;\n\n            if (cs.name === \"Pattern\") {\n              next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache));\n              return;\n            }\n\n            args = cs.getRgb(args, 0);\n            fn = _util.OPS.setStrokeRGBColor;\n            break;\n\n          case _util.OPS.shadingFill:\n            var shadingRes = resources.get(\"Shading\");\n\n            if (!shadingRes) {\n              throw new _util.FormatError(\"No shading resource found\");\n            }\n\n            var shading = shadingRes.get(args[0].name);\n\n            if (!shading) {\n              throw new _util.FormatError(\"No shading object found\");\n            }\n\n            const patternId = self.parseShading({\n              shading,\n              resources,\n              localColorSpaceCache,\n              localShadingPatternCache\n            });\n            args = [patternId];\n            fn = _util.OPS.shadingFill;\n            break;\n\n          case _util.OPS.setGState:\n            isValidName = args[0] instanceof _primitives.Name;\n            name = args[0].name;\n\n            if (isValidName) {\n              const localGStateObj = localGStateCache.getByName(name);\n\n              if (localGStateObj) {\n                if (localGStateObj.length > 0) {\n                  operatorList.addOp(_util.OPS.setGState, [localGStateObj]);\n                }\n\n                args = null;\n                continue;\n              }\n            }\n\n            next(new Promise(function (resolveGState, rejectGState) {\n              if (!isValidName) {\n                throw new _util.FormatError(\"GState must be referred to by name.\");\n              }\n\n              const extGState = resources.get(\"ExtGState\");\n\n              if (!(extGState instanceof _primitives.Dict)) {\n                throw new _util.FormatError(\"ExtGState should be a dictionary.\");\n              }\n\n              const gState = extGState.get(name);\n\n              if (!(gState instanceof _primitives.Dict)) {\n                throw new _util.FormatError(\"GState should be a dictionary.\");\n              }\n\n              self.setGState({\n                resources,\n                gState,\n                operatorList,\n                cacheKey: name,\n                task,\n                stateManager,\n                localGStateCache,\n                localColorSpaceCache\n              }).then(resolveGState, rejectGState);\n            }).catch(function (reason) {\n              if (reason instanceof _util.AbortException) {\n                return;\n              }\n\n              if (self.options.ignoreErrors) {\n                self.handler.send(\"UnsupportedFeature\", {\n                  featureId: _util.UNSUPPORTED_FEATURES.errorExtGState\n                });\n                (0, _util.warn)(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n                return;\n              }\n\n              throw reason;\n            }));\n            return;\n\n          case _util.OPS.moveTo:\n          case _util.OPS.lineTo:\n          case _util.OPS.curveTo:\n          case _util.OPS.curveTo2:\n          case _util.OPS.curveTo3:\n          case _util.OPS.closePath:\n          case _util.OPS.rectangle:\n            self.buildPath(operatorList, fn, args, parsingText);\n            continue;\n\n          case _util.OPS.markPoint:\n          case _util.OPS.markPointProps:\n          case _util.OPS.beginCompat:\n          case _util.OPS.endCompat:\n            continue;\n\n          case _util.OPS.beginMarkedContentProps:\n            if (!(args[0] instanceof _primitives.Name)) {\n              (0, _util.warn)(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n              continue;\n            }\n\n            if (args[0].name === \"OC\") {\n              next(self.parseMarkedContentProps(args[1], resources).then(data => {\n                operatorList.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", data]);\n              }).catch(reason => {\n                if (reason instanceof _util.AbortException) {\n                  return;\n                }\n\n                if (self.options.ignoreErrors) {\n                  self.handler.send(\"UnsupportedFeature\", {\n                    featureId: _util.UNSUPPORTED_FEATURES.errorMarkedContent\n                  });\n                  (0, _util.warn)(`getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`);\n                  return;\n                }\n\n                throw reason;\n              }));\n              return;\n            }\n\n            args = [args[0].name, args[1] instanceof _primitives.Dict ? args[1].get(\"MCID\") : null];\n            break;\n\n          case _util.OPS.beginMarkedContent:\n          case _util.OPS.endMarkedContent:\n          default:\n            if (args !== null) {\n              for (i = 0, ii = args.length; i < ii; i++) {\n                if (args[i] instanceof _primitives.Dict) {\n                  break;\n                }\n              }\n\n              if (i < ii) {\n                (0, _util.warn)(\"getOperatorList - ignoring operator: \" + fn);\n                continue;\n              }\n            }\n\n        }\n\n        operatorList.addOp(fn, args);\n      }\n\n      if (stop) {\n        next(deferred);\n        return;\n      }\n\n      closePendingRestoreOPS();\n      resolve();\n    }).catch(reason => {\n      if (reason instanceof _util.AbortException) {\n        return;\n      }\n\n      if (this.options.ignoreErrors) {\n        this.handler.send(\"UnsupportedFeature\", {\n          featureId: _util.UNSUPPORTED_FEATURES.errorOperatorList\n        });\n        (0, _util.warn)(`getOperatorList - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n        closePendingRestoreOPS();\n        return;\n      }\n\n      throw reason;\n    });\n  }\n\n  getTextContent({\n    stream,\n    task,\n    resources,\n    stateManager = null,\n    combineTextItems = false,\n    includeMarkedContent = false,\n    sink,\n    seenStyles = new Set(),\n    viewBox\n  }) {\n    resources = resources || _primitives.Dict.empty;\n    stateManager = stateManager || new StateManager(new TextState());\n    const NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();\n    const textContent = {\n      items: [],\n      styles: Object.create(null)\n    };\n    const textContentItem = {\n      initialized: false,\n      str: [],\n      totalWidth: 0,\n      totalHeight: 0,\n      width: 0,\n      height: 0,\n      vertical: false,\n      prevTransform: null,\n      textAdvanceScale: 0,\n      spaceInFlowMin: 0,\n      spaceInFlowMax: 0,\n      trackingSpaceMin: Infinity,\n      negativeSpaceMax: -Infinity,\n      notASpace: -Infinity,\n      transform: null,\n      fontName: null,\n      hasEOL: false\n    };\n    const twoLastChars = [\" \", \" \"];\n    let twoLastCharsPos = 0;\n\n    function saveLastChar(char) {\n      const nextPos = (twoLastCharsPos + 1) % 2;\n      const ret = twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[nextPos] === \" \";\n      twoLastChars[twoLastCharsPos] = char;\n      twoLastCharsPos = nextPos;\n      return ret;\n    }\n\n    function resetLastChars() {\n      twoLastChars[0] = twoLastChars[1] = \" \";\n      twoLastCharsPos = 0;\n    }\n\n    const TRACKING_SPACE_FACTOR = 0.1;\n    const NOT_A_SPACE_FACTOR = 0.03;\n    const NEGATIVE_SPACE_FACTOR = -0.2;\n    const SPACE_IN_FLOW_MIN_FACTOR = 0.1;\n    const SPACE_IN_FLOW_MAX_FACTOR = 0.6;\n    const self = this;\n    const xref = this.xref;\n    const showSpacedTextBuffer = [];\n    let xobjs = null;\n    const emptyXObjectCache = new _image_utils.LocalImageCache();\n    const emptyGStateCache = new _image_utils.LocalGStateCache();\n    const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n    let textState;\n\n    function getCurrentTextTransform() {\n      const font = textState.font;\n      const tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n\n      if (font.isType3Font && (textState.fontSize <= 1 || font.isCharBBox) && !(0, _util.isArrayEqual)(textState.fontMatrix, _util.FONT_IDENTITY_MATRIX)) {\n        const glyphHeight = font.bbox[3] - font.bbox[1];\n\n        if (glyphHeight > 0) {\n          tsm[3] *= glyphHeight * textState.fontMatrix[3];\n        }\n      }\n\n      return _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n    }\n\n    function ensureTextContentItem() {\n      if (textContentItem.initialized) {\n        return textContentItem;\n      }\n\n      const font = textState.font,\n            loadedName = font.loadedName;\n\n      if (!seenStyles.has(loadedName)) {\n        seenStyles.add(loadedName);\n        textContent.styles[loadedName] = {\n          fontFamily: font.fallbackName,\n          ascent: font.ascent,\n          descent: font.descent,\n          vertical: font.vertical\n        };\n      }\n\n      textContentItem.fontName = loadedName;\n      const trm = textContentItem.transform = getCurrentTextTransform();\n\n      if (!font.vertical) {\n        textContentItem.width = textContentItem.totalWidth = 0;\n        textContentItem.height = textContentItem.totalHeight = Math.hypot(trm[2], trm[3]);\n        textContentItem.vertical = false;\n      } else {\n        textContentItem.width = textContentItem.totalWidth = Math.hypot(trm[0], trm[1]);\n        textContentItem.height = textContentItem.totalHeight = 0;\n        textContentItem.vertical = true;\n      }\n\n      const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]);\n      const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n      textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n      textContentItem.trackingSpaceMin = textState.fontSize * TRACKING_SPACE_FACTOR;\n      textContentItem.notASpace = textState.fontSize * NOT_A_SPACE_FACTOR;\n      textContentItem.negativeSpaceMax = textState.fontSize * NEGATIVE_SPACE_FACTOR;\n      textContentItem.spaceInFlowMin = textState.fontSize * SPACE_IN_FLOW_MIN_FACTOR;\n      textContentItem.spaceInFlowMax = textState.fontSize * SPACE_IN_FLOW_MAX_FACTOR;\n      textContentItem.hasEOL = false;\n      textContentItem.initialized = true;\n      return textContentItem;\n    }\n\n    function updateAdvanceScale() {\n      if (!textContentItem.initialized) {\n        return;\n      }\n\n      const scaleLineX = Math.hypot(textState.textLineMatrix[0], textState.textLineMatrix[1]);\n      const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n      const scaleFactor = scaleCtmX * scaleLineX;\n\n      if (scaleFactor === textContentItem.textAdvanceScale) {\n        return;\n      }\n\n      if (!textContentItem.vertical) {\n        textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale;\n        textContentItem.width = 0;\n      } else {\n        textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale;\n        textContentItem.height = 0;\n      }\n\n      textContentItem.textAdvanceScale = scaleFactor;\n    }\n\n    function runBidiTransform(textChunk) {\n      const text = textChunk.str.join(\"\");\n      const bidiResult = (0, _bidi.bidi)(text, -1, textChunk.vertical);\n      return {\n        str: bidiResult.str,\n        dir: bidiResult.dir,\n        width: Math.abs(textChunk.totalWidth),\n        height: Math.abs(textChunk.totalHeight),\n        transform: textChunk.transform,\n        fontName: textChunk.fontName,\n        hasEOL: textChunk.hasEOL\n      };\n    }\n\n    function handleSetFont(fontName, fontRef) {\n      return self.loadFont(fontName, fontRef, resources).then(function (translated) {\n        if (!translated.font.isType3Font) {\n          return translated;\n        }\n\n        return translated.loadType3Data(self, resources, task).catch(function () {}).then(function () {\n          return translated;\n        });\n      }).then(function (translated) {\n        textState.font = translated.font;\n        textState.fontMatrix = translated.font.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n      });\n    }\n\n    function applyInverseRotation(x, y, matrix) {\n      const scale = Math.hypot(matrix[0], matrix[1]);\n      return [(matrix[0] * x + matrix[1] * y) / scale, (matrix[2] * x + matrix[3] * y) / scale];\n    }\n\n    function compareWithLastPosition() {\n      const currentTransform = getCurrentTextTransform();\n      let posX = currentTransform[4];\n      let posY = currentTransform[5];\n      const shiftedX = posX - viewBox[0];\n      const shiftedY = posY - viewBox[1];\n\n      if (shiftedX < 0 || shiftedX > viewBox[2] || shiftedY < 0 || shiftedY > viewBox[3]) {\n        return false;\n      }\n\n      if (!combineTextItems || !textState.font || !textContentItem.prevTransform) {\n        return true;\n      }\n\n      let lastPosX = textContentItem.prevTransform[4];\n      let lastPosY = textContentItem.prevTransform[5];\n\n      if (lastPosX === posX && lastPosY === posY) {\n        return true;\n      }\n\n      let rotate = -1;\n\n      if (currentTransform[0] && currentTransform[1] === 0 && currentTransform[2] === 0) {\n        rotate = currentTransform[0] > 0 ? 0 : 180;\n      } else if (currentTransform[1] && currentTransform[0] === 0 && currentTransform[3] === 0) {\n        rotate = currentTransform[1] > 0 ? 90 : 270;\n      }\n\n      switch (rotate) {\n        case 0:\n          break;\n\n        case 90:\n          [posX, posY] = [posY, posX];\n          [lastPosX, lastPosY] = [lastPosY, lastPosX];\n          break;\n\n        case 180:\n          [posX, posY, lastPosX, lastPosY] = [-posX, -posY, -lastPosX, -lastPosY];\n          break;\n\n        case 270:\n          [posX, posY] = [-posY, -posX];\n          [lastPosX, lastPosY] = [-lastPosY, -lastPosX];\n          break;\n\n        default:\n          [posX, posY] = applyInverseRotation(posX, posY, currentTransform);\n          [lastPosX, lastPosY] = applyInverseRotation(lastPosX, lastPosY, textContentItem.prevTransform);\n      }\n\n      if (textState.font.vertical) {\n        const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;\n        const advanceX = posX - lastPosX;\n        const textOrientation = Math.sign(textContentItem.height);\n\n        if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {\n          if (Math.abs(advanceX) > 0.5 * textContentItem.width) {\n            appendEOL();\n            return true;\n          }\n\n          resetLastChars();\n          flushTextContentItem();\n          return true;\n        }\n\n        if (Math.abs(advanceX) > textContentItem.width) {\n          appendEOL();\n          return true;\n        }\n\n        if (advanceY <= textOrientation * textContentItem.notASpace) {\n          resetLastChars();\n        }\n\n        if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) {\n          textContentItem.height += advanceY;\n        } else if (!addFakeSpaces(advanceY, textContentItem.prevTransform, textOrientation)) {\n          if (textContentItem.str.length === 0) {\n            resetLastChars();\n            textContent.items.push({\n              str: \" \",\n              dir: \"ltr\",\n              width: 0,\n              height: Math.abs(advanceY),\n              transform: textContentItem.prevTransform,\n              fontName: textContentItem.fontName,\n              hasEOL: false\n            });\n          } else {\n            textContentItem.height += advanceY;\n          }\n        }\n\n        return true;\n      }\n\n      const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;\n      const advanceY = posY - lastPosY;\n      const textOrientation = Math.sign(textContentItem.width);\n\n      if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {\n        if (Math.abs(advanceY) > 0.5 * textContentItem.height) {\n          appendEOL();\n          return true;\n        }\n\n        resetLastChars();\n        flushTextContentItem();\n        return true;\n      }\n\n      if (Math.abs(advanceY) > textContentItem.height) {\n        appendEOL();\n        return true;\n      }\n\n      if (advanceX <= textOrientation * textContentItem.notASpace) {\n        resetLastChars();\n      }\n\n      if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) {\n        textContentItem.width += advanceX;\n      } else if (!addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)) {\n        if (textContentItem.str.length === 0) {\n          resetLastChars();\n          textContent.items.push({\n            str: \" \",\n            dir: \"ltr\",\n            width: Math.abs(advanceX),\n            height: 0,\n            transform: textContentItem.prevTransform,\n            fontName: textContentItem.fontName,\n            hasEOL: false\n          });\n        } else {\n          textContentItem.width += advanceX;\n        }\n      }\n\n      return true;\n    }\n\n    function buildTextContentItem({\n      chars,\n      extraSpacing\n    }) {\n      const font = textState.font;\n\n      if (!chars) {\n        const charSpacing = textState.charSpacing + extraSpacing;\n\n        if (charSpacing) {\n          if (!font.vertical) {\n            textState.translateTextMatrix(charSpacing * textState.textHScale, 0);\n          } else {\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n        }\n\n        return;\n      }\n\n      const glyphs = font.charsToGlyphs(chars);\n      const scale = textState.fontMatrix[0] * textState.fontSize;\n\n      for (let i = 0, ii = glyphs.length; i < ii; i++) {\n        const glyph = glyphs[i];\n\n        if (glyph.isInvisibleFormatMark) {\n          continue;\n        }\n\n        let charSpacing = textState.charSpacing + (i + 1 === ii ? extraSpacing : 0);\n        let glyphWidth = glyph.width;\n\n        if (font.vertical) {\n          glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth;\n        }\n\n        let scaledDim = glyphWidth * scale;\n\n        if (glyph.isWhitespace) {\n          if (!font.vertical) {\n            charSpacing += scaledDim + textState.wordSpacing;\n            textState.translateTextMatrix(charSpacing * textState.textHScale, 0);\n          } else {\n            charSpacing += -scaledDim + textState.wordSpacing;\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n\n          saveLastChar(\" \");\n          continue;\n        }\n\n        if (!compareWithLastPosition()) {\n          continue;\n        }\n\n        const textChunk = ensureTextContentItem();\n\n        if (glyph.isZeroWidthDiacritic) {\n          scaledDim = 0;\n        }\n\n        if (!font.vertical) {\n          scaledDim *= textState.textHScale;\n          textState.translateTextMatrix(scaledDim, 0);\n          textChunk.width += scaledDim;\n        } else {\n          textState.translateTextMatrix(0, scaledDim);\n          scaledDim = Math.abs(scaledDim);\n          textChunk.height += scaledDim;\n        }\n\n        if (scaledDim) {\n          textChunk.prevTransform = getCurrentTextTransform();\n        }\n\n        let glyphUnicode = glyph.unicode;\n        glyphUnicode = NormalizedUnicodes[glyphUnicode] || glyphUnicode;\n        glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n\n        if (saveLastChar(glyphUnicode)) {\n          textChunk.str.push(\" \");\n        }\n\n        textChunk.str.push(glyphUnicode);\n\n        if (charSpacing) {\n          if (!font.vertical) {\n            textState.translateTextMatrix(charSpacing * textState.textHScale, 0);\n          } else {\n            textState.translateTextMatrix(0, -charSpacing);\n          }\n        }\n      }\n    }\n\n    function appendEOL() {\n      resetLastChars();\n\n      if (textContentItem.initialized) {\n        textContentItem.hasEOL = true;\n        flushTextContentItem();\n      } else {\n        textContent.items.push({\n          str: \"\",\n          dir: \"ltr\",\n          width: 0,\n          height: 0,\n          transform: getCurrentTextTransform(),\n          fontName: textState.font.loadedName,\n          hasEOL: true\n        });\n      }\n    }\n\n    function addFakeSpaces(width, transf, textOrientation) {\n      if (textOrientation * textContentItem.spaceInFlowMin <= width && width <= textOrientation * textContentItem.spaceInFlowMax) {\n        if (textContentItem.initialized) {\n          resetLastChars();\n          textContentItem.str.push(\" \");\n        }\n\n        return false;\n      }\n\n      const fontName = textContentItem.fontName;\n      let height = 0;\n\n      if (textContentItem.vertical) {\n        height = width;\n        width = 0;\n      }\n\n      flushTextContentItem();\n      resetLastChars();\n      textContent.items.push({\n        str: \" \",\n        dir: \"ltr\",\n        width: Math.abs(width),\n        height: Math.abs(height),\n        transform: transf || getCurrentTextTransform(),\n        fontName,\n        hasEOL: false\n      });\n      return true;\n    }\n\n    function flushTextContentItem() {\n      if (!textContentItem.initialized || !textContentItem.str) {\n        return;\n      }\n\n      if (!textContentItem.vertical) {\n        textContentItem.totalWidth += textContentItem.width * textContentItem.textAdvanceScale;\n      } else {\n        textContentItem.totalHeight += textContentItem.height * textContentItem.textAdvanceScale;\n      }\n\n      textContent.items.push(runBidiTransform(textContentItem));\n      textContentItem.initialized = false;\n      textContentItem.str.length = 0;\n    }\n\n    function enqueueChunk(batch = false) {\n      const length = textContent.items.length;\n\n      if (length === 0) {\n        return;\n      }\n\n      if (batch && length < TEXT_CHUNK_BATCH_SIZE) {\n        return;\n      }\n\n      sink.enqueue(textContent, length);\n      textContent.items = [];\n      textContent.styles = Object.create(null);\n    }\n\n    const timeSlotManager = new TimeSlotManager();\n    return new Promise(function promiseBody(resolve, reject) {\n      const next = function (promise) {\n        enqueueChunk(true);\n        Promise.all([promise, sink.ready]).then(function () {\n          try {\n            promiseBody(resolve, reject);\n          } catch (ex) {\n            reject(ex);\n          }\n        }, reject);\n      };\n\n      task.ensureNotTerminated();\n      timeSlotManager.reset();\n      const operation = {};\n      let stop,\n          args = [];\n\n      while (!(stop = timeSlotManager.check())) {\n        args.length = 0;\n        operation.args = args;\n\n        if (!preprocessor.read(operation)) {\n          break;\n        }\n\n        textState = stateManager.state;\n        const fn = operation.fn;\n        args = operation.args;\n\n        switch (fn | 0) {\n          case _util.OPS.setFont:\n            var fontNameArg = args[0].name,\n                fontSizeArg = args[1];\n\n            if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n              break;\n            }\n\n            flushTextContentItem();\n            textState.fontName = fontNameArg;\n            textState.fontSize = fontSizeArg;\n            next(handleSetFont(fontNameArg, null));\n            return;\n\n          case _util.OPS.setTextRise:\n            textState.textRise = args[0];\n            break;\n\n          case _util.OPS.setHScale:\n            textState.textHScale = args[0] / 100;\n            break;\n\n          case _util.OPS.setLeading:\n            textState.leading = args[0];\n            break;\n\n          case _util.OPS.moveText:\n            textState.translateTextLineMatrix(args[0], args[1]);\n            textState.textMatrix = textState.textLineMatrix.slice();\n            break;\n\n          case _util.OPS.setLeadingMoveText:\n            textState.leading = -args[1];\n            textState.translateTextLineMatrix(args[0], args[1]);\n            textState.textMatrix = textState.textLineMatrix.slice();\n            break;\n\n          case _util.OPS.nextLine:\n            textState.carriageReturn();\n            break;\n\n          case _util.OPS.setTextMatrix:\n            textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n            textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n            updateAdvanceScale();\n            break;\n\n          case _util.OPS.setCharSpacing:\n            textState.charSpacing = args[0];\n            break;\n\n          case _util.OPS.setWordSpacing:\n            textState.wordSpacing = args[0];\n            break;\n\n          case _util.OPS.beginText:\n            textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n            textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n            break;\n\n          case _util.OPS.showSpacedText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            const spaceFactor = (textState.font.vertical ? 1 : -1) * textState.fontSize / 1000;\n            const elements = args[0];\n\n            for (let i = 0, ii = elements.length; i < ii - 1; i++) {\n              const item = elements[i];\n\n              if (typeof item === \"string\") {\n                showSpacedTextBuffer.push(item);\n              } else if (typeof item === \"number\" && item !== 0) {\n                const str = showSpacedTextBuffer.join(\"\");\n                showSpacedTextBuffer.length = 0;\n                buildTextContentItem({\n                  chars: str,\n                  extraSpacing: item * spaceFactor\n                });\n              }\n            }\n\n            const item = elements.at(-1);\n\n            if (typeof item === \"string\") {\n              showSpacedTextBuffer.push(item);\n            }\n\n            if (showSpacedTextBuffer.length > 0) {\n              const str = showSpacedTextBuffer.join(\"\");\n              showSpacedTextBuffer.length = 0;\n              buildTextContentItem({\n                chars: str,\n                extraSpacing: 0\n              });\n            }\n\n            break;\n\n          case _util.OPS.showText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            buildTextContentItem({\n              chars: args[0],\n              extraSpacing: 0\n            });\n            break;\n\n          case _util.OPS.nextLineShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            textState.carriageReturn();\n            buildTextContentItem({\n              chars: args[0],\n              extraSpacing: 0\n            });\n            break;\n\n          case _util.OPS.nextLineSetSpacingShowText:\n            if (!stateManager.state.font) {\n              self.ensureStateFont(stateManager.state);\n              continue;\n            }\n\n            textState.wordSpacing = args[0];\n            textState.charSpacing = args[1];\n            textState.carriageReturn();\n            buildTextContentItem({\n              chars: args[2],\n              extraSpacing: 0\n            });\n            break;\n\n          case _util.OPS.paintXObject:\n            flushTextContentItem();\n\n            if (!xobjs) {\n              xobjs = resources.get(\"XObject\") || _primitives.Dict.empty;\n            }\n\n            var isValidName = args[0] instanceof _primitives.Name;\n            var name = args[0].name;\n\n            if (isValidName && emptyXObjectCache.getByName(name)) {\n              break;\n            }\n\n            next(new Promise(function (resolveXObject, rejectXObject) {\n              if (!isValidName) {\n                throw new _util.FormatError(\"XObject must be referred to by name.\");\n              }\n\n              let xobj = xobjs.getRaw(name);\n\n              if (xobj instanceof _primitives.Ref) {\n                if (emptyXObjectCache.getByRef(xobj)) {\n                  resolveXObject();\n                  return;\n                }\n\n                const globalImage = self.globalImageCache.getData(xobj, self.pageIndex);\n\n                if (globalImage) {\n                  resolveXObject();\n                  return;\n                }\n\n                xobj = xref.fetch(xobj);\n              }\n\n              if (!(xobj instanceof _base_stream.BaseStream)) {\n                throw new _util.FormatError(\"XObject should be a stream\");\n              }\n\n              const type = xobj.dict.get(\"Subtype\");\n\n              if (!(type instanceof _primitives.Name)) {\n                throw new _util.FormatError(\"XObject should have a Name subtype\");\n              }\n\n              if (type.name !== \"Form\") {\n                emptyXObjectCache.set(name, xobj.dict.objId, true);\n                resolveXObject();\n                return;\n              }\n\n              const currentState = stateManager.state.clone();\n              const xObjStateManager = new StateManager(currentState);\n              const matrix = xobj.dict.getArray(\"Matrix\");\n\n              if (Array.isArray(matrix) && matrix.length === 6) {\n                xObjStateManager.transform(matrix);\n              }\n\n              enqueueChunk();\n              const sinkWrapper = {\n                enqueueInvoked: false,\n\n                enqueue(chunk, size) {\n                  this.enqueueInvoked = true;\n                  sink.enqueue(chunk, size);\n                },\n\n                get desiredSize() {\n                  return sink.desiredSize;\n                },\n\n                get ready() {\n                  return sink.ready;\n                }\n\n              };\n              self.getTextContent({\n                stream: xobj,\n                task,\n                resources: xobj.dict.get(\"Resources\") || resources,\n                stateManager: xObjStateManager,\n                combineTextItems,\n                includeMarkedContent,\n                sink: sinkWrapper,\n                seenStyles,\n                viewBox\n              }).then(function () {\n                if (!sinkWrapper.enqueueInvoked) {\n                  emptyXObjectCache.set(name, xobj.dict.objId, true);\n                }\n\n                resolveXObject();\n              }, rejectXObject);\n            }).catch(function (reason) {\n              if (reason instanceof _util.AbortException) {\n                return;\n              }\n\n              if (self.options.ignoreErrors) {\n                (0, _util.warn)(`getTextContent - ignoring XObject: \"${reason}\".`);\n                return;\n              }\n\n              throw reason;\n            }));\n            return;\n\n          case _util.OPS.setGState:\n            isValidName = args[0] instanceof _primitives.Name;\n            name = args[0].name;\n\n            if (isValidName && emptyGStateCache.getByName(name)) {\n              break;\n            }\n\n            next(new Promise(function (resolveGState, rejectGState) {\n              if (!isValidName) {\n                throw new _util.FormatError(\"GState must be referred to by name.\");\n              }\n\n              const extGState = resources.get(\"ExtGState\");\n\n              if (!(extGState instanceof _primitives.Dict)) {\n                throw new _util.FormatError(\"ExtGState should be a dictionary.\");\n              }\n\n              const gState = extGState.get(name);\n\n              if (!(gState instanceof _primitives.Dict)) {\n                throw new _util.FormatError(\"GState should be a dictionary.\");\n              }\n\n              const gStateFont = gState.get(\"Font\");\n\n              if (!gStateFont) {\n                emptyGStateCache.set(name, gState.objId, true);\n                resolveGState();\n                return;\n              }\n\n              flushTextContentItem();\n              textState.fontName = null;\n              textState.fontSize = gStateFont[1];\n              handleSetFont(null, gStateFont[0]).then(resolveGState, rejectGState);\n            }).catch(function (reason) {\n              if (reason instanceof _util.AbortException) {\n                return;\n              }\n\n              if (self.options.ignoreErrors) {\n                (0, _util.warn)(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n                return;\n              }\n\n              throw reason;\n            }));\n            return;\n\n          case _util.OPS.beginMarkedContent:\n            flushTextContentItem();\n\n            if (includeMarkedContent) {\n              textContent.items.push({\n                type: \"beginMarkedContent\",\n                tag: args[0] instanceof _primitives.Name ? args[0].name : null\n              });\n            }\n\n            break;\n\n          case _util.OPS.beginMarkedContentProps:\n            flushTextContentItem();\n\n            if (includeMarkedContent) {\n              let mcid = null;\n\n              if (args[1] instanceof _primitives.Dict) {\n                mcid = args[1].get(\"MCID\");\n              }\n\n              textContent.items.push({\n                type: \"beginMarkedContentProps\",\n                id: Number.isInteger(mcid) ? `${self.idFactory.getPageObjId()}_mcid${mcid}` : null,\n                tag: args[0] instanceof _primitives.Name ? args[0].name : null\n              });\n            }\n\n            break;\n\n          case _util.OPS.endMarkedContent:\n            flushTextContentItem();\n\n            if (includeMarkedContent) {\n              textContent.items.push({\n                type: \"endMarkedContent\"\n              });\n            }\n\n            break;\n        }\n\n        if (textContent.items.length >= sink.desiredSize) {\n          stop = true;\n          break;\n        }\n      }\n\n      if (stop) {\n        next(deferred);\n        return;\n      }\n\n      flushTextContentItem();\n      enqueueChunk();\n      resolve();\n    }).catch(reason => {\n      if (reason instanceof _util.AbortException) {\n        return;\n      }\n\n      if (this.options.ignoreErrors) {\n        (0, _util.warn)(`getTextContent - ignoring errors during \"${task.name}\" ` + `task: \"${reason}\".`);\n        flushTextContentItem();\n        enqueueChunk();\n        return;\n      }\n\n      throw reason;\n    });\n  }\n\n  extractDataStructures(dict, baseDict, properties) {\n    const xref = this.xref;\n    let cidToGidBytes;\n    const toUnicodePromise = this.readToUnicode(properties.toUnicode || dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\"));\n\n    if (properties.composite) {\n      const cidSystemInfo = dict.get(\"CIDSystemInfo\");\n\n      if (cidSystemInfo instanceof _primitives.Dict) {\n        properties.cidSystemInfo = {\n          registry: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Registry\")),\n          ordering: (0, _util.stringToPDFString)(cidSystemInfo.get(\"Ordering\")),\n          supplement: cidSystemInfo.get(\"Supplement\")\n        };\n      }\n\n      try {\n        const cidToGidMap = dict.get(\"CIDToGIDMap\");\n\n        if (cidToGidMap instanceof _base_stream.BaseStream) {\n          cidToGidBytes = cidToGidMap.getBytes();\n        }\n      } catch (ex) {\n        if (!this.options.ignoreErrors) {\n          throw ex;\n        }\n\n        (0, _util.warn)(`extractDataStructures - ignoring CIDToGIDMap data: \"${ex}\".`);\n      }\n    }\n\n    const differences = [];\n    let baseEncodingName = null;\n    let encoding;\n\n    if (dict.has(\"Encoding\")) {\n      encoding = dict.get(\"Encoding\");\n\n      if (encoding instanceof _primitives.Dict) {\n        baseEncodingName = encoding.get(\"BaseEncoding\");\n        baseEncodingName = baseEncodingName instanceof _primitives.Name ? baseEncodingName.name : null;\n\n        if (encoding.has(\"Differences\")) {\n          const diffEncoding = encoding.get(\"Differences\");\n          let index = 0;\n\n          for (let j = 0, jj = diffEncoding.length; j < jj; j++) {\n            const data = xref.fetchIfRef(diffEncoding[j]);\n\n            if (typeof data === \"number\") {\n              index = data;\n            } else if (data instanceof _primitives.Name) {\n              differences[index++] = data.name;\n            } else {\n              throw new _util.FormatError(`Invalid entry in 'Differences' array: ${data}`);\n            }\n          }\n        }\n      } else if (encoding instanceof _primitives.Name) {\n        baseEncodingName = encoding.name;\n      } else {\n        const msg = \"Encoding is not a Name nor a Dict\";\n\n        if (!this.options.ignoreErrors) {\n          throw new _util.FormatError(msg);\n        }\n\n        (0, _util.warn)(msg);\n      }\n\n      if (baseEncodingName !== \"MacRomanEncoding\" && baseEncodingName !== \"MacExpertEncoding\" && baseEncodingName !== \"WinAnsiEncoding\") {\n        baseEncodingName = null;\n      }\n    }\n\n    if (baseEncodingName) {\n      properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n    } else {\n      const isSymbolicFont = !!(properties.flags & _fonts_utils.FontFlags.Symbolic);\n      const isNonsymbolicFont = !!(properties.flags & _fonts_utils.FontFlags.Nonsymbolic);\n      encoding = _encodings.StandardEncoding;\n\n      if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n        encoding = _encodings.WinAnsiEncoding;\n      }\n\n      if (isSymbolicFont) {\n        encoding = _encodings.MacRomanEncoding;\n\n        if (!properties.file || properties.isInternalFont) {\n          if (/Symbol/i.test(properties.name)) {\n            encoding = _encodings.SymbolSetEncoding;\n          } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n            encoding = _encodings.ZapfDingbatsEncoding;\n          }\n        }\n      }\n\n      properties.defaultEncoding = encoding;\n    }\n\n    properties.differences = differences;\n    properties.baseEncodingName = baseEncodingName;\n    properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n    properties.dict = dict;\n    return toUnicodePromise.then(readToUnicode => {\n      properties.toUnicode = readToUnicode;\n      return this.buildToUnicode(properties);\n    }).then(builtToUnicode => {\n      properties.toUnicode = builtToUnicode;\n\n      if (cidToGidBytes) {\n        properties.cidToGidMap = this.readCidToGidMap(cidToGidBytes, builtToUnicode);\n      }\n\n      return properties;\n    });\n  }\n\n  _simpleFontToUnicode(properties, forceGlyphs = false) {\n    (0, _util.assert)(!properties.composite, \"Must be a simple font.\");\n    const toUnicode = [];\n    const encoding = properties.defaultEncoding.slice();\n    const baseEncodingName = properties.baseEncodingName;\n    const differences = properties.differences;\n\n    for (const charcode in differences) {\n      const glyphName = differences[charcode];\n\n      if (glyphName === \".notdef\") {\n        continue;\n      }\n\n      encoding[charcode] = glyphName;\n    }\n\n    const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n    for (const charcode in encoding) {\n      let glyphName = encoding[charcode];\n\n      if (glyphName === \"\") {\n        continue;\n      } else if (glyphsUnicodeMap[glyphName] === undefined) {\n        let code = 0;\n\n        switch (glyphName[0]) {\n          case \"G\":\n            if (glyphName.length === 3) {\n              code = parseInt(glyphName.substring(1), 16);\n            }\n\n            break;\n\n          case \"g\":\n            if (glyphName.length === 5) {\n              code = parseInt(glyphName.substring(1), 16);\n            }\n\n            break;\n\n          case \"C\":\n          case \"c\":\n            if (glyphName.length >= 3 && glyphName.length <= 4) {\n              const codeStr = glyphName.substring(1);\n\n              if (forceGlyphs) {\n                code = parseInt(codeStr, 16);\n                break;\n              }\n\n              code = +codeStr;\n\n              if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) {\n                return this._simpleFontToUnicode(properties, true);\n              }\n            }\n\n            break;\n\n          default:\n            const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n            if (unicode !== -1) {\n              code = unicode;\n            }\n\n        }\n\n        if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n          if (baseEncodingName && code === +charcode) {\n            const baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n\n            if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n              toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n              continue;\n            }\n          }\n\n          toUnicode[charcode] = String.fromCodePoint(code);\n        }\n\n        continue;\n      }\n\n      toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n    }\n\n    return toUnicode;\n  }\n\n  async buildToUnicode(properties) {\n    properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n\n    if (properties.hasIncludedToUnicodeMap) {\n      if (!properties.composite && properties.hasEncoding) {\n        properties.fallbackToUnicode = this._simpleFontToUnicode(properties);\n      }\n\n      return properties.toUnicode;\n    }\n\n    if (!properties.composite) {\n      return new _to_unicode_map.ToUnicodeMap(this._simpleFontToUnicode(properties));\n    }\n\n    if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === \"Adobe\" && (properties.cidSystemInfo.ordering === \"GB1\" || properties.cidSystemInfo.ordering === \"CNS1\" || properties.cidSystemInfo.ordering === \"Japan1\" || properties.cidSystemInfo.ordering === \"Korea1\"))) {\n      const {\n        registry,\n        ordering\n      } = properties.cidSystemInfo;\n\n      const ucs2CMapName = _primitives.Name.get(`${registry}-${ordering}-UCS2`);\n\n      const ucs2CMap = await _cmap.CMapFactory.create({\n        encoding: ucs2CMapName,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      });\n      const toUnicode = [];\n      properties.cMap.forEach(function (charcode, cid) {\n        if (cid > 0xffff) {\n          throw new _util.FormatError(\"Max size of CID is 65,535\");\n        }\n\n        const ucs2 = ucs2CMap.lookup(cid);\n\n        if (ucs2) {\n          toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1));\n        }\n      });\n      return new _to_unicode_map.ToUnicodeMap(toUnicode);\n    }\n\n    return new _to_unicode_map.IdentityToUnicodeMap(properties.firstChar, properties.lastChar);\n  }\n\n  readToUnicode(cmapObj) {\n    if (!cmapObj) {\n      return Promise.resolve(null);\n    }\n\n    if (cmapObj instanceof _primitives.Name) {\n      return _cmap.CMapFactory.create({\n        encoding: cmapObj,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      }).then(function (cmap) {\n        if (cmap instanceof _cmap.IdentityCMap) {\n          return new _to_unicode_map.IdentityToUnicodeMap(0, 0xffff);\n        }\n\n        return new _to_unicode_map.ToUnicodeMap(cmap.getMap());\n      });\n    } else if (cmapObj instanceof _base_stream.BaseStream) {\n      return _cmap.CMapFactory.create({\n        encoding: cmapObj,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      }).then(function (cmap) {\n        if (cmap instanceof _cmap.IdentityCMap) {\n          return new _to_unicode_map.IdentityToUnicodeMap(0, 0xffff);\n        }\n\n        const map = new Array(cmap.length);\n        cmap.forEach(function (charCode, token) {\n          if (typeof token === \"number\") {\n            map[charCode] = String.fromCodePoint(token);\n            return;\n          }\n\n          const str = [];\n\n          for (let k = 0; k < token.length; k += 2) {\n            const w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n\n            if ((w1 & 0xf800) !== 0xd800) {\n              str.push(w1);\n              continue;\n            }\n\n            k += 2;\n            const w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n            str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n          }\n\n          map[charCode] = String.fromCodePoint(...str);\n        });\n        return new _to_unicode_map.ToUnicodeMap(map);\n      }, reason => {\n        if (reason instanceof _util.AbortException) {\n          return null;\n        }\n\n        if (this.options.ignoreErrors) {\n          this.handler.send(\"UnsupportedFeature\", {\n            featureId: _util.UNSUPPORTED_FEATURES.errorFontToUnicode\n          });\n          (0, _util.warn)(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n          return null;\n        }\n\n        throw reason;\n      });\n    }\n\n    return Promise.resolve(null);\n  }\n\n  readCidToGidMap(glyphsData, toUnicode) {\n    const result = [];\n\n    for (let j = 0, jj = glyphsData.length; j < jj; j++) {\n      const glyphID = glyphsData[j++] << 8 | glyphsData[j];\n      const code = j >> 1;\n\n      if (glyphID === 0 && !toUnicode.has(code)) {\n        continue;\n      }\n\n      result[code] = glyphID;\n    }\n\n    return result;\n  }\n\n  extractWidths(dict, descriptor, properties) {\n    const xref = this.xref;\n    let glyphsWidths = [];\n    let defaultWidth = 0;\n    const glyphsVMetrics = [];\n    let defaultVMetrics;\n    let i, ii, j, jj, start, code, widths;\n\n    if (properties.composite) {\n      defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n      widths = dict.get(\"W\");\n\n      if (widths) {\n        for (i = 0, ii = widths.length; i < ii; i++) {\n          start = xref.fetchIfRef(widths[i++]);\n          code = xref.fetchIfRef(widths[i]);\n\n          if (Array.isArray(code)) {\n            for (j = 0, jj = code.length; j < jj; j++) {\n              glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n            }\n          } else {\n            const width = xref.fetchIfRef(widths[++i]);\n\n            for (j = start; j <= code; j++) {\n              glyphsWidths[j] = width;\n            }\n          }\n        }\n      }\n\n      if (properties.vertical) {\n        let vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n        defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n        vmetrics = dict.get(\"W2\");\n\n        if (vmetrics) {\n          for (i = 0, ii = vmetrics.length; i < ii; i++) {\n            start = xref.fetchIfRef(vmetrics[i++]);\n            code = xref.fetchIfRef(vmetrics[i]);\n\n            if (Array.isArray(code)) {\n              for (j = 0, jj = code.length; j < jj; j++) {\n                glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n              }\n            } else {\n              const vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])];\n\n              for (j = start; j <= code; j++) {\n                glyphsVMetrics[j] = vmetric;\n              }\n            }\n          }\n        }\n      }\n    } else {\n      const firstChar = properties.firstChar;\n      widths = dict.get(\"Widths\");\n\n      if (widths) {\n        j = firstChar;\n\n        for (i = 0, ii = widths.length; i < ii; i++) {\n          glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n        }\n\n        defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n      } else {\n        const baseFontName = dict.get(\"BaseFont\");\n\n        if (baseFontName instanceof _primitives.Name) {\n          const metrics = this.getBaseFontMetrics(baseFontName.name);\n          glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n          defaultWidth = metrics.defaultWidth;\n        }\n      }\n    }\n\n    let isMonospace = true;\n    let firstWidth = defaultWidth;\n\n    for (const glyph in glyphsWidths) {\n      const glyphWidth = glyphsWidths[glyph];\n\n      if (!glyphWidth) {\n        continue;\n      }\n\n      if (!firstWidth) {\n        firstWidth = glyphWidth;\n        continue;\n      }\n\n      if (firstWidth !== glyphWidth) {\n        isMonospace = false;\n        break;\n      }\n    }\n\n    if (isMonospace) {\n      properties.flags |= _fonts_utils.FontFlags.FixedPitch;\n    }\n\n    properties.defaultWidth = defaultWidth;\n    properties.widths = glyphsWidths;\n    properties.defaultVMetrics = defaultVMetrics;\n    properties.vmetrics = glyphsVMetrics;\n  }\n\n  isSerifFont(baseFontName) {\n    const fontNameWoStyle = baseFontName.split(\"-\")[0];\n    return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n  }\n\n  getBaseFontMetrics(name) {\n    let defaultWidth = 0;\n    let widths = Object.create(null);\n    let monospace = false;\n    const stdFontMap = (0, _standard_fonts.getStdFontMap)();\n    let lookupName = stdFontMap[name] || name;\n    const Metrics = (0, _metrics.getMetrics)();\n\n    if (!(lookupName in Metrics)) {\n      if (this.isSerifFont(name)) {\n        lookupName = \"Times-Roman\";\n      } else {\n        lookupName = \"Helvetica\";\n      }\n    }\n\n    const glyphWidths = Metrics[lookupName];\n\n    if (typeof glyphWidths === \"number\") {\n      defaultWidth = glyphWidths;\n      monospace = true;\n    } else {\n      widths = glyphWidths();\n    }\n\n    return {\n      defaultWidth,\n      monospace,\n      widths\n    };\n  }\n\n  buildCharCodeToWidth(widthsByGlyphName, properties) {\n    const widths = Object.create(null);\n    const differences = properties.differences;\n    const encoding = properties.defaultEncoding;\n\n    for (let charCode = 0; charCode < 256; charCode++) {\n      if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n        widths[charCode] = widthsByGlyphName[differences[charCode]];\n        continue;\n      }\n\n      if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n        widths[charCode] = widthsByGlyphName[encoding[charCode]];\n        continue;\n      }\n    }\n\n    return widths;\n  }\n\n  preEvaluateFont(dict) {\n    const baseDict = dict;\n    let type = dict.get(\"Subtype\");\n\n    if (!(type instanceof _primitives.Name)) {\n      throw new _util.FormatError(\"invalid font Subtype\");\n    }\n\n    let composite = false;\n    let hash, toUnicode;\n\n    if (type.name === \"Type0\") {\n      const df = dict.get(\"DescendantFonts\");\n\n      if (!df) {\n        throw new _util.FormatError(\"Descendant fonts are not specified\");\n      }\n\n      dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n\n      if (!(dict instanceof _primitives.Dict)) {\n        throw new _util.FormatError(\"Descendant font is not a dictionary.\");\n      }\n\n      type = dict.get(\"Subtype\");\n\n      if (!(type instanceof _primitives.Name)) {\n        throw new _util.FormatError(\"invalid font Subtype\");\n      }\n\n      composite = true;\n    }\n\n    const firstChar = dict.get(\"FirstChar\") || 0,\n          lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n    const descriptor = dict.get(\"FontDescriptor\");\n\n    if (descriptor) {\n      hash = new _murmurhash.MurmurHash3_64();\n      const encoding = baseDict.getRaw(\"Encoding\");\n\n      if (encoding instanceof _primitives.Name) {\n        hash.update(encoding.name);\n      } else if (encoding instanceof _primitives.Ref) {\n        hash.update(encoding.toString());\n      } else if (encoding instanceof _primitives.Dict) {\n        for (const entry of encoding.getRawValues()) {\n          if (entry instanceof _primitives.Name) {\n            hash.update(entry.name);\n          } else if (entry instanceof _primitives.Ref) {\n            hash.update(entry.toString());\n          } else if (Array.isArray(entry)) {\n            const diffLength = entry.length,\n                  diffBuf = new Array(diffLength);\n\n            for (let j = 0; j < diffLength; j++) {\n              const diffEntry = entry[j];\n\n              if (diffEntry instanceof _primitives.Name) {\n                diffBuf[j] = diffEntry.name;\n              } else if (typeof diffEntry === \"number\" || diffEntry instanceof _primitives.Ref) {\n                diffBuf[j] = diffEntry.toString();\n              }\n            }\n\n            hash.update(diffBuf.join());\n          }\n        }\n      }\n\n      hash.update(`${firstChar}-${lastChar}`);\n      toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n\n      if (toUnicode instanceof _base_stream.BaseStream) {\n        const stream = toUnicode.str || toUnicode;\n        const uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n        hash.update(uint8array);\n      } else if (toUnicode instanceof _primitives.Name) {\n        hash.update(toUnicode.name);\n      }\n\n      const widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n\n      if (Array.isArray(widths)) {\n        const widthsBuf = [];\n\n        for (const entry of widths) {\n          if (typeof entry === \"number\" || entry instanceof _primitives.Ref) {\n            widthsBuf.push(entry.toString());\n          }\n        }\n\n        hash.update(widthsBuf.join());\n      }\n\n      if (composite) {\n        hash.update(\"compositeFont\");\n        const compositeWidths = dict.get(\"W\") || baseDict.get(\"W\");\n\n        if (Array.isArray(compositeWidths)) {\n          const widthsBuf = [];\n\n          for (const entry of compositeWidths) {\n            if (typeof entry === \"number\" || entry instanceof _primitives.Ref) {\n              widthsBuf.push(entry.toString());\n            } else if (Array.isArray(entry)) {\n              const subWidthsBuf = [];\n\n              for (const element of entry) {\n                if (typeof element === \"number\" || element instanceof _primitives.Ref) {\n                  subWidthsBuf.push(element.toString());\n                }\n              }\n\n              widthsBuf.push(`[${subWidthsBuf.join()}]`);\n            }\n          }\n\n          hash.update(widthsBuf.join());\n        }\n\n        const cidToGidMap = dict.getRaw(\"CIDToGIDMap\") || baseDict.getRaw(\"CIDToGIDMap\");\n\n        if (cidToGidMap instanceof _primitives.Name) {\n          hash.update(cidToGidMap.name);\n        } else if (cidToGidMap instanceof _primitives.Ref) {\n          hash.update(cidToGidMap.toString());\n        } else if (cidToGidMap instanceof _base_stream.BaseStream) {\n          hash.update(cidToGidMap.peekBytes());\n        }\n      }\n    }\n\n    return {\n      descriptor,\n      dict,\n      baseDict,\n      composite,\n      type: type.name,\n      firstChar,\n      lastChar,\n      toUnicode,\n      hash: hash ? hash.hexdigest() : \"\"\n    };\n  }\n\n  async translateFont({\n    descriptor,\n    dict,\n    baseDict,\n    composite,\n    type,\n    firstChar,\n    lastChar,\n    toUnicode,\n    cssFontInfo\n  }) {\n    const isType3Font = type === \"Type3\";\n    let properties;\n\n    if (!descriptor) {\n      if (isType3Font) {\n        descriptor = new _primitives.Dict(null);\n        descriptor.set(\"FontName\", _primitives.Name.get(type));\n        descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n      } else {\n        let baseFontName = dict.get(\"BaseFont\");\n\n        if (!(baseFontName instanceof _primitives.Name)) {\n          throw new _util.FormatError(\"Base font is not specified\");\n        }\n\n        baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n        const metrics = this.getBaseFontMetrics(baseFontName);\n        const fontNameWoStyle = baseFontName.split(\"-\")[0];\n        const flags = (this.isSerifFont(fontNameWoStyle) ? _fonts_utils.FontFlags.Serif : 0) | (metrics.monospace ? _fonts_utils.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts_utils.FontFlags.Symbolic : _fonts_utils.FontFlags.Nonsymbolic);\n        properties = {\n          type,\n          name: baseFontName,\n          loadedName: baseDict.loadedName,\n          widths: metrics.widths,\n          defaultWidth: metrics.defaultWidth,\n          isSimulatedFlags: true,\n          flags,\n          firstChar,\n          lastChar,\n          toUnicode,\n          xHeight: 0,\n          capHeight: 0,\n          italicAngle: 0,\n          isType3Font\n        };\n        const widths = dict.get(\"Widths\");\n        const standardFontName = (0, _standard_fonts.getStandardFontName)(baseFontName);\n        let file = null;\n\n        if (standardFontName) {\n          properties.isStandardFont = true;\n          file = await this.fetchStandardFontData(standardFontName);\n          properties.isInternalFont = !!file;\n        }\n\n        return this.extractDataStructures(dict, dict, properties).then(newProperties => {\n          if (widths) {\n            const glyphWidths = [];\n            let j = firstChar;\n\n            for (let i = 0, ii = widths.length; i < ii; i++) {\n              glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n            }\n\n            newProperties.widths = glyphWidths;\n          } else {\n            newProperties.widths = this.buildCharCodeToWidth(metrics.widths, newProperties);\n          }\n\n          return new _fonts.Font(baseFontName, file, newProperties);\n        });\n      }\n    }\n\n    let fontName = descriptor.get(\"FontName\");\n    let baseFont = dict.get(\"BaseFont\");\n\n    if (typeof fontName === \"string\") {\n      fontName = _primitives.Name.get(fontName);\n    }\n\n    if (typeof baseFont === \"string\") {\n      baseFont = _primitives.Name.get(baseFont);\n    }\n\n    if (!isType3Font) {\n      const fontNameStr = fontName && fontName.name;\n      const baseFontStr = baseFont && baseFont.name;\n\n      if (fontNameStr !== baseFontStr) {\n        (0, _util.info)(`The FontDescriptor's FontName is \"${fontNameStr}\" but ` + `should be the same as the Font's BaseFont \"${baseFontStr}\".`);\n\n        if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n          fontName = baseFont;\n        }\n      }\n    }\n\n    fontName = fontName || baseFont;\n\n    if (!(fontName instanceof _primitives.Name)) {\n      throw new _util.FormatError(\"invalid font name\");\n    }\n\n    let fontFile, subtype, length1, length2, length3;\n\n    try {\n      fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n    } catch (ex) {\n      if (!this.options.ignoreErrors) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n      fontFile = new _stream.NullStream();\n    }\n\n    let isStandardFont = false;\n    let isInternalFont = false;\n    let glyphScaleFactors = null;\n\n    if (fontFile) {\n      if (fontFile.dict) {\n        const subtypeEntry = fontFile.dict.get(\"Subtype\");\n\n        if (subtypeEntry instanceof _primitives.Name) {\n          subtype = subtypeEntry.name;\n        }\n\n        length1 = fontFile.dict.get(\"Length1\");\n        length2 = fontFile.dict.get(\"Length2\");\n        length3 = fontFile.dict.get(\"Length3\");\n      }\n    } else if (cssFontInfo) {\n      const standardFontName = (0, _xfa_fonts.getXfaFontName)(fontName.name);\n\n      if (standardFontName) {\n        cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`;\n        cssFontInfo.metrics = standardFontName.metrics || null;\n        glyphScaleFactors = standardFontName.factors || null;\n        fontFile = await this.fetchStandardFontData(standardFontName.name);\n        isInternalFont = !!fontFile;\n        baseDict = dict = (0, _xfa_fonts.getXfaFontDict)(fontName.name);\n        composite = true;\n      }\n    } else if (!isType3Font) {\n      const standardFontName = (0, _standard_fonts.getStandardFontName)(fontName.name);\n\n      if (standardFontName) {\n        isStandardFont = true;\n        fontFile = await this.fetchStandardFontData(standardFontName);\n        isInternalFont = !!fontFile;\n      }\n    }\n\n    properties = {\n      type,\n      name: fontName.name,\n      subtype,\n      file: fontFile,\n      length1,\n      length2,\n      length3,\n      isStandardFont,\n      isInternalFont,\n      loadedName: baseDict.loadedName,\n      composite,\n      fixedPitch: false,\n      fontMatrix: dict.getArray(\"FontMatrix\") || _util.FONT_IDENTITY_MATRIX,\n      firstChar,\n      lastChar,\n      toUnicode,\n      bbox: descriptor.getArray(\"FontBBox\") || dict.getArray(\"FontBBox\"),\n      ascent: descriptor.get(\"Ascent\"),\n      descent: descriptor.get(\"Descent\"),\n      xHeight: descriptor.get(\"XHeight\") || 0,\n      capHeight: descriptor.get(\"CapHeight\") || 0,\n      flags: descriptor.get(\"Flags\"),\n      italicAngle: descriptor.get(\"ItalicAngle\") || 0,\n      isType3Font,\n      cssFontInfo,\n      scaleFactors: glyphScaleFactors\n    };\n\n    if (composite) {\n      const cidEncoding = baseDict.get(\"Encoding\");\n\n      if (cidEncoding instanceof _primitives.Name) {\n        properties.cidEncoding = cidEncoding.name;\n      }\n\n      const cMap = await _cmap.CMapFactory.create({\n        encoding: cidEncoding,\n        fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n        useCMap: null\n      });\n      properties.cMap = cMap;\n      properties.vertical = properties.cMap.vertical;\n    }\n\n    return this.extractDataStructures(dict, baseDict, properties).then(newProperties => {\n      this.extractWidths(dict, descriptor, newProperties);\n      return new _fonts.Font(fontName.name, fontFile, newProperties);\n    });\n  }\n\n  static buildFontPaths(font, glyphs, handler, evaluatorOptions) {\n    function buildPath(fontChar) {\n      const glyphName = `${font.loadedName}_path_${fontChar}`;\n\n      try {\n        if (font.renderer.hasBuiltPath(fontChar)) {\n          return;\n        }\n\n        handler.send(\"commonobj\", [glyphName, \"FontPath\", font.renderer.getPathJs(fontChar)]);\n      } catch (reason) {\n        if (evaluatorOptions.ignoreErrors) {\n          handler.send(\"UnsupportedFeature\", {\n            featureId: _util.UNSUPPORTED_FEATURES.errorFontBuildPath\n          });\n          (0, _util.warn)(`buildFontPaths - ignoring ${glyphName} glyph: \"${reason}\".`);\n          return;\n        }\n\n        throw reason;\n      }\n    }\n\n    for (const glyph of glyphs) {\n      buildPath(glyph.fontChar);\n      const accent = glyph.accent;\n\n      if (accent && accent.fontChar) {\n        buildPath(accent.fontChar);\n      }\n    }\n  }\n\n  static get fallbackFontDict() {\n    const dict = new _primitives.Dict();\n    dict.set(\"BaseFont\", _primitives.Name.get(\"PDFJS-FallbackFont\"));\n    dict.set(\"Type\", _primitives.Name.get(\"FallbackType\"));\n    dict.set(\"Subtype\", _primitives.Name.get(\"FallbackType\"));\n    dict.set(\"Encoding\", _primitives.Name.get(\"WinAnsiEncoding\"));\n    return (0, _util.shadow)(this, \"fallbackFontDict\", dict);\n  }\n\n}\n\nexports.PartialEvaluator = PartialEvaluator;\n\nclass TranslatedFont {\n  constructor({\n    loadedName,\n    font,\n    dict,\n    evaluatorOptions\n  }) {\n    this.loadedName = loadedName;\n    this.font = font;\n    this.dict = dict;\n    this._evaluatorOptions = evaluatorOptions || DefaultPartialEvaluatorOptions;\n    this.type3Loaded = null;\n    this.type3Dependencies = font.isType3Font ? new Set() : null;\n    this.sent = false;\n  }\n\n  send(handler) {\n    if (this.sent) {\n      return;\n    }\n\n    this.sent = true;\n    handler.send(\"commonobj\", [this.loadedName, \"Font\", this.font.exportData(this._evaluatorOptions.fontExtraProperties)]);\n  }\n\n  fallback(handler) {\n    if (!this.font.data) {\n      return;\n    }\n\n    this.font.disableFontFace = true;\n    PartialEvaluator.buildFontPaths(this.font, this.font.glyphCacheValues, handler, this._evaluatorOptions);\n  }\n\n  loadType3Data(evaluator, resources, task) {\n    if (this.type3Loaded) {\n      return this.type3Loaded;\n    }\n\n    if (!this.font.isType3Font) {\n      throw new Error(\"Must be a Type3 font.\");\n    }\n\n    const type3Evaluator = evaluator.clone({\n      ignoreErrors: false\n    });\n    type3Evaluator.parsingType3Font = true;\n    const type3FontRefs = new _primitives.RefSet(evaluator.type3FontRefs);\n\n    if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) {\n      type3FontRefs.put(this.dict.objId);\n    }\n\n    type3Evaluator.type3FontRefs = type3FontRefs;\n    const translatedFont = this.font,\n          type3Dependencies = this.type3Dependencies;\n    let loadCharProcsPromise = Promise.resolve();\n    const charProcs = this.dict.get(\"CharProcs\");\n    const fontResources = this.dict.get(\"Resources\") || resources;\n    const charProcOperatorList = Object.create(null);\n\n    const fontBBox = _util.Util.normalizeRect(translatedFont.bbox || [0, 0, 0, 0]),\n          width = fontBBox[2] - fontBBox[0],\n          height = fontBBox[3] - fontBBox[1];\n\n    const fontBBoxSize = Math.hypot(width, height);\n\n    for (const key of charProcs.getKeys()) {\n      loadCharProcsPromise = loadCharProcsPromise.then(() => {\n        const glyphStream = charProcs.get(key);\n        const operatorList = new _operator_list.OperatorList();\n        return type3Evaluator.getOperatorList({\n          stream: glyphStream,\n          task,\n          resources: fontResources,\n          operatorList\n        }).then(() => {\n          if (operatorList.fnArray[0] === _util.OPS.setCharWidthAndBounds) {\n            this._removeType3ColorOperators(operatorList, fontBBoxSize);\n          }\n\n          charProcOperatorList[key] = operatorList.getIR();\n\n          for (const dependency of operatorList.dependencies) {\n            type3Dependencies.add(dependency);\n          }\n        }).catch(function (reason) {\n          (0, _util.warn)(`Type3 font resource \"${key}\" is not available.`);\n          const dummyOperatorList = new _operator_list.OperatorList();\n          charProcOperatorList[key] = dummyOperatorList.getIR();\n        });\n      });\n    }\n\n    this.type3Loaded = loadCharProcsPromise.then(() => {\n      translatedFont.charProcOperatorList = charProcOperatorList;\n\n      if (this._bbox) {\n        translatedFont.isCharBBox = true;\n        translatedFont.bbox = this._bbox;\n      }\n    });\n    return this.type3Loaded;\n  }\n\n  _removeType3ColorOperators(operatorList, fontBBoxSize = NaN) {\n    const charBBox = _util.Util.normalizeRect(operatorList.argsArray[0].slice(2)),\n          width = charBBox[2] - charBBox[0],\n          height = charBBox[3] - charBBox[1];\n\n    const charBBoxSize = Math.hypot(width, height);\n\n    if (width === 0 || height === 0) {\n      operatorList.fnArray.splice(0, 1);\n      operatorList.argsArray.splice(0, 1);\n    } else if (fontBBoxSize === 0 || Math.round(charBBoxSize / fontBBoxSize) >= 10) {\n      if (!this._bbox) {\n        this._bbox = [Infinity, Infinity, -Infinity, -Infinity];\n      }\n\n      this._bbox[0] = Math.min(this._bbox[0], charBBox[0]);\n      this._bbox[1] = Math.min(this._bbox[1], charBBox[1]);\n      this._bbox[2] = Math.max(this._bbox[2], charBBox[2]);\n      this._bbox[3] = Math.max(this._bbox[3], charBBox[3]);\n    }\n\n    let i = 0,\n        ii = operatorList.length;\n\n    while (i < ii) {\n      switch (operatorList.fnArray[i]) {\n        case _util.OPS.setCharWidthAndBounds:\n          break;\n\n        case _util.OPS.setStrokeColorSpace:\n        case _util.OPS.setFillColorSpace:\n        case _util.OPS.setStrokeColor:\n        case _util.OPS.setStrokeColorN:\n        case _util.OPS.setFillColor:\n        case _util.OPS.setFillColorN:\n        case _util.OPS.setStrokeGray:\n        case _util.OPS.setFillGray:\n        case _util.OPS.setStrokeRGBColor:\n        case _util.OPS.setFillRGBColor:\n        case _util.OPS.setStrokeCMYKColor:\n        case _util.OPS.setFillCMYKColor:\n        case _util.OPS.shadingFill:\n        case _util.OPS.setRenderingIntent:\n          operatorList.fnArray.splice(i, 1);\n          operatorList.argsArray.splice(i, 1);\n          ii--;\n          continue;\n\n        case _util.OPS.setGState:\n          const [gStateObj] = operatorList.argsArray[i];\n          let j = 0,\n              jj = gStateObj.length;\n\n          while (j < jj) {\n            const [gStateKey] = gStateObj[j];\n\n            switch (gStateKey) {\n              case \"TR\":\n              case \"TR2\":\n              case \"HT\":\n              case \"BG\":\n              case \"BG2\":\n              case \"UCR\":\n              case \"UCR2\":\n                gStateObj.splice(j, 1);\n                jj--;\n                continue;\n            }\n\n            j++;\n          }\n\n          break;\n      }\n\n      i++;\n    }\n  }\n\n}\n\nclass StateManager {\n  constructor(initialState = new EvalState()) {\n    this.state = initialState;\n    this.stateStack = [];\n  }\n\n  save() {\n    const old = this.state;\n    this.stateStack.push(this.state);\n    this.state = old.clone();\n  }\n\n  restore() {\n    const prev = this.stateStack.pop();\n\n    if (prev) {\n      this.state = prev;\n    }\n  }\n\n  transform(args) {\n    this.state.ctm = _util.Util.transform(this.state.ctm, args);\n  }\n\n}\n\nclass TextState {\n  constructor() {\n    this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n    this.fontName = null;\n    this.fontSize = 0;\n    this.font = null;\n    this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n    this.textMatrix = _util.IDENTITY_MATRIX.slice();\n    this.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.leading = 0;\n    this.textHScale = 1;\n    this.textRise = 0;\n  }\n\n  setTextMatrix(a, b, c, d, e, f) {\n    const m = this.textMatrix;\n    m[0] = a;\n    m[1] = b;\n    m[2] = c;\n    m[3] = d;\n    m[4] = e;\n    m[5] = f;\n  }\n\n  setTextLineMatrix(a, b, c, d, e, f) {\n    const m = this.textLineMatrix;\n    m[0] = a;\n    m[1] = b;\n    m[2] = c;\n    m[3] = d;\n    m[4] = e;\n    m[5] = f;\n  }\n\n  translateTextMatrix(x, y) {\n    const m = this.textMatrix;\n    m[4] = m[0] * x + m[2] * y + m[4];\n    m[5] = m[1] * x + m[3] * y + m[5];\n  }\n\n  translateTextLineMatrix(x, y) {\n    const m = this.textLineMatrix;\n    m[4] = m[0] * x + m[2] * y + m[4];\n    m[5] = m[1] * x + m[3] * y + m[5];\n  }\n\n  carriageReturn() {\n    this.translateTextLineMatrix(0, -this.leading);\n    this.textMatrix = this.textLineMatrix.slice();\n  }\n\n  clone() {\n    const clone = Object.create(this);\n    clone.textMatrix = this.textMatrix.slice();\n    clone.textLineMatrix = this.textLineMatrix.slice();\n    clone.fontMatrix = this.fontMatrix.slice();\n    return clone;\n  }\n\n}\n\nclass EvalState {\n  constructor() {\n    this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n    this.font = null;\n    this.textRenderingMode = _util.TextRenderingMode.FILL;\n    this.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n    this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n  }\n\n  clone() {\n    return Object.create(this);\n  }\n\n}\n\nclass EvaluatorPreprocessor {\n  static get opMap() {\n    const getOPMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n      t.w = {\n        id: _util.OPS.setLineWidth,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.J = {\n        id: _util.OPS.setLineCap,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.j = {\n        id: _util.OPS.setLineJoin,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.M = {\n        id: _util.OPS.setMiterLimit,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.d = {\n        id: _util.OPS.setDash,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.ri = {\n        id: _util.OPS.setRenderingIntent,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.i = {\n        id: _util.OPS.setFlatness,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.gs = {\n        id: _util.OPS.setGState,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.q = {\n        id: _util.OPS.save,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.Q = {\n        id: _util.OPS.restore,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.cm = {\n        id: _util.OPS.transform,\n        numArgs: 6,\n        variableArgs: false\n      };\n      t.m = {\n        id: _util.OPS.moveTo,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.l = {\n        id: _util.OPS.lineTo,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.c = {\n        id: _util.OPS.curveTo,\n        numArgs: 6,\n        variableArgs: false\n      };\n      t.v = {\n        id: _util.OPS.curveTo2,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.y = {\n        id: _util.OPS.curveTo3,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.h = {\n        id: _util.OPS.closePath,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.re = {\n        id: _util.OPS.rectangle,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.S = {\n        id: _util.OPS.stroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.s = {\n        id: _util.OPS.closeStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.f = {\n        id: _util.OPS.fill,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.F = {\n        id: _util.OPS.fill,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t[\"f*\"] = {\n        id: _util.OPS.eoFill,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.B = {\n        id: _util.OPS.fillStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t[\"B*\"] = {\n        id: _util.OPS.eoFillStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.b = {\n        id: _util.OPS.closeFillStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t[\"b*\"] = {\n        id: _util.OPS.closeEOFillStroke,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.n = {\n        id: _util.OPS.endPath,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.W = {\n        id: _util.OPS.clip,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t[\"W*\"] = {\n        id: _util.OPS.eoClip,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.BT = {\n        id: _util.OPS.beginText,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.ET = {\n        id: _util.OPS.endText,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.Tc = {\n        id: _util.OPS.setCharSpacing,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Tw = {\n        id: _util.OPS.setWordSpacing,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Tz = {\n        id: _util.OPS.setHScale,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.TL = {\n        id: _util.OPS.setLeading,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Tf = {\n        id: _util.OPS.setFont,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.Tr = {\n        id: _util.OPS.setTextRenderingMode,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Ts = {\n        id: _util.OPS.setTextRise,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Td = {\n        id: _util.OPS.moveText,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.TD = {\n        id: _util.OPS.setLeadingMoveText,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.Tm = {\n        id: _util.OPS.setTextMatrix,\n        numArgs: 6,\n        variableArgs: false\n      };\n      t[\"T*\"] = {\n        id: _util.OPS.nextLine,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.Tj = {\n        id: _util.OPS.showText,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.TJ = {\n        id: _util.OPS.showSpacedText,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t[\"'\"] = {\n        id: _util.OPS.nextLineShowText,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t['\"'] = {\n        id: _util.OPS.nextLineSetSpacingShowText,\n        numArgs: 3,\n        variableArgs: false\n      };\n      t.d0 = {\n        id: _util.OPS.setCharWidth,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.d1 = {\n        id: _util.OPS.setCharWidthAndBounds,\n        numArgs: 6,\n        variableArgs: false\n      };\n      t.CS = {\n        id: _util.OPS.setStrokeColorSpace,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.cs = {\n        id: _util.OPS.setFillColorSpace,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.SC = {\n        id: _util.OPS.setStrokeColor,\n        numArgs: 4,\n        variableArgs: true\n      };\n      t.SCN = {\n        id: _util.OPS.setStrokeColorN,\n        numArgs: 33,\n        variableArgs: true\n      };\n      t.sc = {\n        id: _util.OPS.setFillColor,\n        numArgs: 4,\n        variableArgs: true\n      };\n      t.scn = {\n        id: _util.OPS.setFillColorN,\n        numArgs: 33,\n        variableArgs: true\n      };\n      t.G = {\n        id: _util.OPS.setStrokeGray,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.g = {\n        id: _util.OPS.setFillGray,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.RG = {\n        id: _util.OPS.setStrokeRGBColor,\n        numArgs: 3,\n        variableArgs: false\n      };\n      t.rg = {\n        id: _util.OPS.setFillRGBColor,\n        numArgs: 3,\n        variableArgs: false\n      };\n      t.K = {\n        id: _util.OPS.setStrokeCMYKColor,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.k = {\n        id: _util.OPS.setFillCMYKColor,\n        numArgs: 4,\n        variableArgs: false\n      };\n      t.sh = {\n        id: _util.OPS.shadingFill,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.BI = {\n        id: _util.OPS.beginInlineImage,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.ID = {\n        id: _util.OPS.beginImageData,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.EI = {\n        id: _util.OPS.endInlineImage,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.Do = {\n        id: _util.OPS.paintXObject,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.MP = {\n        id: _util.OPS.markPoint,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.DP = {\n        id: _util.OPS.markPointProps,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.BMC = {\n        id: _util.OPS.beginMarkedContent,\n        numArgs: 1,\n        variableArgs: false\n      };\n      t.BDC = {\n        id: _util.OPS.beginMarkedContentProps,\n        numArgs: 2,\n        variableArgs: false\n      };\n      t.EMC = {\n        id: _util.OPS.endMarkedContent,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.BX = {\n        id: _util.OPS.beginCompat,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.EX = {\n        id: _util.OPS.endCompat,\n        numArgs: 0,\n        variableArgs: false\n      };\n      t.BM = null;\n      t.BD = null;\n      t.true = null;\n      t.fa = null;\n      t.fal = null;\n      t.fals = null;\n      t.false = null;\n      t.nu = null;\n      t.nul = null;\n      t.null = null;\n    });\n    return (0, _util.shadow)(this, \"opMap\", getOPMap());\n  }\n\n  static get MAX_INVALID_PATH_OPS() {\n    return (0, _util.shadow)(this, \"MAX_INVALID_PATH_OPS\", 10);\n  }\n\n  constructor(stream, xref, stateManager = new StateManager()) {\n    this.parser = new _parser.Parser({\n      lexer: new _parser.Lexer(stream, EvaluatorPreprocessor.opMap),\n      xref\n    });\n    this.stateManager = stateManager;\n    this.nonProcessedArgs = [];\n    this._isPathOp = false;\n    this._numInvalidPathOPS = 0;\n  }\n\n  get savedStatesDepth() {\n    return this.stateManager.stateStack.length;\n  }\n\n  read(operation) {\n    let args = operation.args;\n\n    while (true) {\n      const obj = this.parser.getObj();\n\n      if (obj instanceof _primitives.Cmd) {\n        const cmd = obj.cmd;\n        const opSpec = EvaluatorPreprocessor.opMap[cmd];\n\n        if (!opSpec) {\n          (0, _util.warn)(`Unknown command \"${cmd}\".`);\n          continue;\n        }\n\n        const fn = opSpec.id;\n        const numArgs = opSpec.numArgs;\n        let argsLength = args !== null ? args.length : 0;\n\n        if (!this._isPathOp) {\n          this._numInvalidPathOPS = 0;\n        }\n\n        this._isPathOp = fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath;\n\n        if (!opSpec.variableArgs) {\n          if (argsLength !== numArgs) {\n            const nonProcessedArgs = this.nonProcessedArgs;\n\n            while (argsLength > numArgs) {\n              nonProcessedArgs.push(args.shift());\n              argsLength--;\n            }\n\n            while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n              if (args === null) {\n                args = [];\n              }\n\n              args.unshift(nonProcessedArgs.pop());\n              argsLength++;\n            }\n          }\n\n          if (argsLength < numArgs) {\n            const partialMsg = `command ${cmd}: expected ${numArgs} args, ` + `but received ${argsLength} args.`;\n\n            if (this._isPathOp && ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS) {\n              throw new _util.FormatError(`Invalid ${partialMsg}`);\n            }\n\n            (0, _util.warn)(`Skipping ${partialMsg}`);\n\n            if (args !== null) {\n              args.length = 0;\n            }\n\n            continue;\n          }\n        } else if (argsLength > numArgs) {\n          (0, _util.info)(`Command ${cmd}: expected [0, ${numArgs}] args, ` + `but received ${argsLength} args.`);\n        }\n\n        this.preprocessCommand(fn, args);\n        operation.fn = fn;\n        operation.args = args;\n        return true;\n      }\n\n      if (obj === _primitives.EOF) {\n        return false;\n      }\n\n      if (obj !== null) {\n        if (args === null) {\n          args = [];\n        }\n\n        args.push(obj);\n\n        if (args.length > 33) {\n          throw new _util.FormatError(\"Too many arguments\");\n        }\n      }\n    }\n  }\n\n  preprocessCommand(fn, args) {\n    switch (fn | 0) {\n      case _util.OPS.save:\n        this.stateManager.save();\n        break;\n\n      case _util.OPS.restore:\n        this.stateManager.restore();\n        break;\n\n      case _util.OPS.transform:\n        this.stateManager.transform(args);\n        break;\n    }\n  }\n\n}\n\nexports.EvaluatorPreprocessor = EvaluatorPreprocessor;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.IdentityCMap = exports.CMapFactory = exports.CMap = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _parser = __w_pdfjs_require__(17);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _stream = __w_pdfjs_require__(10);\n\nconst 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\"];\nconst MAX_MAP_RANGE = 2 ** 24 - 1;\n\nclass CMap {\n  constructor(builtInCMap = false) {\n    this.codespaceRanges = [[], [], [], []];\n    this.numCodespaceRanges = 0;\n    this._map = [];\n    this.name = \"\";\n    this.vertical = false;\n    this.useCMap = null;\n    this.builtInCMap = builtInCMap;\n  }\n\n  addCodespaceRange(n, low, high) {\n    this.codespaceRanges[n - 1].push(low, high);\n    this.numCodespaceRanges++;\n  }\n\n  mapCidRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n\n    while (low <= high) {\n      this._map[low++] = dstLow++;\n    }\n  }\n\n  mapBfRange(low, high, dstLow) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n    }\n\n    const lastByte = dstLow.length - 1;\n\n    while (low <= high) {\n      this._map[low++] = dstLow;\n      const nextCharCode = dstLow.charCodeAt(lastByte) + 1;\n\n      if (nextCharCode > 0xff) {\n        dstLow = dstLow.substring(0, lastByte - 1) + String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) + \"\\x00\";\n        continue;\n      }\n\n      dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode);\n    }\n  }\n\n  mapBfRangeToArray(low, high, array) {\n    if (high - low > MAX_MAP_RANGE) {\n      throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n    }\n\n    const ii = array.length;\n    let i = 0;\n\n    while (low <= high && i < ii) {\n      this._map[low] = array[i++];\n      ++low;\n    }\n  }\n\n  mapOne(src, dst) {\n    this._map[src] = dst;\n  }\n\n  lookup(code) {\n    return this._map[code];\n  }\n\n  contains(code) {\n    return this._map[code] !== undefined;\n  }\n\n  forEach(callback) {\n    const map = this._map;\n    const length = map.length;\n\n    if (length <= 0x10000) {\n      for (let i = 0; i < length; i++) {\n        if (map[i] !== undefined) {\n          callback(i, map[i]);\n        }\n      }\n    } else {\n      for (const i in map) {\n        callback(i, map[i]);\n      }\n    }\n  }\n\n  charCodeOf(value) {\n    const map = this._map;\n\n    if (map.length <= 0x10000) {\n      return map.indexOf(value);\n    }\n\n    for (const charCode in map) {\n      if (map[charCode] === value) {\n        return charCode | 0;\n      }\n    }\n\n    return -1;\n  }\n\n  getMap() {\n    return this._map;\n  }\n\n  readCharCode(str, offset, out) {\n    let c = 0;\n    const codespaceRanges = this.codespaceRanges;\n\n    for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n      c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n      const codespaceRange = codespaceRanges[n];\n\n      for (let k = 0, kk = codespaceRange.length; k < kk;) {\n        const low = codespaceRange[k++];\n        const high = codespaceRange[k++];\n\n        if (c >= low && c <= high) {\n          out.charcode = c;\n          out.length = n + 1;\n          return;\n        }\n      }\n    }\n\n    out.charcode = 0;\n    out.length = 1;\n  }\n\n  getCharCodeLength(charCode) {\n    const codespaceRanges = this.codespaceRanges;\n\n    for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n      const codespaceRange = codespaceRanges[n];\n\n      for (let k = 0, kk = codespaceRange.length; k < kk;) {\n        const low = codespaceRange[k++];\n        const high = codespaceRange[k++];\n\n        if (charCode >= low && charCode <= high) {\n          return n + 1;\n        }\n      }\n    }\n\n    return 1;\n  }\n\n  get length() {\n    return this._map.length;\n  }\n\n  get isIdentityCMap() {\n    if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n      return false;\n    }\n\n    if (this._map.length !== 0x10000) {\n      return false;\n    }\n\n    for (let i = 0; i < 0x10000; i++) {\n      if (this._map[i] !== i) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n}\n\nexports.CMap = CMap;\n\nclass IdentityCMap extends CMap {\n  constructor(vertical, n) {\n    super();\n    this.vertical = vertical;\n    this.addCodespaceRange(n, 0, 0xffff);\n  }\n\n  mapCidRange(low, high, dstLow) {\n    (0, _util.unreachable)(\"should not call mapCidRange\");\n  }\n\n  mapBfRange(low, high, dstLow) {\n    (0, _util.unreachable)(\"should not call mapBfRange\");\n  }\n\n  mapBfRangeToArray(low, high, array) {\n    (0, _util.unreachable)(\"should not call mapBfRangeToArray\");\n  }\n\n  mapOne(src, dst) {\n    (0, _util.unreachable)(\"should not call mapCidOne\");\n  }\n\n  lookup(code) {\n    return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n  }\n\n  contains(code) {\n    return Number.isInteger(code) && code <= 0xffff;\n  }\n\n  forEach(callback) {\n    for (let i = 0; i <= 0xffff; i++) {\n      callback(i, i);\n    }\n  }\n\n  charCodeOf(value) {\n    return Number.isInteger(value) && value <= 0xffff ? value : -1;\n  }\n\n  getMap() {\n    const map = new Array(0x10000);\n\n    for (let i = 0; i <= 0xffff; i++) {\n      map[i] = i;\n    }\n\n    return map;\n  }\n\n  get length() {\n    return 0x10000;\n  }\n\n  get isIdentityCMap() {\n    (0, _util.unreachable)(\"should not access .isIdentityCMap\");\n  }\n\n}\n\nexports.IdentityCMap = IdentityCMap;\n\nconst BinaryCMapReader = function BinaryCMapReaderClosure() {\n  function hexToInt(a, size) {\n    let n = 0;\n\n    for (let i = 0; i <= size; i++) {\n      n = n << 8 | a[i];\n    }\n\n    return n >>> 0;\n  }\n\n  function hexToStr(a, size) {\n    if (size === 1) {\n      return String.fromCharCode(a[0], a[1]);\n    }\n\n    if (size === 3) {\n      return String.fromCharCode(a[0], a[1], a[2], a[3]);\n    }\n\n    return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n  }\n\n  function addHex(a, b, size) {\n    let c = 0;\n\n    for (let i = size; i >= 0; i--) {\n      c += a[i] + b[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  function incHex(a, size) {\n    let c = 1;\n\n    for (let i = size; i >= 0 && c > 0; i--) {\n      c += a[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  const MAX_NUM_SIZE = 16;\n  const MAX_ENCODED_NUM_SIZE = 19;\n\n  class BinaryCMapStream {\n    constructor(data) {\n      this.buffer = data;\n      this.pos = 0;\n      this.end = data.length;\n      this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n    }\n\n    readByte() {\n      if (this.pos >= this.end) {\n        return -1;\n      }\n\n      return this.buffer[this.pos++];\n    }\n\n    readNumber() {\n      let n = 0;\n      let last;\n\n      do {\n        const b = this.readByte();\n\n        if (b < 0) {\n          throw new _util.FormatError(\"unexpected EOF in bcmap\");\n        }\n\n        last = !(b & 0x80);\n        n = n << 7 | b & 0x7f;\n      } while (!last);\n\n      return n;\n    }\n\n    readSigned() {\n      const n = this.readNumber();\n      return n & 1 ? ~(n >>> 1) : n >>> 1;\n    }\n\n    readHex(num, size) {\n      num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n      this.pos += size + 1;\n    }\n\n    readHexNumber(num, size) {\n      let last;\n      const stack = this.tmpBuf;\n      let sp = 0;\n\n      do {\n        const b = this.readByte();\n\n        if (b < 0) {\n          throw new _util.FormatError(\"unexpected EOF in bcmap\");\n        }\n\n        last = !(b & 0x80);\n        stack[sp++] = b & 0x7f;\n      } while (!last);\n\n      let i = size,\n          buffer = 0,\n          bufferSize = 0;\n\n      while (i >= 0) {\n        while (bufferSize < 8 && stack.length > 0) {\n          buffer |= stack[--sp] << bufferSize;\n          bufferSize += 7;\n        }\n\n        num[i] = buffer & 255;\n        i--;\n        buffer >>= 8;\n        bufferSize -= 8;\n      }\n    }\n\n    readHexSigned(num, size) {\n      this.readHexNumber(num, size);\n      const sign = num[size] & 1 ? 255 : 0;\n      let c = 0;\n\n      for (let i = 0; i <= size; i++) {\n        c = (c & 1) << 8 | num[i];\n        num[i] = c >> 1 ^ sign;\n      }\n    }\n\n    readString() {\n      const len = this.readNumber();\n      let s = \"\";\n\n      for (let i = 0; i < len; i++) {\n        s += String.fromCharCode(this.readNumber());\n      }\n\n      return s;\n    }\n\n  }\n\n  class BinaryCMapReader {\n    async process(data, cMap, extend) {\n      const stream = new BinaryCMapStream(data);\n      const header = stream.readByte();\n      cMap.vertical = !!(header & 1);\n      let useCMap = null;\n      const start = new Uint8Array(MAX_NUM_SIZE);\n      const end = new Uint8Array(MAX_NUM_SIZE);\n      const char = new Uint8Array(MAX_NUM_SIZE);\n      const charCode = new Uint8Array(MAX_NUM_SIZE);\n      const tmp = new Uint8Array(MAX_NUM_SIZE);\n      let code;\n      let b;\n\n      while ((b = stream.readByte()) >= 0) {\n        const type = b >> 5;\n\n        if (type === 7) {\n          switch (b & 0x1f) {\n            case 0:\n              stream.readString();\n              break;\n\n            case 1:\n              useCMap = stream.readString();\n              break;\n          }\n\n          continue;\n        }\n\n        const sequence = !!(b & 0x10);\n        const dataSize = b & 15;\n\n        if (dataSize + 1 > MAX_NUM_SIZE) {\n          throw new Error(\"BinaryCMapReader.process: Invalid dataSize.\");\n        }\n\n        const ucs2DataSize = 1;\n        const subitemsCount = stream.readNumber();\n\n        switch (type) {\n          case 0:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n            }\n\n            break;\n\n          case 1:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            stream.readNumber();\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              stream.readNumber();\n            }\n\n            break;\n\n          case 2:\n            stream.readHex(char, dataSize);\n            code = stream.readNumber();\n            cMap.mapOne(hexToInt(char, dataSize), code);\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(char, dataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(tmp, dataSize);\n                addHex(char, tmp, dataSize);\n              }\n\n              code = stream.readSigned() + (code + 1);\n              cMap.mapOne(hexToInt(char, dataSize), code);\n            }\n\n            break;\n\n          case 3:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            code = stream.readNumber();\n            cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(start, dataSize);\n                addHex(start, end, dataSize);\n              } else {\n                start.set(end);\n              }\n\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              code = stream.readNumber();\n              cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n            }\n\n            break;\n\n          case 4:\n            stream.readHex(char, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(char, ucs2DataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(tmp, ucs2DataSize);\n                addHex(char, tmp, ucs2DataSize);\n              }\n\n              incHex(charCode, dataSize);\n              stream.readHexSigned(tmp, dataSize);\n              addHex(charCode, tmp, dataSize);\n              cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n            }\n\n            break;\n\n          case 5:\n            stream.readHex(start, ucs2DataSize);\n            stream.readHexNumber(end, ucs2DataSize);\n            addHex(end, start, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n\n            for (let i = 1; i < subitemsCount; i++) {\n              incHex(end, ucs2DataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(start, ucs2DataSize);\n                addHex(start, end, ucs2DataSize);\n              } else {\n                start.set(end);\n              }\n\n              stream.readHexNumber(end, ucs2DataSize);\n              addHex(end, start, ucs2DataSize);\n              stream.readHex(charCode, dataSize);\n              cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n            }\n\n            break;\n\n          default:\n            throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n        }\n      }\n\n      if (useCMap) {\n        return extend(useCMap);\n      }\n\n      return cMap;\n    }\n\n  }\n\n  return BinaryCMapReader;\n}();\n\nconst CMapFactory = function CMapFactoryClosure() {\n  function strToInt(str) {\n    let a = 0;\n\n    for (let i = 0; i < str.length; i++) {\n      a = a << 8 | str.charCodeAt(i);\n    }\n\n    return a >>> 0;\n  }\n\n  function expectString(obj) {\n    if (typeof obj !== \"string\") {\n      throw new _util.FormatError(\"Malformed CMap: expected string.\");\n    }\n  }\n\n  function expectInt(obj) {\n    if (!Number.isInteger(obj)) {\n      throw new _util.FormatError(\"Malformed CMap: expected int.\");\n    }\n  }\n\n  function parseBfChar(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endbfchar\")) {\n        return;\n      }\n\n      expectString(obj);\n      const src = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      const dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseBfRange(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endbfrange\")) {\n        return;\n      }\n\n      expectString(obj);\n      const low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      const high = strToInt(obj);\n      obj = lexer.getObj();\n\n      if (Number.isInteger(obj) || typeof obj === \"string\") {\n        const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n        cMap.mapBfRange(low, high, dstLow);\n      } else if ((0, _primitives.isCmd)(obj, \"[\")) {\n        obj = lexer.getObj();\n        const array = [];\n\n        while (!(0, _primitives.isCmd)(obj, \"]\") && obj !== _primitives.EOF) {\n          array.push(obj);\n          obj = lexer.getObj();\n        }\n\n        cMap.mapBfRangeToArray(low, high, array);\n      } else {\n        break;\n      }\n    }\n\n    throw new _util.FormatError(\"Invalid bf range.\");\n  }\n\n  function parseCidChar(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endcidchar\")) {\n        return;\n      }\n\n      expectString(obj);\n      const src = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      const dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseCidRange(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endcidrange\")) {\n        return;\n      }\n\n      expectString(obj);\n      const low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      const high = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      const dstLow = obj;\n      cMap.mapCidRange(low, high, dstLow);\n    }\n  }\n\n  function parseCodespaceRange(cMap, lexer) {\n    while (true) {\n      let obj = lexer.getObj();\n\n      if (obj === _primitives.EOF) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, \"endcodespacerange\")) {\n        return;\n      }\n\n      if (typeof obj !== \"string\") {\n        break;\n      }\n\n      const low = strToInt(obj);\n      obj = lexer.getObj();\n\n      if (typeof obj !== \"string\") {\n        break;\n      }\n\n      const high = strToInt(obj);\n      cMap.addCodespaceRange(obj.length, low, high);\n    }\n\n    throw new _util.FormatError(\"Invalid codespace range.\");\n  }\n\n  function parseWMode(cMap, lexer) {\n    const obj = lexer.getObj();\n\n    if (Number.isInteger(obj)) {\n      cMap.vertical = !!obj;\n    }\n  }\n\n  function parseCMapName(cMap, lexer) {\n    const obj = lexer.getObj();\n\n    if (obj instanceof _primitives.Name) {\n      cMap.name = obj.name;\n    }\n  }\n\n  async function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n    let previous, embeddedUseCMap;\n\n    objLoop: while (true) {\n      try {\n        const obj = lexer.getObj();\n\n        if (obj === _primitives.EOF) {\n          break;\n        } else if (obj instanceof _primitives.Name) {\n          if (obj.name === \"WMode\") {\n            parseWMode(cMap, lexer);\n          } else if (obj.name === \"CMapName\") {\n            parseCMapName(cMap, lexer);\n          }\n\n          previous = obj;\n        } else if (obj instanceof _primitives.Cmd) {\n          switch (obj.cmd) {\n            case \"endcmap\":\n              break objLoop;\n\n            case \"usecmap\":\n              if (previous instanceof _primitives.Name) {\n                embeddedUseCMap = previous.name;\n              }\n\n              break;\n\n            case \"begincodespacerange\":\n              parseCodespaceRange(cMap, lexer);\n              break;\n\n            case \"beginbfchar\":\n              parseBfChar(cMap, lexer);\n              break;\n\n            case \"begincidchar\":\n              parseCidChar(cMap, lexer);\n              break;\n\n            case \"beginbfrange\":\n              parseBfRange(cMap, lexer);\n              break;\n\n            case \"begincidrange\":\n              parseCidRange(cMap, lexer);\n              break;\n          }\n        }\n      } catch (ex) {\n        if (ex instanceof _core_utils.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)(\"Invalid cMap data: \" + ex);\n        continue;\n      }\n    }\n\n    if (!useCMap && embeddedUseCMap) {\n      useCMap = embeddedUseCMap;\n    }\n\n    if (useCMap) {\n      return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n    }\n\n    return cMap;\n  }\n\n  async function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n    cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\n\n    if (cMap.numCodespaceRanges === 0) {\n      const useCodespaceRanges = cMap.useCMap.codespaceRanges;\n\n      for (let i = 0; i < useCodespaceRanges.length; i++) {\n        cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n      }\n\n      cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n    }\n\n    cMap.useCMap.forEach(function (key, value) {\n      if (!cMap.contains(key)) {\n        cMap.mapOne(key, cMap.useCMap.lookup(key));\n      }\n    });\n    return cMap;\n  }\n\n  async function createBuiltInCMap(name, fetchBuiltInCMap) {\n    if (name === \"Identity-H\") {\n      return new IdentityCMap(false, 2);\n    } else if (name === \"Identity-V\") {\n      return new IdentityCMap(true, 2);\n    }\n\n    if (!BUILT_IN_CMAPS.includes(name)) {\n      throw new Error(\"Unknown CMap name: \" + name);\n    }\n\n    if (!fetchBuiltInCMap) {\n      throw new Error(\"Built-in CMap parameters are not provided.\");\n    }\n\n    const {\n      cMapData,\n      compressionType\n    } = await fetchBuiltInCMap(name);\n    const cMap = new CMap(true);\n\n    if (compressionType === _util.CMapCompressionType.BINARY) {\n      return new BinaryCMapReader().process(cMapData, cMap, useCMap => {\n        return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n      });\n    }\n\n    if (compressionType === _util.CMapCompressionType.NONE) {\n      const lexer = new _parser.Lexer(new _stream.Stream(cMapData));\n      return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n    }\n\n    throw new Error(\"TODO: Only BINARY/NONE CMap compression is currently supported.\");\n  }\n\n  return {\n    async create(params) {\n      const encoding = params.encoding;\n      const fetchBuiltInCMap = params.fetchBuiltInCMap;\n      const useCMap = params.useCMap;\n\n      if (encoding instanceof _primitives.Name) {\n        return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n      } else if (encoding instanceof _base_stream.BaseStream) {\n        const parsedCMap = await parseCMap(new CMap(), new _parser.Lexer(encoding), fetchBuiltInCMap, useCMap);\n\n        if (parsedCMap.isIdentityCMap) {\n          return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n        }\n\n        return parsedCMap;\n      }\n\n      throw new Error(\"Encoding required.\");\n    }\n\n  };\n}();\n\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Parser = exports.Linearization = exports.Lexer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _ascii_85_stream = __w_pdfjs_require__(18);\n\nvar _ascii_hex_stream = __w_pdfjs_require__(20);\n\nvar _ccitt_stream = __w_pdfjs_require__(21);\n\nvar _flate_stream = __w_pdfjs_require__(23);\n\nvar _jbig2_stream = __w_pdfjs_require__(24);\n\nvar _jpeg_stream = __w_pdfjs_require__(27);\n\nvar _jpx_stream = __w_pdfjs_require__(29);\n\nvar _lzw_stream = __w_pdfjs_require__(31);\n\nvar _stream = __w_pdfjs_require__(10);\n\nvar _predictor_stream = __w_pdfjs_require__(32);\n\nvar _run_length_stream = __w_pdfjs_require__(33);\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n  const bytesLength = bytes.length;\n  let a = 1,\n      b = 0;\n\n  for (let i = 0; i < bytesLength; ++i) {\n    a += bytes[i] & 0xff;\n    b += a;\n  }\n\n  return b % 65521 << 16 | a % 65521;\n}\n\nclass Parser {\n  constructor({\n    lexer,\n    xref,\n    allowStreams = false,\n    recoveryMode = false\n  }) {\n    this.lexer = lexer;\n    this.xref = xref;\n    this.allowStreams = allowStreams;\n    this.recoveryMode = recoveryMode;\n    this.imageCache = Object.create(null);\n    this.refill();\n  }\n\n  refill() {\n    this.buf1 = this.lexer.getObj();\n    this.buf2 = this.lexer.getObj();\n  }\n\n  shift() {\n    if (this.buf2 instanceof _primitives.Cmd && this.buf2.cmd === \"ID\") {\n      this.buf1 = this.buf2;\n      this.buf2 = null;\n    } else {\n      this.buf1 = this.buf2;\n      this.buf2 = this.lexer.getObj();\n    }\n  }\n\n  tryShift() {\n    try {\n      this.shift();\n      return true;\n    } catch (e) {\n      if (e instanceof _core_utils.MissingDataException) {\n        throw e;\n      }\n\n      return false;\n    }\n  }\n\n  getObj(cipherTransform = null) {\n    const buf1 = this.buf1;\n    this.shift();\n\n    if (buf1 instanceof _primitives.Cmd) {\n      switch (buf1.cmd) {\n        case \"BI\":\n          return this.makeInlineImage(cipherTransform);\n\n        case \"[\":\n          const array = [];\n\n          while (!(0, _primitives.isCmd)(this.buf1, \"]\") && this.buf1 !== _primitives.EOF) {\n            array.push(this.getObj(cipherTransform));\n          }\n\n          if (this.buf1 === _primitives.EOF) {\n            if (this.recoveryMode) {\n              return array;\n            }\n\n            throw new _core_utils.ParserEOFException(\"End of file inside array.\");\n          }\n\n          this.shift();\n          return array;\n\n        case \"<<\":\n          const dict = new _primitives.Dict(this.xref);\n\n          while (!(0, _primitives.isCmd)(this.buf1, \">>\") && this.buf1 !== _primitives.EOF) {\n            if (!(this.buf1 instanceof _primitives.Name)) {\n              (0, _util.info)(\"Malformed dictionary: key must be a name object\");\n              this.shift();\n              continue;\n            }\n\n            const key = this.buf1.name;\n            this.shift();\n\n            if (this.buf1 === _primitives.EOF) {\n              break;\n            }\n\n            dict.set(key, this.getObj(cipherTransform));\n          }\n\n          if (this.buf1 === _primitives.EOF) {\n            if (this.recoveryMode) {\n              return dict;\n            }\n\n            throw new _core_utils.ParserEOFException(\"End of file inside dictionary.\");\n          }\n\n          if ((0, _primitives.isCmd)(this.buf2, \"stream\")) {\n            return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n          }\n\n          this.shift();\n          return dict;\n\n        default:\n          return buf1;\n      }\n    }\n\n    if (Number.isInteger(buf1)) {\n      if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, \"R\")) {\n        const ref = _primitives.Ref.get(buf1, this.buf1);\n\n        this.shift();\n        this.shift();\n        return ref;\n      }\n\n      return buf1;\n    }\n\n    if (typeof buf1 === \"string\") {\n      if (cipherTransform) {\n        return cipherTransform.decryptString(buf1);\n      }\n\n      return buf1;\n    }\n\n    return buf1;\n  }\n\n  findDefaultInlineStreamEnd(stream) {\n    const E = 0x45,\n          I = 0x49,\n          SPACE = 0x20,\n          LF = 0xa,\n          CR = 0xd,\n          NUL = 0x0;\n    const lexer = this.lexer,\n          startPos = stream.pos,\n          n = 10;\n    let state = 0,\n        ch,\n        maybeEIPos;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else {\n        (0, _util.assert)(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n\n        if (ch === SPACE || ch === LF || ch === CR) {\n          maybeEIPos = stream.pos;\n          const followingBytes = stream.peekBytes(n);\n\n          for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n            ch = followingBytes[i];\n\n            if (ch === NUL && followingBytes[i + 1] !== NUL) {\n              continue;\n            }\n\n            if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n              state = 0;\n              break;\n            }\n          }\n\n          if (state !== 2) {\n            continue;\n          }\n\n          if (lexer.knownCommands) {\n            const nextObj = lexer.peekObj();\n\n            if (nextObj instanceof _primitives.Cmd && !lexer.knownCommands[nextObj.cmd]) {\n              state = 0;\n            }\n          } else {\n            (0, _util.warn)(\"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\");\n          }\n\n          if (state === 2) {\n            break;\n          }\n        } else {\n          state = 0;\n        }\n      }\n    }\n\n    if (ch === -1) {\n      (0, _util.warn)(\"findDefaultInlineStreamEnd: \" + \"Reached the end of the stream without finding a valid EI marker\");\n\n      if (maybeEIPos) {\n        (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n        stream.skip(-(stream.pos - maybeEIPos));\n      }\n    }\n\n    let endOffset = 4;\n    stream.skip(-endOffset);\n    ch = stream.peekByte();\n    stream.skip(endOffset);\n\n    if (!(0, _core_utils.isWhiteSpace)(ch)) {\n      endOffset--;\n    }\n\n    return stream.pos - endOffset - startPos;\n  }\n\n  findDCTDecodeInlineStreamEnd(stream) {\n    const startPos = stream.pos;\n    let foundEOI = false,\n        b,\n        markerLength;\n\n    while ((b = stream.getByte()) !== -1) {\n      if (b !== 0xff) {\n        continue;\n      }\n\n      switch (stream.getByte()) {\n        case 0x00:\n          break;\n\n        case 0xff:\n          stream.skip(-1);\n          break;\n\n        case 0xd9:\n          foundEOI = true;\n          break;\n\n        case 0xc0:\n        case 0xc1:\n        case 0xc2:\n        case 0xc3:\n        case 0xc5:\n        case 0xc6:\n        case 0xc7:\n        case 0xc9:\n        case 0xca:\n        case 0xcb:\n        case 0xcd:\n        case 0xce:\n        case 0xcf:\n        case 0xc4:\n        case 0xcc:\n        case 0xda:\n        case 0xdb:\n        case 0xdc:\n        case 0xdd:\n        case 0xde:\n        case 0xdf:\n        case 0xe0:\n        case 0xe1:\n        case 0xe2:\n        case 0xe3:\n        case 0xe4:\n        case 0xe5:\n        case 0xe6:\n        case 0xe7:\n        case 0xe8:\n        case 0xe9:\n        case 0xea:\n        case 0xeb:\n        case 0xec:\n        case 0xed:\n        case 0xee:\n        case 0xef:\n        case 0xfe:\n          markerLength = stream.getUint16();\n\n          if (markerLength > 2) {\n            stream.skip(markerLength - 2);\n          } else {\n            stream.skip(-2);\n          }\n\n          break;\n      }\n\n      if (foundEOI) {\n        break;\n      }\n    }\n\n    const length = stream.pos - startPos;\n\n    if (b === -1) {\n      (0, _util.warn)(\"Inline DCTDecode image stream: \" + \"EOI marker not found, searching for /EI/ instead.\");\n      stream.skip(-length);\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  findASCII85DecodeInlineStreamEnd(stream) {\n    const TILDE = 0x7e,\n          GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === TILDE) {\n        const tildePos = stream.pos;\n        ch = stream.peekByte();\n\n        while ((0, _core_utils.isWhiteSpace)(ch)) {\n          stream.skip();\n          ch = stream.peekByte();\n        }\n\n        if (ch === GT) {\n          stream.skip();\n          break;\n        }\n\n        if (stream.pos > tildePos) {\n          const maybeEI = stream.peekBytes(2);\n\n          if (maybeEI[0] === 0x45 && maybeEI[1] === 0x49) {\n            break;\n          }\n        }\n      }\n    }\n\n    const length = stream.pos - startPos;\n\n    if (ch === -1) {\n      (0, _util.warn)(\"Inline ASCII85Decode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n      stream.skip(-length);\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  findASCIIHexDecodeInlineStreamEnd(stream) {\n    const GT = 0x3e;\n    const startPos = stream.pos;\n    let ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === GT) {\n        break;\n      }\n    }\n\n    const length = stream.pos - startPos;\n\n    if (ch === -1) {\n      (0, _util.warn)(\"Inline ASCIIHexDecode image stream: \" + \"EOD marker not found, searching for /EI/ instead.\");\n      stream.skip(-length);\n      return this.findDefaultInlineStreamEnd(stream);\n    }\n\n    this.inlineStreamSkipEI(stream);\n    return length;\n  }\n\n  inlineStreamSkipEI(stream) {\n    const E = 0x45,\n          I = 0x49;\n    let state = 0,\n        ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (state === 0) {\n        state = ch === E ? 1 : 0;\n      } else if (state === 1) {\n        state = ch === I ? 2 : 0;\n      } else if (state === 2) {\n        break;\n      }\n    }\n  }\n\n  makeInlineImage(cipherTransform) {\n    const lexer = this.lexer;\n    const stream = lexer.stream;\n    const dict = new _primitives.Dict(this.xref);\n    let dictLength;\n\n    while (!(0, _primitives.isCmd)(this.buf1, \"ID\") && this.buf1 !== _primitives.EOF) {\n      if (!(this.buf1 instanceof _primitives.Name)) {\n        throw new _util.FormatError(\"Dictionary key must be a name object\");\n      }\n\n      const key = this.buf1.name;\n      this.shift();\n\n      if (this.buf1 === _primitives.EOF) {\n        break;\n      }\n\n      dict.set(key, this.getObj(cipherTransform));\n    }\n\n    if (lexer.beginInlineImagePos !== -1) {\n      dictLength = stream.pos - lexer.beginInlineImagePos;\n    }\n\n    const filter = dict.get(\"F\", \"Filter\");\n    let filterName;\n\n    if (filter instanceof _primitives.Name) {\n      filterName = filter.name;\n    } else if (Array.isArray(filter)) {\n      const filterZero = this.xref.fetchIfRef(filter[0]);\n\n      if (filterZero instanceof _primitives.Name) {\n        filterName = filterZero.name;\n      }\n    }\n\n    const startPos = stream.pos;\n    let length;\n\n    switch (filterName) {\n      case \"DCT\":\n      case \"DCTDecode\":\n        length = this.findDCTDecodeInlineStreamEnd(stream);\n        break;\n\n      case \"A85\":\n      case \"ASCII85Decode\":\n        length = this.findASCII85DecodeInlineStreamEnd(stream);\n        break;\n\n      case \"AHx\":\n      case \"ASCIIHexDecode\":\n        length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n        break;\n\n      default:\n        length = this.findDefaultInlineStreamEnd(stream);\n    }\n\n    let imageStream = stream.makeSubStream(startPos, length, dict);\n    let cacheKey;\n\n    if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n      const imageBytes = imageStream.getBytes();\n      imageStream.reset();\n      const initialStreamPos = stream.pos;\n      stream.pos = lexer.beginInlineImagePos;\n      const dictBytes = stream.getBytes(dictLength);\n      stream.pos = initialStreamPos;\n      cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n      const cacheEntry = this.imageCache[cacheKey];\n\n      if (cacheEntry !== undefined) {\n        this.buf2 = _primitives.Cmd.get(\"EI\");\n        this.shift();\n        cacheEntry.reset();\n        return cacheEntry;\n      }\n    }\n\n    if (cipherTransform) {\n      imageStream = cipherTransform.createStream(imageStream, length);\n    }\n\n    imageStream = this.filter(imageStream, dict, length);\n    imageStream.dict = dict;\n\n    if (cacheKey !== undefined) {\n      imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n      this.imageCache[cacheKey] = imageStream;\n    }\n\n    this.buf2 = _primitives.Cmd.get(\"EI\");\n    this.shift();\n    return imageStream;\n  }\n\n  _findStreamLength(startPos, signature) {\n    const {\n      stream\n    } = this.lexer;\n    stream.pos = startPos;\n    const SCAN_BLOCK_LENGTH = 2048;\n    const signatureLength = signature.length;\n\n    while (stream.pos < stream.end) {\n      const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n      const scanLength = scanBytes.length - signatureLength;\n\n      if (scanLength <= 0) {\n        break;\n      }\n\n      let pos = 0;\n\n      while (pos < scanLength) {\n        let j = 0;\n\n        while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n          j++;\n        }\n\n        if (j >= signatureLength) {\n          stream.pos += pos;\n          return stream.pos - startPos;\n        }\n\n        pos++;\n      }\n\n      stream.pos += scanLength;\n    }\n\n    return -1;\n  }\n\n  makeStream(dict, cipherTransform) {\n    const lexer = this.lexer;\n    let stream = lexer.stream;\n    lexer.skipToNextLine();\n    const startPos = stream.pos - 1;\n    let length = dict.get(\"Length\");\n\n    if (!Number.isInteger(length)) {\n      (0, _util.info)(`Bad length \"${length && length.toString()}\" in stream.`);\n      length = 0;\n    }\n\n    stream.pos = startPos + length;\n    lexer.nextChar();\n\n    if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, \"endstream\")) {\n      this.shift();\n    } else {\n      const ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d]);\n\n      let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n\n      if (actualLength < 0) {\n        const MAX_TRUNCATION = 1;\n\n        for (let i = 1; i <= MAX_TRUNCATION; i++) {\n          const end = ENDSTREAM_SIGNATURE.length - i;\n          const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n          const maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE);\n\n          if (maybeLength >= 0) {\n            const lastByte = stream.peekBytes(end + 1)[end];\n\n            if (!(0, _core_utils.isWhiteSpace)(lastByte)) {\n              break;\n            }\n\n            (0, _util.info)(`Found \"${(0, _util.bytesToString)(TRUNCATED_SIGNATURE)}\" when ` + \"searching for endstream command.\");\n            actualLength = maybeLength;\n            break;\n          }\n        }\n\n        if (actualLength < 0) {\n          throw new _util.FormatError(\"Missing endstream command.\");\n        }\n      }\n\n      length = actualLength;\n      lexer.nextChar();\n      this.shift();\n      this.shift();\n    }\n\n    this.shift();\n    stream = stream.makeSubStream(startPos, length, dict);\n\n    if (cipherTransform) {\n      stream = cipherTransform.createStream(stream, length);\n    }\n\n    stream = this.filter(stream, dict, length);\n    stream.dict = dict;\n    return stream;\n  }\n\n  filter(stream, dict, length) {\n    let filter = dict.get(\"F\", \"Filter\");\n    let params = dict.get(\"DP\", \"DecodeParms\");\n\n    if (filter instanceof _primitives.Name) {\n      if (Array.isArray(params)) {\n        (0, _util.warn)(\"/DecodeParms should not be an Array, when /Filter is a Name.\");\n      }\n\n      return this.makeFilter(stream, filter.name, length, params);\n    }\n\n    let maybeLength = length;\n\n    if (Array.isArray(filter)) {\n      const filterArray = filter;\n      const paramsArray = params;\n\n      for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n        filter = this.xref.fetchIfRef(filterArray[i]);\n\n        if (!(filter instanceof _primitives.Name)) {\n          throw new _util.FormatError(`Bad filter name \"${filter}\"`);\n        }\n\n        params = null;\n\n        if (Array.isArray(paramsArray) && i in paramsArray) {\n          params = this.xref.fetchIfRef(paramsArray[i]);\n        }\n\n        stream = this.makeFilter(stream, filter.name, maybeLength, params);\n        maybeLength = null;\n      }\n    }\n\n    return stream;\n  }\n\n  makeFilter(stream, name, maybeLength, params) {\n    if (maybeLength === 0) {\n      (0, _util.warn)(`Empty \"${name}\" stream.`);\n      return new _stream.NullStream();\n    }\n\n    const xrefStats = this.xref.stats;\n\n    try {\n      switch (name) {\n        case \"Fl\":\n        case \"FlateDecode\":\n          xrefStats.addStreamType(_util.StreamType.FLATE);\n\n          if (params) {\n            return new _predictor_stream.PredictorStream(new _flate_stream.FlateStream(stream, maybeLength), maybeLength, params);\n          }\n\n          return new _flate_stream.FlateStream(stream, maybeLength);\n\n        case \"LZW\":\n        case \"LZWDecode\":\n          xrefStats.addStreamType(_util.StreamType.LZW);\n          let earlyChange = 1;\n\n          if (params) {\n            if (params.has(\"EarlyChange\")) {\n              earlyChange = params.get(\"EarlyChange\");\n            }\n\n            return new _predictor_stream.PredictorStream(new _lzw_stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n          }\n\n          return new _lzw_stream.LZWStream(stream, maybeLength, earlyChange);\n\n        case \"DCT\":\n        case \"DCTDecode\":\n          xrefStats.addStreamType(_util.StreamType.DCT);\n          return new _jpeg_stream.JpegStream(stream, maybeLength, params);\n\n        case \"JPX\":\n        case \"JPXDecode\":\n          xrefStats.addStreamType(_util.StreamType.JPX);\n          return new _jpx_stream.JpxStream(stream, maybeLength, params);\n\n        case \"A85\":\n        case \"ASCII85Decode\":\n          xrefStats.addStreamType(_util.StreamType.A85);\n          return new _ascii_85_stream.Ascii85Stream(stream, maybeLength);\n\n        case \"AHx\":\n        case \"ASCIIHexDecode\":\n          xrefStats.addStreamType(_util.StreamType.AHX);\n          return new _ascii_hex_stream.AsciiHexStream(stream, maybeLength);\n\n        case \"CCF\":\n        case \"CCITTFaxDecode\":\n          xrefStats.addStreamType(_util.StreamType.CCF);\n          return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params);\n\n        case \"RL\":\n        case \"RunLengthDecode\":\n          xrefStats.addStreamType(_util.StreamType.RLX);\n          return new _run_length_stream.RunLengthStream(stream, maybeLength);\n\n        case \"JBIG2Decode\":\n          xrefStats.addStreamType(_util.StreamType.JBIG);\n          return new _jbig2_stream.Jbig2Stream(stream, maybeLength, params);\n      }\n\n      (0, _util.warn)(`Filter \"${name}\" is not supported.`);\n      return stream;\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`Invalid stream: \"${ex}\"`);\n      return new _stream.NullStream();\n    }\n  }\n\n}\n\nexports.Parser = Parser;\nconst 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];\n\nfunction toHexDigit(ch) {\n  if (ch >= 0x30 && ch <= 0x39) {\n    return ch & 0x0f;\n  }\n\n  if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n    return (ch & 0x0f) + 9;\n  }\n\n  return -1;\n}\n\nclass Lexer {\n  constructor(stream, knownCommands = null) {\n    this.stream = stream;\n    this.nextChar();\n    this.strBuf = [];\n    this.knownCommands = knownCommands;\n    this._hexStringNumWarn = 0;\n    this.beginInlineImagePos = -1;\n  }\n\n  nextChar() {\n    return this.currentChar = this.stream.getByte();\n  }\n\n  peekChar() {\n    return this.stream.peekByte();\n  }\n\n  getNumber() {\n    let ch = this.currentChar;\n    let eNotation = false;\n    let divideBy = 0;\n    let sign = 0;\n\n    if (ch === 0x2d) {\n      sign = -1;\n      ch = this.nextChar();\n\n      if (ch === 0x2d) {\n        ch = this.nextChar();\n      }\n    } else if (ch === 0x2b) {\n      sign = 1;\n      ch = this.nextChar();\n    }\n\n    if (ch === 0x0a || ch === 0x0d) {\n      do {\n        ch = this.nextChar();\n      } while (ch === 0x0a || ch === 0x0d);\n    }\n\n    if (ch === 0x2e) {\n      divideBy = 10;\n      ch = this.nextChar();\n    }\n\n    if (ch < 0x30 || ch > 0x39) {\n      if ((0, _core_utils.isWhiteSpace)(ch) || ch === -1) {\n        if (divideBy === 10 && sign === 0) {\n          (0, _util.warn)(\"Lexer.getNumber - treating a single decimal point as zero.\");\n          return 0;\n        }\n\n        if (divideBy === 0 && sign === -1) {\n          (0, _util.warn)(\"Lexer.getNumber - treating a single minus sign as zero.\");\n          return 0;\n        }\n      }\n\n      throw new _util.FormatError(`Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`);\n    }\n\n    sign = sign || 1;\n    let baseValue = ch - 0x30;\n    let powerValue = 0;\n    let powerValueSign = 1;\n\n    while ((ch = this.nextChar()) >= 0) {\n      if (ch >= 0x30 && ch <= 0x39) {\n        const currentDigit = ch - 0x30;\n\n        if (eNotation) {\n          powerValue = powerValue * 10 + currentDigit;\n        } else {\n          if (divideBy !== 0) {\n            divideBy *= 10;\n          }\n\n          baseValue = baseValue * 10 + currentDigit;\n        }\n      } else if (ch === 0x2e) {\n        if (divideBy === 0) {\n          divideBy = 1;\n        } else {\n          break;\n        }\n      } else if (ch === 0x2d) {\n        (0, _util.warn)(\"Badly formatted number: minus sign in the middle\");\n      } else if (ch === 0x45 || ch === 0x65) {\n        ch = this.peekChar();\n\n        if (ch === 0x2b || ch === 0x2d) {\n          powerValueSign = ch === 0x2d ? -1 : 1;\n          this.nextChar();\n        } else if (ch < 0x30 || ch > 0x39) {\n          break;\n        }\n\n        eNotation = true;\n      } else {\n        break;\n      }\n    }\n\n    if (divideBy !== 0) {\n      baseValue /= divideBy;\n    }\n\n    if (eNotation) {\n      baseValue *= 10 ** (powerValueSign * powerValue);\n    }\n\n    return sign * baseValue;\n  }\n\n  getString() {\n    let numParen = 1;\n    let done = false;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    let ch = this.nextChar();\n\n    while (true) {\n      let charBuffered = false;\n\n      switch (ch | 0) {\n        case -1:\n          (0, _util.warn)(\"Unterminated string\");\n          done = true;\n          break;\n\n        case 0x28:\n          ++numParen;\n          strBuf.push(\"(\");\n          break;\n\n        case 0x29:\n          if (--numParen === 0) {\n            this.nextChar();\n            done = true;\n          } else {\n            strBuf.push(\")\");\n          }\n\n          break;\n\n        case 0x5c:\n          ch = this.nextChar();\n\n          switch (ch) {\n            case -1:\n              (0, _util.warn)(\"Unterminated string\");\n              done = true;\n              break;\n\n            case 0x6e:\n              strBuf.push(\"\\n\");\n              break;\n\n            case 0x72:\n              strBuf.push(\"\\r\");\n              break;\n\n            case 0x74:\n              strBuf.push(\"\\t\");\n              break;\n\n            case 0x62:\n              strBuf.push(\"\\b\");\n              break;\n\n            case 0x66:\n              strBuf.push(\"\\f\");\n              break;\n\n            case 0x5c:\n            case 0x28:\n            case 0x29:\n              strBuf.push(String.fromCharCode(ch));\n              break;\n\n            case 0x30:\n            case 0x31:\n            case 0x32:\n            case 0x33:\n            case 0x34:\n            case 0x35:\n            case 0x36:\n            case 0x37:\n              let x = ch & 0x0f;\n              ch = this.nextChar();\n              charBuffered = true;\n\n              if (ch >= 0x30 && ch <= 0x37) {\n                x = (x << 3) + (ch & 0x0f);\n                ch = this.nextChar();\n\n                if (ch >= 0x30 && ch <= 0x37) {\n                  charBuffered = false;\n                  x = (x << 3) + (ch & 0x0f);\n                }\n              }\n\n              strBuf.push(String.fromCharCode(x));\n              break;\n\n            case 0x0d:\n              if (this.peekChar() === 0x0a) {\n                this.nextChar();\n              }\n\n              break;\n\n            case 0x0a:\n              break;\n\n            default:\n              strBuf.push(String.fromCharCode(ch));\n              break;\n          }\n\n          break;\n\n        default:\n          strBuf.push(String.fromCharCode(ch));\n          break;\n      }\n\n      if (done) {\n        break;\n      }\n\n      if (!charBuffered) {\n        ch = this.nextChar();\n      }\n    }\n\n    return strBuf.join(\"\");\n  }\n\n  getName() {\n    let ch, previousCh;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      if (ch === 0x23) {\n        ch = this.nextChar();\n\n        if (specialChars[ch]) {\n          (0, _util.warn)(\"Lexer_getName: \" + \"NUMBER SIGN (#) should be followed by a hexadecimal number.\");\n          strBuf.push(\"#\");\n          break;\n        }\n\n        const x = toHexDigit(ch);\n\n        if (x !== -1) {\n          previousCh = ch;\n          ch = this.nextChar();\n          const x2 = toHexDigit(ch);\n\n          if (x2 === -1) {\n            (0, _util.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` + \"in hexadecimal number.\");\n            strBuf.push(\"#\", String.fromCharCode(previousCh));\n\n            if (specialChars[ch]) {\n              break;\n            }\n\n            strBuf.push(String.fromCharCode(ch));\n            continue;\n          }\n\n          strBuf.push(String.fromCharCode(x << 4 | x2));\n        } else {\n          strBuf.push(\"#\", String.fromCharCode(ch));\n        }\n      } else {\n        strBuf.push(String.fromCharCode(ch));\n      }\n    }\n\n    if (strBuf.length > 127) {\n      (0, _util.warn)(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n    }\n\n    return _primitives.Name.get(strBuf.join(\"\"));\n  }\n\n  _hexStringWarn(ch) {\n    const MAX_HEX_STRING_NUM_WARN = 5;\n\n    if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n      (0, _util.warn)(\"getHexString - ignoring additional invalid characters.\");\n      return;\n    }\n\n    if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n      return;\n    }\n\n    (0, _util.warn)(`getHexString - ignoring invalid character: ${ch}`);\n  }\n\n  getHexString() {\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    let ch = this.currentChar;\n    let isFirstHex = true;\n    let firstDigit, secondDigit;\n    this._hexStringNumWarn = 0;\n\n    while (true) {\n      if (ch < 0) {\n        (0, _util.warn)(\"Unterminated hex string\");\n        break;\n      } else if (ch === 0x3e) {\n        this.nextChar();\n        break;\n      } else if (specialChars[ch] === 1) {\n        ch = this.nextChar();\n        continue;\n      } else {\n        if (isFirstHex) {\n          firstDigit = toHexDigit(ch);\n\n          if (firstDigit === -1) {\n            this._hexStringWarn(ch);\n\n            ch = this.nextChar();\n            continue;\n          }\n        } else {\n          secondDigit = toHexDigit(ch);\n\n          if (secondDigit === -1) {\n            this._hexStringWarn(ch);\n\n            ch = this.nextChar();\n            continue;\n          }\n\n          strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n        }\n\n        isFirstHex = !isFirstHex;\n        ch = this.nextChar();\n      }\n    }\n\n    return strBuf.join(\"\");\n  }\n\n  getObj() {\n    let comment = false;\n    let ch = this.currentChar;\n\n    while (true) {\n      if (ch < 0) {\n        return _primitives.EOF;\n      }\n\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === 0x25) {\n        comment = true;\n      } else if (specialChars[ch] !== 1) {\n        break;\n      }\n\n      ch = this.nextChar();\n    }\n\n    switch (ch | 0) {\n      case 0x30:\n      case 0x31:\n      case 0x32:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n        return this.getNumber();\n\n      case 0x28:\n        return this.getString();\n\n      case 0x2f:\n        return this.getName();\n\n      case 0x5b:\n        this.nextChar();\n        return _primitives.Cmd.get(\"[\");\n\n      case 0x5d:\n        this.nextChar();\n        return _primitives.Cmd.get(\"]\");\n\n      case 0x3c:\n        ch = this.nextChar();\n\n        if (ch === 0x3c) {\n          this.nextChar();\n          return _primitives.Cmd.get(\"<<\");\n        }\n\n        return this.getHexString();\n\n      case 0x3e:\n        ch = this.nextChar();\n\n        if (ch === 0x3e) {\n          this.nextChar();\n          return _primitives.Cmd.get(\">>\");\n        }\n\n        return _primitives.Cmd.get(\">\");\n\n      case 0x7b:\n        this.nextChar();\n        return _primitives.Cmd.get(\"{\");\n\n      case 0x7d:\n        this.nextChar();\n        return _primitives.Cmd.get(\"}\");\n\n      case 0x29:\n        this.nextChar();\n        throw new _util.FormatError(`Illegal character: ${ch}`);\n    }\n\n    let str = String.fromCharCode(ch);\n\n    if (ch < 0x20 || ch > 0x7f) {\n      const nextCh = this.peekChar();\n\n      if (nextCh >= 0x20 && nextCh <= 0x7f) {\n        this.nextChar();\n        return _primitives.Cmd.get(str);\n      }\n    }\n\n    const knownCommands = this.knownCommands;\n    let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n\n    while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n      const possibleCommand = str + String.fromCharCode(ch);\n\n      if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n        break;\n      }\n\n      if (str.length === 128) {\n        throw new _util.FormatError(`Command token too long: ${str.length}`);\n      }\n\n      str = possibleCommand;\n      knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n    }\n\n    if (str === \"true\") {\n      return true;\n    }\n\n    if (str === \"false\") {\n      return false;\n    }\n\n    if (str === \"null\") {\n      return null;\n    }\n\n    if (str === \"BI\") {\n      this.beginInlineImagePos = this.stream.pos;\n    }\n\n    return _primitives.Cmd.get(str);\n  }\n\n  peekObj() {\n    const streamPos = this.stream.pos,\n          currentChar = this.currentChar,\n          beginInlineImagePos = this.beginInlineImagePos;\n    let nextObj;\n\n    try {\n      nextObj = this.getObj();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`peekObj: ${ex}`);\n    }\n\n    this.stream.pos = streamPos;\n    this.currentChar = currentChar;\n    this.beginInlineImagePos = beginInlineImagePos;\n    return nextObj;\n  }\n\n  skipToNextLine() {\n    let ch = this.currentChar;\n\n    while (ch >= 0) {\n      if (ch === 0x0d) {\n        ch = this.nextChar();\n\n        if (ch === 0x0a) {\n          this.nextChar();\n        }\n\n        break;\n      } else if (ch === 0x0a) {\n        this.nextChar();\n        break;\n      }\n\n      ch = this.nextChar();\n    }\n  }\n\n}\n\nexports.Lexer = Lexer;\n\nclass Linearization {\n  static create(stream) {\n    function getInt(linDict, name, allowZeroValue = false) {\n      const obj = linDict.get(name);\n\n      if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n        return obj;\n      }\n\n      throw new Error(`The \"${name}\" parameter in the linearization ` + \"dictionary is invalid.\");\n    }\n\n    function getHints(linDict) {\n      const hints = linDict.get(\"H\");\n      let hintsLength;\n\n      if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n        for (let index = 0; index < hintsLength; index++) {\n          const hint = hints[index];\n\n          if (!(Number.isInteger(hint) && hint > 0)) {\n            throw new Error(`Hint (${index}) in the linearization dictionary is invalid.`);\n          }\n        }\n\n        return hints;\n      }\n\n      throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n    }\n\n    const parser = new Parser({\n      lexer: new Lexer(stream),\n      xref: null\n    });\n    const obj1 = parser.getObj();\n    const obj2 = parser.getObj();\n    const obj3 = parser.getObj();\n    const linDict = parser.getObj();\n    let obj, length;\n\n    if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, \"obj\") && linDict instanceof _primitives.Dict && typeof (obj = linDict.get(\"Linearized\")) === \"number\" && obj > 0)) {\n      return null;\n    } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n      throw new Error('The \"L\" parameter in the linearization dictionary ' + \"does not equal the stream length.\");\n    }\n\n    return {\n      length,\n      hints: getHints(linDict),\n      objectNumberFirst: getInt(linDict, \"O\"),\n      endFirst: getInt(linDict, \"E\"),\n      numPages: getInt(linDict, \"N\"),\n      mainXRefEntriesOffset: getInt(linDict, \"T\"),\n      pageFirst: linDict.has(\"P\") ? getInt(linDict, \"P\", true) : 0\n    };\n  }\n\n}\n\nexports.Linearization = Linearization;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Ascii85Stream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nclass Ascii85Stream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength) {\n    if (maybeLength) {\n      maybeLength *= 0.8;\n    }\n\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    this.input = new Uint8Array(5);\n  }\n\n  readBlock() {\n    const TILDA_CHAR = 0x7e;\n    const Z_LOWER_CHAR = 0x7a;\n    const EOF = -1;\n    const str = this.str;\n    let c = str.getByte();\n\n    while ((0, _core_utils.isWhiteSpace)(c)) {\n      c = str.getByte();\n    }\n\n    if (c === EOF || c === TILDA_CHAR) {\n      this.eof = true;\n      return;\n    }\n\n    const bufferLength = this.bufferLength;\n    let buffer, i;\n\n    if (c === Z_LOWER_CHAR) {\n      buffer = this.ensureBuffer(bufferLength + 4);\n\n      for (i = 0; i < 4; ++i) {\n        buffer[bufferLength + i] = 0;\n      }\n\n      this.bufferLength += 4;\n    } else {\n      const input = this.input;\n      input[0] = c;\n\n      for (i = 1; i < 5; ++i) {\n        c = str.getByte();\n\n        while ((0, _core_utils.isWhiteSpace)(c)) {\n          c = str.getByte();\n        }\n\n        input[i] = c;\n\n        if (c === EOF || c === TILDA_CHAR) {\n          break;\n        }\n      }\n\n      buffer = this.ensureBuffer(bufferLength + i - 1);\n      this.bufferLength += i - 1;\n\n      if (i < 5) {\n        for (; i < 5; ++i) {\n          input[i] = 0x21 + 84;\n        }\n\n        this.eof = true;\n      }\n\n      let t = 0;\n\n      for (i = 0; i < 5; ++i) {\n        t = t * 85 + (input[i] - 0x21);\n      }\n\n      for (i = 3; i >= 0; --i) {\n        buffer[bufferLength + i] = t & 0xff;\n        t >>= 8;\n      }\n    }\n  }\n\n}\n\nexports.Ascii85Stream = Ascii85Stream;\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.StreamsSequenceStream = exports.DecodeStream = void 0;\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _stream = __w_pdfjs_require__(10);\n\nconst emptyBuffer = new Uint8Array(0);\n\nclass DecodeStream extends _base_stream.BaseStream {\n  constructor(maybeMinBufferLength) {\n    super();\n    this._rawMinBufferLength = maybeMinBufferLength || 0;\n    this.pos = 0;\n    this.bufferLength = 0;\n    this.eof = false;\n    this.buffer = emptyBuffer;\n    this.minBufferLength = 512;\n\n    if (maybeMinBufferLength) {\n      while (this.minBufferLength < maybeMinBufferLength) {\n        this.minBufferLength *= 2;\n      }\n    }\n  }\n\n  get isEmpty() {\n    while (!this.eof && this.bufferLength === 0) {\n      this.readBlock();\n    }\n\n    return this.bufferLength === 0;\n  }\n\n  ensureBuffer(requested) {\n    const buffer = this.buffer;\n\n    if (requested <= buffer.byteLength) {\n      return buffer;\n    }\n\n    let size = this.minBufferLength;\n\n    while (size < requested) {\n      size *= 2;\n    }\n\n    const buffer2 = new Uint8Array(size);\n    buffer2.set(buffer);\n    return this.buffer = buffer2;\n  }\n\n  getByte() {\n    const pos = this.pos;\n\n    while (this.bufferLength <= pos) {\n      if (this.eof) {\n        return -1;\n      }\n\n      this.readBlock();\n    }\n\n    return this.buffer[this.pos++];\n  }\n\n  getBytes(length) {\n    const pos = this.pos;\n    let end;\n\n    if (length) {\n      this.ensureBuffer(pos + length);\n      end = pos + length;\n\n      while (!this.eof && this.bufferLength < end) {\n        this.readBlock();\n      }\n\n      const bufEnd = this.bufferLength;\n\n      if (end > bufEnd) {\n        end = bufEnd;\n      }\n    } else {\n      while (!this.eof) {\n        this.readBlock();\n      }\n\n      end = this.bufferLength;\n    }\n\n    this.pos = end;\n    return this.buffer.subarray(pos, end);\n  }\n\n  reset() {\n    this.pos = 0;\n  }\n\n  makeSubStream(start, length, dict = null) {\n    if (length === undefined) {\n      while (!this.eof) {\n        this.readBlock();\n      }\n    } else {\n      const end = start + length;\n\n      while (this.bufferLength <= end && !this.eof) {\n        this.readBlock();\n      }\n    }\n\n    return new _stream.Stream(this.buffer, start, length, dict);\n  }\n\n  getBaseStreams() {\n    return this.str ? this.str.getBaseStreams() : null;\n  }\n\n}\n\nexports.DecodeStream = DecodeStream;\n\nclass StreamsSequenceStream extends DecodeStream {\n  constructor(streams, onError = null) {\n    let maybeLength = 0;\n\n    for (const stream of streams) {\n      maybeLength += stream instanceof DecodeStream ? stream._rawMinBufferLength : stream.length;\n    }\n\n    super(maybeLength);\n    this.streams = streams;\n    this._onError = onError;\n  }\n\n  readBlock() {\n    const streams = this.streams;\n\n    if (streams.length === 0) {\n      this.eof = true;\n      return;\n    }\n\n    const stream = streams.shift();\n    let chunk;\n\n    try {\n      chunk = stream.getBytes();\n    } catch (reason) {\n      if (this._onError) {\n        this._onError(reason, stream.dict && stream.dict.objId);\n\n        return;\n      }\n\n      throw reason;\n    }\n\n    const bufferLength = this.bufferLength;\n    const newLength = bufferLength + chunk.length;\n    const buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  }\n\n  getBaseStreams() {\n    const baseStreamsBuf = [];\n\n    for (const stream of this.streams) {\n      const baseStreams = stream.getBaseStreams();\n\n      if (baseStreams) {\n        baseStreamsBuf.push(...baseStreams);\n      }\n    }\n\n    return baseStreamsBuf.length > 0 ? baseStreamsBuf : null;\n  }\n\n}\n\nexports.StreamsSequenceStream = StreamsSequenceStream;\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.AsciiHexStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nclass AsciiHexStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength) {\n    if (maybeLength) {\n      maybeLength *= 0.5;\n    }\n\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    this.firstDigit = -1;\n  }\n\n  readBlock() {\n    const UPSTREAM_BLOCK_SIZE = 8000;\n    const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n\n    if (!bytes.length) {\n      this.eof = true;\n      return;\n    }\n\n    const maxDecodeLength = bytes.length + 1 >> 1;\n    const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n    let bufferLength = this.bufferLength;\n    let firstDigit = this.firstDigit;\n\n    for (const ch of bytes) {\n      let digit;\n\n      if (ch >= 0x30 && ch <= 0x39) {\n        digit = ch & 0x0f;\n      } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n        digit = (ch & 0x0f) + 9;\n      } else if (ch === 0x3e) {\n        this.eof = true;\n        break;\n      } else {\n        continue;\n      }\n\n      if (firstDigit < 0) {\n        firstDigit = digit;\n      } else {\n        buffer[bufferLength++] = firstDigit << 4 | digit;\n        firstDigit = -1;\n      }\n    }\n\n    if (firstDigit >= 0 && this.eof) {\n      buffer[bufferLength++] = firstDigit << 4;\n      firstDigit = -1;\n    }\n\n    this.firstDigit = firstDigit;\n    this.bufferLength = bufferLength;\n  }\n\n}\n\nexports.AsciiHexStream = AsciiHexStream;\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CCITTFaxStream = void 0;\n\nvar _ccitt = __w_pdfjs_require__(22);\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nclass CCITTFaxStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength, params) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n\n    if (!(params instanceof _primitives.Dict)) {\n      params = _primitives.Dict.empty;\n    }\n\n    const source = {\n      next() {\n        return str.getByte();\n      }\n\n    };\n    this.ccittFaxDecoder = new _ccitt.CCITTFaxDecoder(source, {\n      K: params.get(\"K\"),\n      EndOfLine: params.get(\"EndOfLine\"),\n      EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n      Columns: params.get(\"Columns\"),\n      Rows: params.get(\"Rows\"),\n      EndOfBlock: params.get(\"EndOfBlock\"),\n      BlackIs1: params.get(\"BlackIs1\")\n    });\n  }\n\n  readBlock() {\n    while (!this.eof) {\n      const c = this.ccittFaxDecoder.readNextChar();\n\n      if (c === -1) {\n        this.eof = true;\n        return;\n      }\n\n      this.ensureBuffer(this.bufferLength + 1);\n      this.buffer[this.bufferLength++] = c;\n    }\n  }\n\n}\n\nexports.CCITTFaxStream = CCITTFaxStream;\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CCITTFaxDecoder = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\nconst 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]];\nconst 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]];\nconst 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]];\nconst 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]];\nconst 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]];\nconst 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]];\n\nclass CCITTFaxDecoder {\n  constructor(source, options = {}) {\n    if (!source || typeof source.next !== \"function\") {\n      throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n    }\n\n    this.source = source;\n    this.eof = false;\n    this.encoding = options.K || 0;\n    this.eoline = options.EndOfLine || false;\n    this.byteAlign = options.EncodedByteAlign || false;\n    this.columns = options.Columns || 1728;\n    this.rows = options.Rows || 0;\n    let eoblock = options.EndOfBlock;\n\n    if (eoblock === null || eoblock === undefined) {\n      eoblock = true;\n    }\n\n    this.eoblock = eoblock;\n    this.black = options.BlackIs1 || false;\n    this.codingLine = new Uint32Array(this.columns + 1);\n    this.refLine = new Uint32Array(this.columns + 2);\n    this.codingLine[0] = this.columns;\n    this.codingPos = 0;\n    this.row = 0;\n    this.nextLine2D = this.encoding < 0;\n    this.inputBits = 0;\n    this.inputBuf = 0;\n    this.outputBits = 0;\n    this.rowsDone = false;\n    let code1;\n\n    while ((code1 = this._lookBits(12)) === 0) {\n      this._eatBits(1);\n    }\n\n    if (code1 === 1) {\n      this._eatBits(12);\n    }\n\n    if (this.encoding > 0) {\n      this.nextLine2D = !this._lookBits(1);\n\n      this._eatBits(1);\n    }\n  }\n\n  readNextChar() {\n    if (this.eof) {\n      return -1;\n    }\n\n    const refLine = this.refLine;\n    const codingLine = this.codingLine;\n    const columns = this.columns;\n    let refPos, blackPixels, bits, i;\n\n    if (this.outputBits === 0) {\n      if (this.rowsDone) {\n        this.eof = true;\n      }\n\n      if (this.eof) {\n        return -1;\n      }\n\n      this.err = false;\n      let code1, code2, code3;\n\n      if (this.nextLine2D) {\n        for (i = 0; codingLine[i] < columns; ++i) {\n          refLine[i] = codingLine[i];\n        }\n\n        refLine[i++] = columns;\n        refLine[i] = columns;\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        refPos = 0;\n        blackPixels = 0;\n\n        while (codingLine[this.codingPos] < columns) {\n          code1 = this._getTwoDimCode();\n\n          switch (code1) {\n            case twoDimPass:\n              this._addPixels(refLine[refPos + 1], blackPixels);\n\n              if (refLine[refPos + 1] < columns) {\n                refPos += 2;\n              }\n\n              break;\n\n            case twoDimHoriz:\n              code1 = code2 = 0;\n\n              if (blackPixels) {\n                do {\n                  code1 += code3 = this._getBlackCode();\n                } while (code3 >= 64);\n\n                do {\n                  code2 += code3 = this._getWhiteCode();\n                } while (code3 >= 64);\n              } else {\n                do {\n                  code1 += code3 = this._getWhiteCode();\n                } while (code3 >= 64);\n\n                do {\n                  code2 += code3 = this._getBlackCode();\n                } while (code3 >= 64);\n              }\n\n              this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n              if (codingLine[this.codingPos] < columns) {\n                this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n              }\n\n              while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                refPos += 2;\n              }\n\n              break;\n\n            case twoDimVertR3:\n              this._addPixels(refLine[refPos] + 3, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertR2:\n              this._addPixels(refLine[refPos] + 2, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertR1:\n              this._addPixels(refLine[refPos] + 1, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVert0:\n              this._addPixels(refLine[refPos], blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                ++refPos;\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertL3:\n              this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertL2:\n              this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case twoDimVertL1:\n              this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n\n              blackPixels ^= 1;\n\n              if (codingLine[this.codingPos] < columns) {\n                if (refPos > 0) {\n                  --refPos;\n                } else {\n                  ++refPos;\n                }\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n              }\n\n              break;\n\n            case ccittEOF:\n              this._addPixels(columns, 0);\n\n              this.eof = true;\n              break;\n\n            default:\n              (0, _util.info)(\"bad 2d code\");\n\n              this._addPixels(columns, 0);\n\n              this.err = true;\n          }\n        }\n      } else {\n        codingLine[0] = 0;\n        this.codingPos = 0;\n        blackPixels = 0;\n\n        while (codingLine[this.codingPos] < columns) {\n          code1 = 0;\n\n          if (blackPixels) {\n            do {\n              code1 += code3 = this._getBlackCode();\n            } while (code3 >= 64);\n          } else {\n            do {\n              code1 += code3 = this._getWhiteCode();\n            } while (code3 >= 64);\n          }\n\n          this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n          blackPixels ^= 1;\n        }\n      }\n\n      let gotEOL = false;\n\n      if (this.byteAlign) {\n        this.inputBits &= ~7;\n      }\n\n      if (!this.eoblock && this.row === this.rows - 1) {\n        this.rowsDone = true;\n      } else {\n        code1 = this._lookBits(12);\n\n        if (this.eoline) {\n          while (code1 !== ccittEOF && code1 !== 1) {\n            this._eatBits(1);\n\n            code1 = this._lookBits(12);\n          }\n        } else {\n          while (code1 === 0) {\n            this._eatBits(1);\n\n            code1 = this._lookBits(12);\n          }\n        }\n\n        if (code1 === 1) {\n          this._eatBits(12);\n\n          gotEOL = true;\n        } else if (code1 === ccittEOF) {\n          this.eof = true;\n        }\n      }\n\n      if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n        this.nextLine2D = !this._lookBits(1);\n\n        this._eatBits(1);\n      }\n\n      if (this.eoblock && gotEOL && this.byteAlign) {\n        code1 = this._lookBits(12);\n\n        if (code1 === 1) {\n          this._eatBits(12);\n\n          if (this.encoding > 0) {\n            this._lookBits(1);\n\n            this._eatBits(1);\n          }\n\n          if (this.encoding >= 0) {\n            for (i = 0; i < 4; ++i) {\n              code1 = this._lookBits(12);\n\n              if (code1 !== 1) {\n                (0, _util.info)(\"bad rtc code: \" + code1);\n              }\n\n              this._eatBits(12);\n\n              if (this.encoding > 0) {\n                this._lookBits(1);\n\n                this._eatBits(1);\n              }\n            }\n          }\n\n          this.eof = true;\n        }\n      } else if (this.err && this.eoline) {\n        while (true) {\n          code1 = this._lookBits(13);\n\n          if (code1 === ccittEOF) {\n            this.eof = true;\n            return -1;\n          }\n\n          if (code1 >> 1 === 1) {\n            break;\n          }\n\n          this._eatBits(1);\n        }\n\n        this._eatBits(12);\n\n        if (this.encoding > 0) {\n          this._eatBits(1);\n\n          this.nextLine2D = !(code1 & 1);\n        }\n      }\n\n      if (codingLine[0] > 0) {\n        this.outputBits = codingLine[this.codingPos = 0];\n      } else {\n        this.outputBits = codingLine[this.codingPos = 1];\n      }\n\n      this.row++;\n    }\n\n    let c;\n\n    if (this.outputBits >= 8) {\n      c = this.codingPos & 1 ? 0 : 0xff;\n      this.outputBits -= 8;\n\n      if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n        this.codingPos++;\n        this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n      }\n    } else {\n      bits = 8;\n      c = 0;\n\n      do {\n        if (typeof this.outputBits !== \"number\") {\n          throw new _util.FormatError('Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.');\n        }\n\n        if (this.outputBits > bits) {\n          c <<= bits;\n\n          if (!(this.codingPos & 1)) {\n            c |= 0xff >> 8 - bits;\n          }\n\n          this.outputBits -= bits;\n          bits = 0;\n        } else {\n          c <<= this.outputBits;\n\n          if (!(this.codingPos & 1)) {\n            c |= 0xff >> 8 - this.outputBits;\n          }\n\n          bits -= this.outputBits;\n          this.outputBits = 0;\n\n          if (codingLine[this.codingPos] < columns) {\n            this.codingPos++;\n            this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n          } else if (bits > 0) {\n            c <<= bits;\n            bits = 0;\n          }\n        }\n      } while (bits);\n    }\n\n    if (this.black) {\n      c ^= 0xff;\n    }\n\n    return c;\n  }\n\n  _addPixels(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        (0, _util.info)(\"row is wrong length\");\n        this.err = true;\n        a1 = this.columns;\n      }\n\n      if (codingPos & 1 ^ blackPixels) {\n        ++codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    }\n\n    this.codingPos = codingPos;\n  }\n\n  _addPixelsNeg(a1, blackPixels) {\n    const codingLine = this.codingLine;\n    let codingPos = this.codingPos;\n\n    if (a1 > codingLine[codingPos]) {\n      if (a1 > this.columns) {\n        (0, _util.info)(\"row is wrong length\");\n        this.err = true;\n        a1 = this.columns;\n      }\n\n      if (codingPos & 1 ^ blackPixels) {\n        ++codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    } else if (a1 < codingLine[codingPos]) {\n      if (a1 < 0) {\n        (0, _util.info)(\"invalid code\");\n        this.err = true;\n        a1 = 0;\n      }\n\n      while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n        --codingPos;\n      }\n\n      codingLine[codingPos] = a1;\n    }\n\n    this.codingPos = codingPos;\n  }\n\n  _findTableCode(start, end, table, limit) {\n    const limitValue = limit || 0;\n\n    for (let i = start; i <= end; ++i) {\n      let code = this._lookBits(i);\n\n      if (code === ccittEOF) {\n        return [true, 1, false];\n      }\n\n      if (i < end) {\n        code <<= end - i;\n      }\n\n      if (!limitValue || code >= limitValue) {\n        const p = table[code - limitValue];\n\n        if (p[0] === i) {\n          this._eatBits(i);\n\n          return [true, p[1], true];\n        }\n      }\n    }\n\n    return [false, 0, false];\n  }\n\n  _getTwoDimCode() {\n    let code = 0;\n    let p;\n\n    if (this.eoblock) {\n      code = this._lookBits(7);\n      p = twoDimTable[code];\n\n      if (p && p[0] > 0) {\n        this._eatBits(p[0]);\n\n        return p[1];\n      }\n    } else {\n      const result = this._findTableCode(1, 7, twoDimTable);\n\n      if (result[0] && result[2]) {\n        return result[1];\n      }\n    }\n\n    (0, _util.info)(\"Bad two dim code\");\n    return ccittEOF;\n  }\n\n  _getWhiteCode() {\n    let code = 0;\n    let p;\n\n    if (this.eoblock) {\n      code = this._lookBits(12);\n\n      if (code === ccittEOF) {\n        return 1;\n      }\n\n      if (code >> 5 === 0) {\n        p = whiteTable1[code];\n      } else {\n        p = whiteTable2[code >> 3];\n      }\n\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(1, 9, whiteTable2);\n\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(11, 12, whiteTable1);\n\n      if (result[0]) {\n        return result[1];\n      }\n    }\n\n    (0, _util.info)(\"bad white code\");\n\n    this._eatBits(1);\n\n    return 1;\n  }\n\n  _getBlackCode() {\n    let code, p;\n\n    if (this.eoblock) {\n      code = this._lookBits(13);\n\n      if (code === ccittEOF) {\n        return 1;\n      }\n\n      if (code >> 7 === 0) {\n        p = blackTable1[code];\n      } else if (code >> 9 === 0 && code >> 7 !== 0) {\n        p = blackTable2[(code >> 1) - 64];\n      } else {\n        p = blackTable3[code >> 7];\n      }\n\n      if (p[0] > 0) {\n        this._eatBits(p[0]);\n\n        return p[1];\n      }\n    } else {\n      let result = this._findTableCode(2, 6, blackTable3);\n\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(7, 12, blackTable2, 64);\n\n      if (result[0]) {\n        return result[1];\n      }\n\n      result = this._findTableCode(10, 13, blackTable1);\n\n      if (result[0]) {\n        return result[1];\n      }\n    }\n\n    (0, _util.info)(\"bad black code\");\n\n    this._eatBits(1);\n\n    return 1;\n  }\n\n  _lookBits(n) {\n    let c;\n\n    while (this.inputBits < n) {\n      if ((c = this.source.next()) === -1) {\n        if (this.inputBits === 0) {\n          return ccittEOF;\n        }\n\n        return this.inputBuf << n - this.inputBits & 0xffff >> 16 - n;\n      }\n\n      this.inputBuf = this.inputBuf << 8 | c;\n      this.inputBits += 8;\n    }\n\n    return this.inputBuf >> this.inputBits - n & 0xffff >> 16 - n;\n  }\n\n  _eatBits(n) {\n    if ((this.inputBits -= n) < 0) {\n      this.inputBits = 0;\n    }\n  }\n\n}\n\nexports.CCITTFaxDecoder = CCITTFaxDecoder;\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FlateStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nconst lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\nconst distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\nconst fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\nconst fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\n\nclass FlateStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    const cmf = str.getByte();\n    const flg = str.getByte();\n\n    if (cmf === -1 || flg === -1) {\n      throw new _util.FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n    }\n\n    if ((cmf & 0x0f) !== 0x08) {\n      throw new _util.FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`);\n    }\n\n    if (((cmf << 8) + flg) % 31 !== 0) {\n      throw new _util.FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n    }\n\n    if (flg & 0x20) {\n      throw new _util.FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n    }\n\n    this.codeSize = 0;\n    this.codeBuf = 0;\n  }\n\n  getBits(bits) {\n    const str = this.str;\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n    let b;\n\n    while (codeSize < bits) {\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad encoding in flate stream\");\n      }\n\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n\n    b = codeBuf & (1 << bits) - 1;\n    this.codeBuf = codeBuf >> bits;\n    this.codeSize = codeSize -= bits;\n    return b;\n  }\n\n  getCode(table) {\n    const str = this.str;\n    const codes = table[0];\n    const maxLen = table[1];\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n    let b;\n\n    while (codeSize < maxLen) {\n      if ((b = str.getByte()) === -1) {\n        break;\n      }\n\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n\n    const code = codes[codeBuf & (1 << maxLen) - 1];\n    const codeLen = code >> 16;\n    const codeVal = code & 0xffff;\n\n    if (codeLen < 1 || codeSize < codeLen) {\n      throw new _util.FormatError(\"Bad encoding in flate stream\");\n    }\n\n    this.codeBuf = codeBuf >> codeLen;\n    this.codeSize = codeSize - codeLen;\n    return codeVal;\n  }\n\n  generateHuffmanTable(lengths) {\n    const n = lengths.length;\n    let maxLen = 0;\n    let i;\n\n    for (i = 0; i < n; ++i) {\n      if (lengths[i] > maxLen) {\n        maxLen = lengths[i];\n      }\n    }\n\n    const size = 1 << maxLen;\n    const codes = new Int32Array(size);\n\n    for (let len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n      for (let val = 0; val < n; ++val) {\n        if (lengths[val] === len) {\n          let code2 = 0;\n          let t = code;\n\n          for (i = 0; i < len; ++i) {\n            code2 = code2 << 1 | t & 1;\n            t >>= 1;\n          }\n\n          for (i = code2; i < size; i += skip) {\n            codes[i] = len << 16 | val;\n          }\n\n          ++code;\n        }\n      }\n    }\n\n    return [codes, maxLen];\n  }\n\n  readBlock() {\n    let buffer, len;\n    const str = this.str;\n    let hdr = this.getBits(3);\n\n    if (hdr & 1) {\n      this.eof = true;\n    }\n\n    hdr >>= 1;\n\n    if (hdr === 0) {\n      let b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad block header in flate stream\");\n      }\n\n      let blockLen = b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad block header in flate stream\");\n      }\n\n      blockLen |= b << 8;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad block header in flate stream\");\n      }\n\n      let check = b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError(\"Bad block header in flate stream\");\n      }\n\n      check |= b << 8;\n\n      if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n        throw new _util.FormatError(\"Bad uncompressed block length in flate stream\");\n      }\n\n      this.codeBuf = 0;\n      this.codeSize = 0;\n      const bufferLength = this.bufferLength,\n            end = bufferLength + blockLen;\n      buffer = this.ensureBuffer(end);\n      this.bufferLength = end;\n\n      if (blockLen === 0) {\n        if (str.peekByte() === -1) {\n          this.eof = true;\n        }\n      } else {\n        const block = str.getBytes(blockLen);\n        buffer.set(block, bufferLength);\n\n        if (block.length < blockLen) {\n          this.eof = true;\n        }\n      }\n\n      return;\n    }\n\n    let litCodeTable;\n    let distCodeTable;\n\n    if (hdr === 1) {\n      litCodeTable = fixedLitCodeTab;\n      distCodeTable = fixedDistCodeTab;\n    } else if (hdr === 2) {\n      const numLitCodes = this.getBits(5) + 257;\n      const numDistCodes = this.getBits(5) + 1;\n      const numCodeLenCodes = this.getBits(4) + 4;\n      const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n      let i;\n\n      for (i = 0; i < numCodeLenCodes; ++i) {\n        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n      }\n\n      const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n      len = 0;\n      i = 0;\n      const codes = numLitCodes + numDistCodes;\n      const codeLengths = new Uint8Array(codes);\n      let bitsLength, bitsOffset, what;\n\n      while (i < codes) {\n        const code = this.getCode(codeLenCodeTab);\n\n        if (code === 16) {\n          bitsLength = 2;\n          bitsOffset = 3;\n          what = len;\n        } else if (code === 17) {\n          bitsLength = 3;\n          bitsOffset = 3;\n          what = len = 0;\n        } else if (code === 18) {\n          bitsLength = 7;\n          bitsOffset = 11;\n          what = len = 0;\n        } else {\n          codeLengths[i++] = len = code;\n          continue;\n        }\n\n        let repeatLength = this.getBits(bitsLength) + bitsOffset;\n\n        while (repeatLength-- > 0) {\n          codeLengths[i++] = what;\n        }\n      }\n\n      litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n      distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n    } else {\n      throw new _util.FormatError(\"Unknown block type in flate stream\");\n    }\n\n    buffer = this.buffer;\n    let limit = buffer ? buffer.length : 0;\n    let pos = this.bufferLength;\n\n    while (true) {\n      let code1 = this.getCode(litCodeTable);\n\n      if (code1 < 256) {\n        if (pos + 1 >= limit) {\n          buffer = this.ensureBuffer(pos + 1);\n          limit = buffer.length;\n        }\n\n        buffer[pos++] = code1;\n        continue;\n      }\n\n      if (code1 === 256) {\n        this.bufferLength = pos;\n        return;\n      }\n\n      code1 -= 257;\n      code1 = lengthDecode[code1];\n      let code2 = code1 >> 16;\n\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n\n      len = (code1 & 0xffff) + code2;\n      code1 = this.getCode(distCodeTable);\n      code1 = distDecode[code1];\n      code2 = code1 >> 16;\n\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n\n      const dist = (code1 & 0xffff) + code2;\n\n      if (pos + len >= limit) {\n        buffer = this.ensureBuffer(pos + len);\n        limit = buffer.length;\n      }\n\n      for (let k = 0; k < len; ++k, ++pos) {\n        buffer[pos] = buffer[pos - dist];\n      }\n    }\n  }\n\n}\n\nexports.FlateStream = FlateStream;\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Jbig2Stream = void 0;\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _jbig = __w_pdfjs_require__(25);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass Jbig2Stream extends _decode_stream.DecodeStream {\n  constructor(stream, maybeLength, params) {\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n\n  get bytes() {\n    return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n\n  ensureBuffer(requested) {}\n\n  readBlock() {\n    if (this.eof) {\n      return;\n    }\n\n    const jbig2Image = new _jbig.Jbig2Image();\n    const chunks = [];\n\n    if (this.params instanceof _primitives.Dict) {\n      const globalsStream = this.params.get(\"JBIG2Globals\");\n\n      if (globalsStream instanceof _base_stream.BaseStream) {\n        const globals = globalsStream.getBytes();\n        chunks.push({\n          data: globals,\n          start: 0,\n          end: globals.length\n        });\n      }\n    }\n\n    chunks.push({\n      data: this.bytes,\n      start: 0,\n      end: this.bytes.length\n    });\n    const data = jbig2Image.parseChunks(chunks);\n    const dataLength = data.length;\n\n    for (let i = 0; i < dataLength; i++) {\n      data[i] ^= 0xff;\n    }\n\n    this.buffer = data;\n    this.bufferLength = dataLength;\n    this.eof = true;\n  }\n\n}\n\nexports.Jbig2Stream = Jbig2Stream;\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Jbig2Image = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(26);\n\nvar _ccitt = __w_pdfjs_require__(22);\n\nclass Jbig2Error extends _util.BaseException {\n  constructor(msg) {\n    super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n  }\n\n}\n\nclass ContextCache {\n  getContexts(id) {\n    if (id in this) {\n      return this[id];\n    }\n\n    return this[id] = new Int8Array(1 << 16);\n  }\n\n}\n\nclass DecodingContext {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n  }\n\n  get decoder() {\n    const decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end);\n    return (0, _util.shadow)(this, \"decoder\", decoder);\n  }\n\n  get contextCache() {\n    const cache = new ContextCache();\n    return (0, _util.shadow)(this, \"contextCache\", cache);\n  }\n\n}\n\nfunction decodeInteger(contextCache, procedure, decoder) {\n  const contexts = contextCache.getContexts(procedure);\n  let prev = 1;\n\n  function readBits(length) {\n    let v = 0;\n\n    for (let i = 0; i < length; i++) {\n      const bit = decoder.readBit(contexts, prev);\n      prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n      v = v << 1 | bit;\n    }\n\n    return v >>> 0;\n  }\n\n  const sign = readBits(1);\n  const 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);\n\n  if (sign === 0) {\n    return value;\n  } else if (value > 0) {\n    return -value;\n  }\n\n  return null;\n}\n\nfunction decodeIAID(contextCache, decoder, codeLength) {\n  const contexts = contextCache.getContexts(\"IAID\");\n  let prev = 1;\n\n  for (let i = 0; i < codeLength; i++) {\n    const bit = decoder.readBit(contexts, prev);\n    prev = prev << 1 | bit;\n  }\n\n  if (codeLength < 31) {\n    return prev & (1 << codeLength) - 1;\n  }\n\n  return prev & 0x7fffffff;\n}\n\nconst 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\"];\nconst CodingTemplates = [[{\n  x: -1,\n  y: -2\n}, {\n  x: 0,\n  y: -2\n}, {\n  x: 1,\n  y: -2\n}, {\n  x: -2,\n  y: -1\n}, {\n  x: -1,\n  y: -1\n}, {\n  x: 0,\n  y: -1\n}, {\n  x: 1,\n  y: -1\n}, {\n  x: 2,\n  y: -1\n}, {\n  x: -4,\n  y: 0\n}, {\n  x: -3,\n  y: 0\n}, {\n  x: -2,\n  y: 0\n}, {\n  x: -1,\n  y: 0\n}], [{\n  x: -1,\n  y: -2\n}, {\n  x: 0,\n  y: -2\n}, {\n  x: 1,\n  y: -2\n}, {\n  x: 2,\n  y: -2\n}, {\n  x: -2,\n  y: -1\n}, {\n  x: -1,\n  y: -1\n}, {\n  x: 0,\n  y: -1\n}, {\n  x: 1,\n  y: -1\n}, {\n  x: 2,\n  y: -1\n}, {\n  x: -3,\n  y: 0\n}, {\n  x: -2,\n  y: 0\n}, {\n  x: -1,\n  y: 0\n}], [{\n  x: -1,\n  y: -2\n}, {\n  x: 0,\n  y: -2\n}, {\n  x: 1,\n  y: -2\n}, {\n  x: -2,\n  y: -1\n}, {\n  x: -1,\n  y: -1\n}, {\n  x: 0,\n  y: -1\n}, {\n  x: 1,\n  y: -1\n}, {\n  x: -2,\n  y: 0\n}, {\n  x: -1,\n  y: 0\n}], [{\n  x: -3,\n  y: -1\n}, {\n  x: -2,\n  y: -1\n}, {\n  x: -1,\n  y: -1\n}, {\n  x: 0,\n  y: -1\n}, {\n  x: 1,\n  y: -1\n}, {\n  x: -4,\n  y: 0\n}, {\n  x: -3,\n  y: 0\n}, {\n  x: -2,\n  y: 0\n}, {\n  x: -1,\n  y: 0\n}]];\nconst RefinementTemplates = [{\n  coding: [{\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -1,\n    y: 0\n  }],\n  reference: [{\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -1,\n    y: 0\n  }, {\n    x: 0,\n    y: 0\n  }, {\n    x: 1,\n    y: 0\n  }, {\n    x: -1,\n    y: 1\n  }, {\n    x: 0,\n    y: 1\n  }, {\n    x: 1,\n    y: 1\n  }]\n}, {\n  coding: [{\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -1,\n    y: 0\n  }],\n  reference: [{\n    x: 0,\n    y: -1\n  }, {\n    x: -1,\n    y: 0\n  }, {\n    x: 0,\n    y: 0\n  }, {\n    x: 1,\n    y: 0\n  }, {\n    x: 0,\n    y: 1\n  }, {\n    x: 1,\n    y: 1\n  }]\n}];\nconst ReusedContexts = [0x9b25, 0x0795, 0x00e5, 0x0195];\nconst RefinementReusedContexts = [0x0020, 0x0008];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n  const bitmap = [];\n  let contextLabel, i, j, pixel, row, row1, row2;\n  const OLD_PIXEL_MASK = 0x7bf7;\n\n  for (i = 0; i < height; i++) {\n    row = bitmap[i] = new Uint8Array(width);\n    row1 = i < 1 ? row : bitmap[i - 1];\n    row2 = i < 2 ? row : bitmap[i - 2];\n    contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4;\n\n    for (j = 0; j < width; j++) {\n      row[j] = pixel = decoder.readBit(contexts, contextLabel);\n      contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n    }\n  }\n\n  return bitmap;\n}\n\nfunction decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n  if (mmr) {\n    const input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n    return decodeMMRBitmap(input, width, height, false);\n  }\n\n  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) {\n    return decodeBitmapTemplate0(width, height, decodingContext);\n  }\n\n  const useskip = !!skip;\n  const template = CodingTemplates[templateIndex].concat(at);\n  template.sort(function (a, b) {\n    return a.y - b.y || a.x - b.x;\n  });\n  const templateLength = template.length;\n  const templateX = new Int8Array(templateLength);\n  const templateY = new Int8Array(templateLength);\n  const changingTemplateEntries = [];\n  let reuseMask = 0,\n      minX = 0,\n      maxX = 0,\n      minY = 0;\n  let c, k;\n\n  for (k = 0; k < templateLength; k++) {\n    templateX[k] = template[k].x;\n    templateY[k] = template[k].y;\n    minX = Math.min(minX, template[k].x);\n    maxX = Math.max(maxX, template[k].x);\n    minY = Math.min(minY, template[k].y);\n\n    if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) {\n      reuseMask |= 1 << templateLength - 1 - k;\n    } else {\n      changingTemplateEntries.push(k);\n    }\n  }\n\n  const changingEntriesLength = changingTemplateEntries.length;\n  const changingTemplateX = new Int8Array(changingEntriesLength);\n  const changingTemplateY = new Int8Array(changingEntriesLength);\n  const changingTemplateBit = new Uint16Array(changingEntriesLength);\n\n  for (c = 0; c < changingEntriesLength; c++) {\n    k = changingTemplateEntries[c];\n    changingTemplateX[c] = template[k].x;\n    changingTemplateY[c] = template[k].y;\n    changingTemplateBit[c] = 1 << templateLength - 1 - k;\n  }\n\n  const sbb_left = -minX;\n  const sbb_top = -minY;\n  const sbb_right = width - maxX;\n  const pseudoPixelContext = ReusedContexts[templateIndex];\n  let row = new Uint8Array(width);\n  const bitmap = [];\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GB\");\n  let ltp = 0,\n      j,\n      i0,\n      j0,\n      contextLabel = 0,\n      bit,\n      shift;\n\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n\n      if (ltp) {\n        bitmap.push(row);\n        continue;\n      }\n    }\n\n    row = new Uint8Array(row);\n    bitmap.push(row);\n\n    for (j = 0; j < width; j++) {\n      if (useskip && skip[i][j]) {\n        row[j] = 0;\n        continue;\n      }\n\n      if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n        contextLabel = contextLabel << 1 & reuseMask;\n\n        for (k = 0; k < changingEntriesLength; k++) {\n          i0 = i + changingTemplateY[k];\n          j0 = j + changingTemplateX[k];\n          bit = bitmap[i0][j0];\n\n          if (bit) {\n            bit = changingTemplateBit[k];\n            contextLabel |= bit;\n          }\n        }\n      } else {\n        contextLabel = 0;\n        shift = templateLength - 1;\n\n        for (k = 0; k < templateLength; k++, shift--) {\n          j0 = j + templateX[k];\n\n          if (j0 >= 0 && j0 < width) {\n            i0 = i + templateY[k];\n\n            if (i0 >= 0) {\n              bit = bitmap[i0][j0];\n\n              if (bit) {\n                contextLabel |= bit << shift;\n              }\n            }\n          }\n        }\n      }\n\n      const pixel = decoder.readBit(contexts, contextLabel);\n      row[j] = pixel;\n    }\n  }\n\n  return bitmap;\n}\n\nfunction decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n  let codingTemplate = RefinementTemplates[templateIndex].coding;\n\n  if (templateIndex === 0) {\n    codingTemplate = codingTemplate.concat([at[0]]);\n  }\n\n  const codingTemplateLength = codingTemplate.length;\n  const codingTemplateX = new Int32Array(codingTemplateLength);\n  const codingTemplateY = new Int32Array(codingTemplateLength);\n  let k;\n\n  for (k = 0; k < codingTemplateLength; k++) {\n    codingTemplateX[k] = codingTemplate[k].x;\n    codingTemplateY[k] = codingTemplate[k].y;\n  }\n\n  let referenceTemplate = RefinementTemplates[templateIndex].reference;\n\n  if (templateIndex === 0) {\n    referenceTemplate = referenceTemplate.concat([at[1]]);\n  }\n\n  const referenceTemplateLength = referenceTemplate.length;\n  const referenceTemplateX = new Int32Array(referenceTemplateLength);\n  const referenceTemplateY = new Int32Array(referenceTemplateLength);\n\n  for (k = 0; k < referenceTemplateLength; k++) {\n    referenceTemplateX[k] = referenceTemplate[k].x;\n    referenceTemplateY[k] = referenceTemplate[k].y;\n  }\n\n  const referenceWidth = referenceBitmap[0].length;\n  const referenceHeight = referenceBitmap.length;\n  const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n  const bitmap = [];\n  const decoder = decodingContext.decoder;\n  const contexts = decodingContext.contextCache.getContexts(\"GR\");\n  let ltp = 0;\n\n  for (let i = 0; i < height; i++) {\n    if (prediction) {\n      const sltp = decoder.readBit(contexts, pseudoPixelContext);\n      ltp ^= sltp;\n\n      if (ltp) {\n        throw new Jbig2Error(\"prediction is not supported\");\n      }\n    }\n\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n\n    for (let j = 0; j < width; j++) {\n      let i0, j0;\n      let contextLabel = 0;\n\n      for (k = 0; k < codingTemplateLength; k++) {\n        i0 = i + codingTemplateY[k];\n        j0 = j + codingTemplateX[k];\n\n        if (i0 < 0 || j0 < 0 || j0 >= width) {\n          contextLabel <<= 1;\n        } else {\n          contextLabel = contextLabel << 1 | bitmap[i0][j0];\n        }\n      }\n\n      for (k = 0; k < referenceTemplateLength; k++) {\n        i0 = i + referenceTemplateY[k] - offsetY;\n        j0 = j + referenceTemplateX[k] - offsetX;\n\n        if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n          contextLabel <<= 1;\n        } else {\n          contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n        }\n      }\n\n      const pixel = decoder.readBit(contexts, contextLabel);\n      row[j] = pixel;\n    }\n  }\n\n  return bitmap;\n}\n\nfunction decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n  }\n\n  const newSymbols = [];\n  let currentHeight = 0;\n  let symbolCodeLength = (0, _core_utils.log2)(symbols.length + numberOfNewSymbols);\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n  let tableB1, symbolWidths;\n\n  if (huffman) {\n    tableB1 = getStandardTable(1);\n    symbolWidths = [];\n    symbolCodeLength = Math.max(symbolCodeLength, 1);\n  }\n\n  while (newSymbols.length < numberOfNewSymbols) {\n    const deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, \"IADH\", decoder);\n    currentHeight += deltaHeight;\n    let currentWidth = 0,\n        totalWidth = 0;\n    const firstSymbol = huffman ? symbolWidths.length : 0;\n\n    while (true) {\n      const deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, \"IADW\", decoder);\n\n      if (deltaWidth === null) {\n        break;\n      }\n\n      currentWidth += deltaWidth;\n      totalWidth += currentWidth;\n      let bitmap;\n\n      if (refinement) {\n        const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n\n        if (numberOfInstances > 1) {\n          bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput);\n        } else {\n          const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n          const rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n          const rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n          const symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length];\n          bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext);\n        }\n\n        newSymbols.push(bitmap);\n      } else if (huffman) {\n        symbolWidths.push(currentWidth);\n      } else {\n        bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext);\n        newSymbols.push(bitmap);\n      }\n    }\n\n    if (huffman && !refinement) {\n      const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n      huffmanInput.byteAlign();\n      let collectiveBitmap;\n\n      if (bitmapSize === 0) {\n        collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight);\n      } else {\n        const originalEnd = huffmanInput.end;\n        const bitmapEnd = huffmanInput.position + bitmapSize;\n        huffmanInput.end = bitmapEnd;\n        collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false);\n        huffmanInput.end = originalEnd;\n        huffmanInput.position = bitmapEnd;\n      }\n\n      const numberOfSymbolsDecoded = symbolWidths.length;\n\n      if (firstSymbol === numberOfSymbolsDecoded - 1) {\n        newSymbols.push(collectiveBitmap);\n      } else {\n        let i,\n            y,\n            xMin = 0,\n            xMax,\n            bitmapWidth,\n            symbolBitmap;\n\n        for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n          bitmapWidth = symbolWidths[i];\n          xMax = xMin + bitmapWidth;\n          symbolBitmap = [];\n\n          for (y = 0; y < currentHeight; y++) {\n            symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n          }\n\n          newSymbols.push(symbolBitmap);\n          xMin = xMax;\n        }\n      }\n    }\n  }\n\n  const exportedSymbols = [],\n        flags = [];\n  let currentFlag = false,\n      i,\n      ii;\n  const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n\n  while (flags.length < totalSymbolsLength) {\n    let runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, \"IAEX\", decoder);\n\n    while (runLength--) {\n      flags.push(currentFlag);\n    }\n\n    currentFlag = !currentFlag;\n  }\n\n  for (i = 0, ii = symbols.length; i < ii; i++) {\n    if (flags[i]) {\n      exportedSymbols.push(symbols[i]);\n    }\n  }\n\n  for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n    if (flags[i]) {\n      exportedSymbols.push(newSymbols[j]);\n    }\n  }\n\n  return exportedSymbols;\n}\n\nfunction decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) {\n  if (huffman && refinement) {\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  const bitmap = [];\n  let i, row;\n\n  for (i = 0; i < height; i++) {\n    row = new Uint8Array(width);\n\n    if (defaultPixelValue) {\n      for (let j = 0; j < width; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n\n    bitmap.push(row);\n  }\n\n  const decoder = decodingContext.decoder;\n  const contextCache = decodingContext.contextCache;\n  let stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, \"IADT\", decoder);\n  let firstS = 0;\n  i = 0;\n\n  while (i < numberOfSymbolInstances) {\n    const deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, \"IADT\", decoder);\n    stripT += deltaT;\n    const deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, \"IAFS\", decoder);\n    firstS += deltaFirstS;\n    let currentS = firstS;\n\n    do {\n      let currentT = 0;\n\n      if (stripSize > 1) {\n        currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, \"IAIT\", decoder);\n      }\n\n      const t = stripSize * stripT + currentT;\n      const symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength);\n      const applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, \"IARI\", decoder));\n      let symbolBitmap = inputSymbols[symbolId];\n      let symbolWidth = symbolBitmap[0].length;\n      let symbolHeight = symbolBitmap.length;\n\n      if (applyRefinement) {\n        const rdw = decodeInteger(contextCache, \"IARDW\", decoder);\n        const rdh = decodeInteger(contextCache, \"IARDH\", decoder);\n        const rdx = decodeInteger(contextCache, \"IARDX\", decoder);\n        const rdy = decodeInteger(contextCache, \"IARDY\", decoder);\n        symbolWidth += rdw;\n        symbolHeight += rdh;\n        symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext);\n      }\n\n      const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n      const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n      let s2, t2, symbolRow;\n\n      if (transposed) {\n        for (s2 = 0; s2 < symbolHeight; s2++) {\n          row = bitmap[offsetS + s2];\n\n          if (!row) {\n            continue;\n          }\n\n          symbolRow = symbolBitmap[s2];\n          const maxWidth = Math.min(width - offsetT, symbolWidth);\n\n          switch (combinationOperator) {\n            case 0:\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] |= symbolRow[t2];\n              }\n\n              break;\n\n            case 2:\n              for (t2 = 0; t2 < maxWidth; t2++) {\n                row[offsetT + t2] ^= symbolRow[t2];\n              }\n\n              break;\n\n            default:\n              throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n          }\n        }\n\n        currentS += symbolHeight - 1;\n      } else {\n        for (t2 = 0; t2 < symbolHeight; t2++) {\n          row = bitmap[offsetT + t2];\n\n          if (!row) {\n            continue;\n          }\n\n          symbolRow = symbolBitmap[t2];\n\n          switch (combinationOperator) {\n            case 0:\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] |= symbolRow[s2];\n              }\n\n              break;\n\n            case 2:\n              for (s2 = 0; s2 < symbolWidth; s2++) {\n                row[offsetS + s2] ^= symbolRow[s2];\n              }\n\n              break;\n\n            default:\n              throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n          }\n        }\n\n        currentS += symbolWidth - 1;\n      }\n\n      i++;\n      const deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, \"IADS\", decoder);\n\n      if (deltaS === null) {\n        break;\n      }\n\n      currentS += deltaS + dsOffset;\n    } while (true);\n  }\n\n  return bitmap;\n}\n\nfunction decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n  const at = [];\n\n  if (!mmr) {\n    at.push({\n      x: -patternWidth,\n      y: 0\n    });\n\n    if (template === 0) {\n      at.push({\n        x: -3,\n        y: -1\n      }, {\n        x: 2,\n        y: -2\n      }, {\n        x: -2,\n        y: -2\n      });\n    }\n  }\n\n  const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n  const collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n  const patterns = [];\n\n  for (let i = 0; i <= maxPatternIndex; i++) {\n    const patternBitmap = [];\n    const xMin = patternWidth * i;\n    const xMax = xMin + patternWidth;\n\n    for (let y = 0; y < patternHeight; y++) {\n      patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n    }\n\n    patterns.push(patternBitmap);\n  }\n\n  return patterns;\n}\n\nfunction decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n  const skip = null;\n\n  if (enableSkip) {\n    throw new Jbig2Error(\"skip is not supported\");\n  }\n\n  if (combinationOperator !== 0) {\n    throw new Jbig2Error(`operator \"${combinationOperator}\" is not supported in halftone region`);\n  }\n\n  const regionBitmap = [];\n  let i, j, row;\n\n  for (i = 0; i < regionHeight; i++) {\n    row = new Uint8Array(regionWidth);\n\n    if (defaultPixelValue) {\n      for (j = 0; j < regionWidth; j++) {\n        row[j] = defaultPixelValue;\n      }\n    }\n\n    regionBitmap.push(row);\n  }\n\n  const numberOfPatterns = patterns.length;\n  const pattern0 = patterns[0];\n  const patternWidth = pattern0[0].length,\n        patternHeight = pattern0.length;\n  const bitsPerValue = (0, _core_utils.log2)(numberOfPatterns);\n  const at = [];\n\n  if (!mmr) {\n    at.push({\n      x: template <= 1 ? 3 : 2,\n      y: -1\n    });\n\n    if (template === 0) {\n      at.push({\n        x: -3,\n        y: -1\n      }, {\n        x: 2,\n        y: -2\n      }, {\n        x: -2,\n        y: -2\n      });\n    }\n  }\n\n  const grayScaleBitPlanes = [];\n  let mmrInput, bitmap;\n\n  if (mmr) {\n    mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n  }\n\n  for (i = bitsPerValue - 1; i >= 0; i--) {\n    if (mmr) {\n      bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n    } else {\n      bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false, skip, at, decodingContext);\n    }\n\n    grayScaleBitPlanes[i] = bitmap;\n  }\n\n  let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n\n  for (mg = 0; mg < gridHeight; mg++) {\n    for (ng = 0; ng < gridWidth; ng++) {\n      bit = 0;\n      patternIndex = 0;\n\n      for (j = bitsPerValue - 1; j >= 0; j--) {\n        bit ^= grayScaleBitPlanes[j][mg][ng];\n        patternIndex |= bit << j;\n      }\n\n      patternBitmap = patterns[patternIndex];\n      x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n      y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n\n      if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {\n        for (i = 0; i < patternHeight; i++) {\n          regionRow = regionBitmap[y + i];\n          patternRow = patternBitmap[i];\n\n          for (j = 0; j < patternWidth; j++) {\n            regionRow[x + j] |= patternRow[j];\n          }\n        }\n      } else {\n        let regionX, regionY;\n\n        for (i = 0; i < patternHeight; i++) {\n          regionY = y + i;\n\n          if (regionY < 0 || regionY >= regionHeight) {\n            continue;\n          }\n\n          regionRow = regionBitmap[regionY];\n          patternRow = patternBitmap[i];\n\n          for (j = 0; j < patternWidth; j++) {\n            regionX = x + j;\n\n            if (regionX >= 0 && regionX < regionWidth) {\n              regionRow[regionX] |= patternRow[j];\n            }\n          }\n        }\n      }\n    }\n  }\n\n  return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n  const segmentHeader = {};\n  segmentHeader.number = (0, _core_utils.readUint32)(data, start);\n  const flags = data[start + 4];\n  const segmentType = flags & 0x3f;\n\n  if (!SegmentTypes[segmentType]) {\n    throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n  }\n\n  segmentHeader.type = segmentType;\n  segmentHeader.typeName = SegmentTypes[segmentType];\n  segmentHeader.deferredNonRetain = !!(flags & 0x80);\n  const pageAssociationFieldSize = !!(flags & 0x40);\n  const referredFlags = data[start + 5];\n  let referredToCount = referredFlags >> 5 & 7;\n  const retainBits = [referredFlags & 31];\n  let position = start + 6;\n\n  if (referredFlags === 7) {\n    referredToCount = (0, _core_utils.readUint32)(data, position - 1) & 0x1fffffff;\n    position += 3;\n    let bytes = referredToCount + 7 >> 3;\n    retainBits[0] = data[position++];\n\n    while (--bytes > 0) {\n      retainBits.push(data[position++]);\n    }\n  } else if (referredFlags === 5 || referredFlags === 6) {\n    throw new Jbig2Error(\"invalid referred-to flags\");\n  }\n\n  segmentHeader.retainBits = retainBits;\n  let referredToSegmentNumberSize = 4;\n\n  if (segmentHeader.number <= 256) {\n    referredToSegmentNumberSize = 1;\n  } else if (segmentHeader.number <= 65536) {\n    referredToSegmentNumberSize = 2;\n  }\n\n  const referredTo = [];\n  let i, ii;\n\n  for (i = 0; i < referredToCount; i++) {\n    let number;\n\n    if (referredToSegmentNumberSize === 1) {\n      number = data[position];\n    } else if (referredToSegmentNumberSize === 2) {\n      number = (0, _core_utils.readUint16)(data, position);\n    } else {\n      number = (0, _core_utils.readUint32)(data, position);\n    }\n\n    referredTo.push(number);\n    position += referredToSegmentNumberSize;\n  }\n\n  segmentHeader.referredTo = referredTo;\n\n  if (!pageAssociationFieldSize) {\n    segmentHeader.pageAssociation = data[position++];\n  } else {\n    segmentHeader.pageAssociation = (0, _core_utils.readUint32)(data, position);\n    position += 4;\n  }\n\n  segmentHeader.length = (0, _core_utils.readUint32)(data, position);\n  position += 4;\n\n  if (segmentHeader.length === 0xffffffff) {\n    if (segmentType === 38) {\n      const genericRegionInfo = readRegionSegmentInformation(data, position);\n      const genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength];\n      const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n      const searchPatternLength = 6;\n      const searchPattern = new Uint8Array(searchPatternLength);\n\n      if (!genericRegionMmr) {\n        searchPattern[0] = 0xff;\n        searchPattern[1] = 0xac;\n      }\n\n      searchPattern[2] = genericRegionInfo.height >>> 24 & 0xff;\n      searchPattern[3] = genericRegionInfo.height >> 16 & 0xff;\n      searchPattern[4] = genericRegionInfo.height >> 8 & 0xff;\n      searchPattern[5] = genericRegionInfo.height & 0xff;\n\n      for (i = position, ii = data.length; i < ii; i++) {\n        let j = 0;\n\n        while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n          j++;\n        }\n\n        if (j === searchPatternLength) {\n          segmentHeader.length = i + searchPatternLength;\n          break;\n        }\n      }\n\n      if (segmentHeader.length === 0xffffffff) {\n        throw new Jbig2Error(\"segment end was not found\");\n      }\n    } else {\n      throw new Jbig2Error(\"invalid unknown segment length\");\n    }\n  }\n\n  segmentHeader.headerEnd = position;\n  return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n  const segments = [];\n  let position = start;\n\n  while (position < end) {\n    const segmentHeader = readSegmentHeader(data, position);\n    position = segmentHeader.headerEnd;\n    const segment = {\n      header: segmentHeader,\n      data\n    };\n\n    if (!header.randomAccess) {\n      segment.start = position;\n      position += segmentHeader.length;\n      segment.end = position;\n    }\n\n    segments.push(segment);\n\n    if (segmentHeader.type === 51) {\n      break;\n    }\n  }\n\n  if (header.randomAccess) {\n    for (let i = 0, ii = segments.length; i < ii; i++) {\n      segments[i].start = position;\n      position += segments[i].header.length;\n      segments[i].end = position;\n    }\n  }\n\n  return segments;\n}\n\nfunction readRegionSegmentInformation(data, start) {\n  return {\n    width: (0, _core_utils.readUint32)(data, start),\n    height: (0, _core_utils.readUint32)(data, start + 4),\n    x: (0, _core_utils.readUint32)(data, start + 8),\n    y: (0, _core_utils.readUint32)(data, start + 12),\n    combinationOperator: data[start + 16] & 7\n  };\n}\n\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n  const header = segment.header;\n  const data = segment.data,\n        end = segment.end;\n  let position = segment.start;\n  let args, at, i, atLength;\n\n  switch (header.type) {\n    case 0:\n      const dictionary = {};\n      const dictionaryFlags = (0, _core_utils.readUint16)(data, position);\n      dictionary.huffman = !!(dictionaryFlags & 1);\n      dictionary.refinement = !!(dictionaryFlags & 2);\n      dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3;\n      dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3;\n      dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1;\n      dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1;\n      dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n      dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n      dictionary.template = dictionaryFlags >> 10 & 3;\n      dictionary.refinementTemplate = dictionaryFlags >> 12 & 1;\n      position += 2;\n\n      if (!dictionary.huffman) {\n        atLength = dictionary.template === 0 ? 4 : 1;\n        at = [];\n\n        for (i = 0; i < atLength; i++) {\n          at.push({\n            x: (0, _core_utils.readInt8)(data, position),\n            y: (0, _core_utils.readInt8)(data, position + 1)\n          });\n          position += 2;\n        }\n\n        dictionary.at = at;\n      }\n\n      if (dictionary.refinement && !dictionary.refinementTemplate) {\n        at = [];\n\n        for (i = 0; i < 2; i++) {\n          at.push({\n            x: (0, _core_utils.readInt8)(data, position),\n            y: (0, _core_utils.readInt8)(data, position + 1)\n          });\n          position += 2;\n        }\n\n        dictionary.refinementAt = at;\n      }\n\n      dictionary.numberOfExportedSymbols = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      dictionary.numberOfNewSymbols = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      args = [dictionary, header.number, header.referredTo, data, position, end];\n      break;\n\n    case 6:\n    case 7:\n      const textRegion = {};\n      textRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const textRegionSegmentFlags = (0, _core_utils.readUint16)(data, position);\n      position += 2;\n      textRegion.huffman = !!(textRegionSegmentFlags & 1);\n      textRegion.refinement = !!(textRegionSegmentFlags & 2);\n      textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3;\n      textRegion.stripSize = 1 << textRegion.logStripSize;\n      textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3;\n      textRegion.transposed = !!(textRegionSegmentFlags & 64);\n      textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3;\n      textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1;\n      textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27;\n      textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1;\n\n      if (textRegion.huffman) {\n        const textRegionHuffmanFlags = (0, _core_utils.readUint16)(data, position);\n        position += 2;\n        textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n        textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3;\n        textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3;\n        textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3;\n        textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3;\n        textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3;\n        textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3;\n        textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 0x4000);\n      }\n\n      if (textRegion.refinement && !textRegion.refinementTemplate) {\n        at = [];\n\n        for (i = 0; i < 2; i++) {\n          at.push({\n            x: (0, _core_utils.readInt8)(data, position),\n            y: (0, _core_utils.readInt8)(data, position + 1)\n          });\n          position += 2;\n        }\n\n        textRegion.refinementAt = at;\n      }\n\n      textRegion.numberOfSymbolInstances = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      args = [textRegion, header.referredTo, data, position, end];\n      break;\n\n    case 16:\n      const patternDictionary = {};\n      const patternDictionaryFlags = data[position++];\n      patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n      patternDictionary.template = patternDictionaryFlags >> 1 & 3;\n      patternDictionary.patternWidth = data[position++];\n      patternDictionary.patternHeight = data[position++];\n      patternDictionary.maxPatternIndex = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      args = [patternDictionary, header.number, data, position, end];\n      break;\n\n    case 22:\n    case 23:\n      const halftoneRegion = {};\n      halftoneRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const halftoneRegionFlags = data[position++];\n      halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n      halftoneRegion.template = halftoneRegionFlags >> 1 & 3;\n      halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n      halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7;\n      halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1;\n      halftoneRegion.gridWidth = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      halftoneRegion.gridHeight = (0, _core_utils.readUint32)(data, position);\n      position += 4;\n      halftoneRegion.gridOffsetX = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridOffsetY = (0, _core_utils.readUint32)(data, position) & 0xffffffff;\n      position += 4;\n      halftoneRegion.gridVectorX = (0, _core_utils.readUint16)(data, position);\n      position += 2;\n      halftoneRegion.gridVectorY = (0, _core_utils.readUint16)(data, position);\n      position += 2;\n      args = [halftoneRegion, header.referredTo, data, position, end];\n      break;\n\n    case 38:\n    case 39:\n      const genericRegion = {};\n      genericRegion.info = readRegionSegmentInformation(data, position);\n      position += RegionSegmentInformationFieldLength;\n      const genericRegionSegmentFlags = data[position++];\n      genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n      genericRegion.template = genericRegionSegmentFlags >> 1 & 3;\n      genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n\n      if (!genericRegion.mmr) {\n        atLength = genericRegion.template === 0 ? 4 : 1;\n        at = [];\n\n        for (i = 0; i < atLength; i++) {\n          at.push({\n            x: (0, _core_utils.readInt8)(data, position),\n            y: (0, _core_utils.readInt8)(data, position + 1)\n          });\n          position += 2;\n        }\n\n        genericRegion.at = at;\n      }\n\n      args = [genericRegion, data, position, end];\n      break;\n\n    case 48:\n      const pageInfo = {\n        width: (0, _core_utils.readUint32)(data, position),\n        height: (0, _core_utils.readUint32)(data, position + 4),\n        resolutionX: (0, _core_utils.readUint32)(data, position + 8),\n        resolutionY: (0, _core_utils.readUint32)(data, position + 12)\n      };\n\n      if (pageInfo.height === 0xffffffff) {\n        delete pageInfo.height;\n      }\n\n      const pageSegmentFlags = data[position + 16];\n      (0, _core_utils.readUint16)(data, position + 17);\n      pageInfo.lossless = !!(pageSegmentFlags & 1);\n      pageInfo.refinement = !!(pageSegmentFlags & 2);\n      pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1;\n      pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3;\n      pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n      pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n      args = [pageInfo];\n      break;\n\n    case 49:\n      break;\n\n    case 50:\n      break;\n\n    case 51:\n      break;\n\n    case 53:\n      args = [header.number, data, position, end];\n      break;\n\n    case 62:\n      break;\n\n    default:\n      throw new Jbig2Error(`segment type ${header.typeName}(${header.type}) is not implemented`);\n  }\n\n  const callbackName = \"on\" + header.typeName;\n\n  if (callbackName in visitor) {\n    visitor[callbackName].apply(visitor, args);\n  }\n}\n\nfunction processSegments(segments, visitor) {\n  for (let i = 0, ii = segments.length; i < ii; i++) {\n    processSegment(segments[i], visitor);\n  }\n}\n\nfunction parseJbig2Chunks(chunks) {\n  const visitor = new SimpleSegmentVisitor();\n\n  for (let i = 0, ii = chunks.length; i < ii; i++) {\n    const chunk = chunks[i];\n    const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n    processSegments(segments, visitor);\n  }\n\n  return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n  throw new Error(\"Not implemented: parseJbig2\");\n}\n\nclass SimpleSegmentVisitor {\n  onPageInformation(info) {\n    this.currentPageInfo = info;\n    const rowSize = info.width + 7 >> 3;\n    const buffer = new Uint8ClampedArray(rowSize * info.height);\n\n    if (info.defaultPixelValue) {\n      buffer.fill(0xff);\n    }\n\n    this.buffer = buffer;\n  }\n\n  drawBitmap(regionInfo, bitmap) {\n    const pageInfo = this.currentPageInfo;\n    const width = regionInfo.width,\n          height = regionInfo.height;\n    const rowSize = pageInfo.width + 7 >> 3;\n    const combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator;\n    const buffer = this.buffer;\n    const mask0 = 128 >> (regionInfo.x & 7);\n    let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n    let i, j, mask, offset;\n\n    switch (combinationOperator) {\n      case 0:\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] |= mask;\n            }\n\n            mask >>= 1;\n\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n\n          offset0 += rowSize;\n        }\n\n        break;\n\n      case 2:\n        for (i = 0; i < height; i++) {\n          mask = mask0;\n          offset = offset0;\n\n          for (j = 0; j < width; j++) {\n            if (bitmap[i][j]) {\n              buffer[offset] ^= mask;\n            }\n\n            mask >>= 1;\n\n            if (!mask) {\n              mask = 128;\n              offset++;\n            }\n          }\n\n          offset0 += rowSize;\n        }\n\n        break;\n\n      default:\n        throw new Jbig2Error(`operator ${combinationOperator} is not supported`);\n    }\n  }\n\n  onImmediateGenericRegion(region, data, start, end) {\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext);\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessGenericRegion() {\n    this.onImmediateGenericRegion(...arguments);\n  }\n\n  onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) {\n    let huffmanTables, huffmanInput;\n\n    if (dictionary.huffman) {\n      huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables);\n      huffmanInput = new Reader(data, start, end);\n    }\n\n    let symbols = this.symbols;\n\n    if (!symbols) {\n      this.symbols = symbols = {};\n    }\n\n    const inputSymbols = [];\n\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput);\n  }\n\n  onImmediateTextRegion(region, referredSegments, data, start, end) {\n    const regionInfo = region.info;\n    let huffmanTables, huffmanInput;\n    const symbols = this.symbols;\n    const inputSymbols = [];\n\n    for (const referredSegment of referredSegments) {\n      const referredSymbols = symbols[referredSegment];\n\n      if (referredSymbols) {\n        inputSymbols.push(...referredSymbols);\n      }\n    }\n\n    const symbolCodeLength = (0, _core_utils.log2)(inputSymbols.length);\n\n    if (region.huffman) {\n      huffmanInput = new Reader(data, start, end);\n      huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput);\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    const 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, region.logStripSize, huffmanInput);\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessTextRegion() {\n    this.onImmediateTextRegion(...arguments);\n  }\n\n  onPatternDictionary(dictionary, currentSegment, data, start, end) {\n    let patterns = this.patterns;\n\n    if (!patterns) {\n      this.patterns = patterns = {};\n    }\n\n    const decodingContext = new DecodingContext(data, start, end);\n    patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n  }\n\n  onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n    const patterns = this.patterns[referredSegments[0]];\n    const regionInfo = region.info;\n    const decodingContext = new DecodingContext(data, start, end);\n    const bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);\n    this.drawBitmap(regionInfo, bitmap);\n  }\n\n  onImmediateLosslessHalftoneRegion() {\n    this.onImmediateHalftoneRegion(...arguments);\n  }\n\n  onTables(currentSegment, data, start, end) {\n    let customTables = this.customTables;\n\n    if (!customTables) {\n      this.customTables = customTables = {};\n    }\n\n    customTables[currentSegment] = decodeTablesSegment(data, start, end);\n  }\n\n}\n\nclass HuffmanLine {\n  constructor(lineData) {\n    if (lineData.length === 2) {\n      this.isOOB = true;\n      this.rangeLow = 0;\n      this.prefixLength = lineData[0];\n      this.rangeLength = 0;\n      this.prefixCode = lineData[1];\n      this.isLowerRange = false;\n    } else {\n      this.isOOB = false;\n      this.rangeLow = lineData[0];\n      this.prefixLength = lineData[1];\n      this.rangeLength = lineData[2];\n      this.prefixCode = lineData[3];\n      this.isLowerRange = lineData[4] === \"lower\";\n    }\n  }\n\n}\n\nclass HuffmanTreeNode {\n  constructor(line) {\n    this.children = [];\n\n    if (line) {\n      this.isLeaf = true;\n      this.rangeLength = line.rangeLength;\n      this.rangeLow = line.rangeLow;\n      this.isLowerRange = line.isLowerRange;\n      this.isOOB = line.isOOB;\n    } else {\n      this.isLeaf = false;\n    }\n  }\n\n  buildTree(line, shift) {\n    const bit = line.prefixCode >> shift & 1;\n\n    if (shift <= 0) {\n      this.children[bit] = new HuffmanTreeNode(line);\n    } else {\n      let node = this.children[bit];\n\n      if (!node) {\n        this.children[bit] = node = new HuffmanTreeNode(null);\n      }\n\n      node.buildTree(line, shift - 1);\n    }\n  }\n\n  decodeNode(reader) {\n    if (this.isLeaf) {\n      if (this.isOOB) {\n        return null;\n      }\n\n      const htOffset = reader.readBits(this.rangeLength);\n      return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n    }\n\n    const node = this.children[reader.readBit()];\n\n    if (!node) {\n      throw new Jbig2Error(\"invalid Huffman data\");\n    }\n\n    return node.decodeNode(reader);\n  }\n\n}\n\nclass HuffmanTable {\n  constructor(lines, prefixCodesDone) {\n    if (!prefixCodesDone) {\n      this.assignPrefixCodes(lines);\n    }\n\n    this.rootNode = new HuffmanTreeNode(null);\n\n    for (let i = 0, ii = lines.length; i < ii; i++) {\n      const line = lines[i];\n\n      if (line.prefixLength > 0) {\n        this.rootNode.buildTree(line, line.prefixLength - 1);\n      }\n    }\n  }\n\n  decode(reader) {\n    return this.rootNode.decodeNode(reader);\n  }\n\n  assignPrefixCodes(lines) {\n    const linesLength = lines.length;\n    let prefixLengthMax = 0;\n\n    for (let i = 0; i < linesLength; i++) {\n      prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n    }\n\n    const histogram = new Uint32Array(prefixLengthMax + 1);\n\n    for (let i = 0; i < linesLength; i++) {\n      histogram[lines[i].prefixLength]++;\n    }\n\n    let currentLength = 1,\n        firstCode = 0,\n        currentCode,\n        currentTemp,\n        line;\n    histogram[0] = 0;\n\n    while (currentLength <= prefixLengthMax) {\n      firstCode = firstCode + histogram[currentLength - 1] << 1;\n      currentCode = firstCode;\n      currentTemp = 0;\n\n      while (currentTemp < linesLength) {\n        line = lines[currentTemp];\n\n        if (line.prefixLength === currentLength) {\n          line.prefixCode = currentCode;\n          currentCode++;\n        }\n\n        currentTemp++;\n      }\n\n      currentLength++;\n    }\n  }\n\n}\n\nfunction decodeTablesSegment(data, start, end) {\n  const flags = data[start];\n  const lowestValue = (0, _core_utils.readUint32)(data, start + 1) & 0xffffffff;\n  const highestValue = (0, _core_utils.readUint32)(data, start + 5) & 0xffffffff;\n  const reader = new Reader(data, start + 9, end);\n  const prefixSizeBits = (flags >> 1 & 7) + 1;\n  const rangeSizeBits = (flags >> 4 & 7) + 1;\n  const lines = [];\n  let prefixLength,\n      rangeLength,\n      currentRangeLow = lowestValue;\n\n  do {\n    prefixLength = reader.readBits(prefixSizeBits);\n    rangeLength = reader.readBits(rangeSizeBits);\n    lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0]));\n    currentRangeLow += 1 << rangeLength;\n  } while (currentRangeLow < highestValue);\n\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n  prefixLength = reader.readBits(prefixSizeBits);\n  lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n  if (flags & 1) {\n    prefixLength = reader.readBits(prefixSizeBits);\n    lines.push(new HuffmanLine([prefixLength, 0]));\n  }\n\n  return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n  let table = standardTablesCache[number];\n\n  if (table) {\n    return table;\n  }\n\n  let lines;\n\n  switch (number) {\n    case 1:\n      lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]];\n      break;\n\n    case 2:\n      lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [75, 6, 32, 0x3e], [6, 0x3f]];\n      break;\n\n    case 3:\n      lines = [[-256, 8, 8, 0xfe], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xe], [11, 5, 6, 0x1e], [-257, 8, 32, 0xff, \"lower\"], [75, 7, 32, 0x7e], [6, 0x3e]];\n      break;\n\n    case 4:\n      lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [76, 5, 32, 0x1f]];\n      break;\n\n    case 5:\n      lines = [[-255, 7, 8, 0x7e], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xe], [12, 5, 6, 0x1e], [-256, 7, 32, 0x7f, \"lower\"], [76, 6, 32, 0x3e]];\n      break;\n\n    case 6:\n      lines = [[-2048, 5, 10, 0x1c], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xa], [-128, 5, 6, 0x1d], [-64, 5, 5, 0x1e], [-32, 4, 5, 0xb], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xc], [1024, 4, 10, 0xd], [-2049, 6, 32, 0x3e, \"lower\"], [2048, 6, 32, 0x3f]];\n      break;\n\n    case 7:\n      lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1a], [-64, 5, 5, 0x1b], [-32, 4, 5, 0xa], [0, 4, 5, 0xb], [32, 5, 5, 0x1c], [64, 5, 6, 0x1d], [128, 4, 7, 0xc], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1e, \"lower\"], [2048, 5, 32, 0x1f]];\n      break;\n\n    case 8:\n      lines = [[-15, 8, 3, 0xfc], [-7, 9, 1, 0x1fc], [-5, 8, 1, 0xfd], [-3, 9, 0, 0x1fd], [-2, 7, 0, 0x7c], [-1, 4, 0, 0xa], [0, 2, 1, 0x0], [2, 5, 0, 0x1a], [3, 6, 0, 0x3a], [4, 3, 4, 0x4], [20, 6, 1, 0x3b], [22, 4, 4, 0xb], [38, 4, 5, 0xc], [70, 5, 6, 0x1b], [134, 5, 7, 0x1c], [262, 6, 7, 0x3c], [390, 7, 8, 0x7d], [646, 6, 10, 0x3d], [-16, 9, 32, 0x1fe, \"lower\"], [1670, 9, 32, 0x1ff], [2, 0x1]];\n      break;\n\n    case 9:\n      lines = [[-31, 8, 4, 0xfc], [-15, 9, 2, 0x1fc], [-11, 8, 2, 0xfd], [-7, 9, 1, 0x1fd], [-5, 7, 1, 0x7c], [-3, 4, 1, 0xa], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1a], [5, 6, 1, 0x3a], [7, 3, 5, 0x4], [39, 6, 2, 0x3b], [43, 4, 5, 0xb], [75, 4, 6, 0xc], [139, 5, 7, 0x1b], [267, 5, 8, 0x1c], [523, 6, 8, 0x3c], [779, 7, 9, 0x7d], [1291, 6, 11, 0x3d], [-32, 9, 32, 0x1fe, \"lower\"], [3339, 9, 32, 0x1ff], [2, 0x0]];\n      break;\n\n    case 10:\n      lines = [[-21, 7, 4, 0x7a], [-5, 8, 0, 0xfc], [-4, 7, 0, 0x7b], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7c], [5, 8, 0, 0xfd], [6, 2, 6, 0x1], [70, 5, 5, 0x1a], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3a], [582, 6, 9, 0x3b], [1094, 6, 10, 0x3c], [2118, 7, 11, 0x7d], [-22, 8, 32, 0xfe, \"lower\"], [4166, 8, 32, 0xff], [2, 0x2]];\n      break;\n\n    case 11:\n      lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xc], [5, 4, 1, 0xd], [7, 5, 1, 0x1c], [9, 5, 2, 0x1d], [13, 6, 2, 0x3c], [17, 7, 2, 0x7a], [21, 7, 3, 0x7b], [29, 7, 4, 0x7c], [45, 7, 5, 0x7d], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n      break;\n\n    case 12:\n      lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1c], [6, 5, 1, 0x1d], [8, 6, 1, 0x3c], [10, 7, 0, 0x7a], [11, 7, 1, 0x7b], [13, 7, 2, 0x7c], [17, 7, 3, 0x7d], [25, 7, 4, 0x7e], [41, 8, 5, 0xfe], [73, 8, 32, 0xff]];\n      break;\n\n    case 13:\n      lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xc], [4, 5, 0, 0x1c], [5, 4, 1, 0xd], [7, 3, 3, 0x5], [15, 6, 1, 0x3a], [17, 6, 2, 0x3b], [21, 6, 3, 0x3c], [29, 6, 4, 0x3d], [45, 6, 5, 0x3e], [77, 7, 6, 0x7e], [141, 7, 32, 0x7f]];\n      break;\n\n    case 14:\n      lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]];\n      break;\n\n    case 15:\n      lines = [[-24, 7, 4, 0x7c], [-8, 6, 2, 0x3c], [-4, 5, 1, 0x1c], [-2, 4, 0, 0xc], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xd], [3, 5, 1, 0x1d], [5, 6, 2, 0x3d], [9, 7, 4, 0x7d], [-25, 7, 32, 0x7e, \"lower\"], [25, 7, 32, 0x7f]];\n      break;\n\n    default:\n      throw new Jbig2Error(`standard table B.${number} does not exist`);\n  }\n\n  for (let i = 0, ii = lines.length; i < ii; i++) {\n    lines[i] = new HuffmanLine(lines[i]);\n  }\n\n  table = new HuffmanTable(lines, true);\n  standardTablesCache[number] = table;\n  return table;\n}\n\nclass Reader {\n  constructor(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n    this.position = start;\n    this.shift = -1;\n    this.currentByte = 0;\n  }\n\n  readBit() {\n    if (this.shift < 0) {\n      if (this.position >= this.end) {\n        throw new Jbig2Error(\"end of data while reading bit\");\n      }\n\n      this.currentByte = this.data[this.position++];\n      this.shift = 7;\n    }\n\n    const bit = this.currentByte >> this.shift & 1;\n    this.shift--;\n    return bit;\n  }\n\n  readBits(numBits) {\n    let result = 0,\n        i;\n\n    for (i = numBits - 1; i >= 0; i--) {\n      result |= this.readBit() << i;\n    }\n\n    return result;\n  }\n\n  byteAlign() {\n    this.shift = -1;\n  }\n\n  next() {\n    if (this.position >= this.end) {\n      return -1;\n    }\n\n    return this.data[this.position++];\n  }\n\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n  let currentIndex = 0;\n\n  for (let i = 0, ii = referredTo.length; i < ii; i++) {\n    const table = customTables[referredTo[i]];\n\n    if (table) {\n      if (index === currentIndex) {\n        return table;\n      }\n\n      currentIndex++;\n    }\n  }\n\n  throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) {\n  const codes = [];\n\n  for (let i = 0; i <= 34; i++) {\n    const codeLength = reader.readBits(4);\n    codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n  }\n\n  const runCodesTable = new HuffmanTable(codes, false);\n  codes.length = 0;\n\n  for (let i = 0; i < numberOfSymbols;) {\n    const codeLength = runCodesTable.decode(reader);\n\n    if (codeLength >= 32) {\n      let repeatedLength, numberOfRepeats, j;\n\n      switch (codeLength) {\n        case 32:\n          if (i === 0) {\n            throw new Jbig2Error(\"no previous value in symbol ID table\");\n          }\n\n          numberOfRepeats = reader.readBits(2) + 3;\n          repeatedLength = codes[i - 1].prefixLength;\n          break;\n\n        case 33:\n          numberOfRepeats = reader.readBits(3) + 3;\n          repeatedLength = 0;\n          break;\n\n        case 34:\n          numberOfRepeats = reader.readBits(7) + 11;\n          repeatedLength = 0;\n          break;\n\n        default:\n          throw new Jbig2Error(\"invalid code length in symbol ID table\");\n      }\n\n      for (j = 0; j < numberOfRepeats; j++) {\n        codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n        i++;\n      }\n    } else {\n      codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n      i++;\n    }\n  }\n\n  reader.byteAlign();\n  const symbolIDTable = new HuffmanTable(codes, false);\n  let customIndex = 0,\n      tableFirstS,\n      tableDeltaS,\n      tableDeltaT;\n\n  switch (textRegion.huffmanFS) {\n    case 0:\n    case 1:\n      tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n      break;\n\n    case 3:\n      tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman FS selector\");\n  }\n\n  switch (textRegion.huffmanDS) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n      break;\n\n    case 3:\n      tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman DS selector\");\n  }\n\n  switch (textRegion.huffmanDT) {\n    case 0:\n    case 1:\n    case 2:\n      tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n      break;\n\n    case 3:\n      tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman DT selector\");\n  }\n\n  if (textRegion.refinement) {\n    throw new Jbig2Error(\"refinement with Huffman is not supported\");\n  }\n\n  return {\n    symbolIDTable,\n    tableFirstS,\n    tableDeltaS,\n    tableDeltaT\n  };\n}\n\nfunction getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) {\n  let customIndex = 0,\n      tableDeltaHeight,\n      tableDeltaWidth;\n\n  switch (dictionary.huffmanDHSelector) {\n    case 0:\n    case 1:\n      tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n      break;\n\n    case 3:\n      tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman DH selector\");\n  }\n\n  switch (dictionary.huffmanDWSelector) {\n    case 0:\n    case 1:\n      tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n      break;\n\n    case 3:\n      tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n      break;\n\n    default:\n      throw new Jbig2Error(\"invalid Huffman DW selector\");\n  }\n\n  let tableBitmapSize, tableAggregateInstances;\n\n  if (dictionary.bitmapSizeSelector) {\n    tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables);\n    customIndex++;\n  } else {\n    tableBitmapSize = getStandardTable(1);\n  }\n\n  if (dictionary.aggregationInstancesSelector) {\n    tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables);\n  } else {\n    tableAggregateInstances = getStandardTable(1);\n  }\n\n  return {\n    tableDeltaHeight,\n    tableDeltaWidth,\n    tableBitmapSize,\n    tableAggregateInstances\n  };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n  const bitmap = [];\n\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n\n    for (let x = 0; x < width; x++) {\n      row[x] = reader.readBit();\n    }\n\n    reader.byteAlign();\n  }\n\n  return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n  const params = {\n    K: -1,\n    Columns: width,\n    Rows: height,\n    BlackIs1: true,\n    EndOfBlock: endOfBlock\n  };\n  const decoder = new _ccitt.CCITTFaxDecoder(input, params);\n  const bitmap = [];\n  let currentByte,\n      eof = false;\n\n  for (let y = 0; y < height; y++) {\n    const row = new Uint8Array(width);\n    bitmap.push(row);\n    let shift = -1;\n\n    for (let x = 0; x < width; x++) {\n      if (shift < 0) {\n        currentByte = decoder.readNextChar();\n\n        if (currentByte === -1) {\n          currentByte = 0;\n          eof = true;\n        }\n\n        shift = 7;\n      }\n\n      row[x] = currentByte >> shift & 1;\n      shift--;\n    }\n  }\n\n  if (endOfBlock && !eof) {\n    const lookForEOFLimit = 5;\n\n    for (let i = 0; i < lookForEOFLimit; i++) {\n      if (decoder.readNextChar() === -1) {\n        break;\n      }\n    }\n  }\n\n  return bitmap;\n}\n\nclass Jbig2Image {\n  parseChunks(chunks) {\n    return parseJbig2Chunks(chunks);\n  }\n\n  parse(data) {\n    throw new Error(\"Not implemented: Jbig2Image.parse\");\n  }\n\n}\n\nexports.Jbig2Image = Jbig2Image;\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ArithmeticDecoder = void 0;\nconst QeTable = [{\n  qe: 0x5601,\n  nmps: 1,\n  nlps: 1,\n  switchFlag: 1\n}, {\n  qe: 0x3401,\n  nmps: 2,\n  nlps: 6,\n  switchFlag: 0\n}, {\n  qe: 0x1801,\n  nmps: 3,\n  nlps: 9,\n  switchFlag: 0\n}, {\n  qe: 0x0ac1,\n  nmps: 4,\n  nlps: 12,\n  switchFlag: 0\n}, {\n  qe: 0x0521,\n  nmps: 5,\n  nlps: 29,\n  switchFlag: 0\n}, {\n  qe: 0x0221,\n  nmps: 38,\n  nlps: 33,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 7,\n  nlps: 6,\n  switchFlag: 1\n}, {\n  qe: 0x5401,\n  nmps: 8,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x4801,\n  nmps: 9,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x3801,\n  nmps: 10,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x3001,\n  nmps: 11,\n  nlps: 17,\n  switchFlag: 0\n}, {\n  qe: 0x2401,\n  nmps: 12,\n  nlps: 18,\n  switchFlag: 0\n}, {\n  qe: 0x1c01,\n  nmps: 13,\n  nlps: 20,\n  switchFlag: 0\n}, {\n  qe: 0x1601,\n  nmps: 29,\n  nlps: 21,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 15,\n  nlps: 14,\n  switchFlag: 1\n}, {\n  qe: 0x5401,\n  nmps: 16,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x5101,\n  nmps: 17,\n  nlps: 15,\n  switchFlag: 0\n}, {\n  qe: 0x4801,\n  nmps: 18,\n  nlps: 16,\n  switchFlag: 0\n}, {\n  qe: 0x3801,\n  nmps: 19,\n  nlps: 17,\n  switchFlag: 0\n}, {\n  qe: 0x3401,\n  nmps: 20,\n  nlps: 18,\n  switchFlag: 0\n}, {\n  qe: 0x3001,\n  nmps: 21,\n  nlps: 19,\n  switchFlag: 0\n}, {\n  qe: 0x2801,\n  nmps: 22,\n  nlps: 19,\n  switchFlag: 0\n}, {\n  qe: 0x2401,\n  nmps: 23,\n  nlps: 20,\n  switchFlag: 0\n}, {\n  qe: 0x2201,\n  nmps: 24,\n  nlps: 21,\n  switchFlag: 0\n}, {\n  qe: 0x1c01,\n  nmps: 25,\n  nlps: 22,\n  switchFlag: 0\n}, {\n  qe: 0x1801,\n  nmps: 26,\n  nlps: 23,\n  switchFlag: 0\n}, {\n  qe: 0x1601,\n  nmps: 27,\n  nlps: 24,\n  switchFlag: 0\n}, {\n  qe: 0x1401,\n  nmps: 28,\n  nlps: 25,\n  switchFlag: 0\n}, {\n  qe: 0x1201,\n  nmps: 29,\n  nlps: 26,\n  switchFlag: 0\n}, {\n  qe: 0x1101,\n  nmps: 30,\n  nlps: 27,\n  switchFlag: 0\n}, {\n  qe: 0x0ac1,\n  nmps: 31,\n  nlps: 28,\n  switchFlag: 0\n}, {\n  qe: 0x09c1,\n  nmps: 32,\n  nlps: 29,\n  switchFlag: 0\n}, {\n  qe: 0x08a1,\n  nmps: 33,\n  nlps: 30,\n  switchFlag: 0\n}, {\n  qe: 0x0521,\n  nmps: 34,\n  nlps: 31,\n  switchFlag: 0\n}, {\n  qe: 0x0441,\n  nmps: 35,\n  nlps: 32,\n  switchFlag: 0\n}, {\n  qe: 0x02a1,\n  nmps: 36,\n  nlps: 33,\n  switchFlag: 0\n}, {\n  qe: 0x0221,\n  nmps: 37,\n  nlps: 34,\n  switchFlag: 0\n}, {\n  qe: 0x0141,\n  nmps: 38,\n  nlps: 35,\n  switchFlag: 0\n}, {\n  qe: 0x0111,\n  nmps: 39,\n  nlps: 36,\n  switchFlag: 0\n}, {\n  qe: 0x0085,\n  nmps: 40,\n  nlps: 37,\n  switchFlag: 0\n}, {\n  qe: 0x0049,\n  nmps: 41,\n  nlps: 38,\n  switchFlag: 0\n}, {\n  qe: 0x0025,\n  nmps: 42,\n  nlps: 39,\n  switchFlag: 0\n}, {\n  qe: 0x0015,\n  nmps: 43,\n  nlps: 40,\n  switchFlag: 0\n}, {\n  qe: 0x0009,\n  nmps: 44,\n  nlps: 41,\n  switchFlag: 0\n}, {\n  qe: 0x0005,\n  nmps: 45,\n  nlps: 42,\n  switchFlag: 0\n}, {\n  qe: 0x0001,\n  nmps: 45,\n  nlps: 43,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 46,\n  nlps: 46,\n  switchFlag: 0\n}];\n\nclass ArithmeticDecoder {\n  constructor(data, start, end) {\n    this.data = data;\n    this.bp = start;\n    this.dataEnd = end;\n    this.chigh = data[start];\n    this.clow = 0;\n    this.byteIn();\n    this.chigh = this.chigh << 7 & 0xffff | this.clow >> 9 & 0x7f;\n    this.clow = this.clow << 7 & 0xffff;\n    this.ct -= 7;\n    this.a = 0x8000;\n  }\n\n  byteIn() {\n    const data = this.data;\n    let bp = this.bp;\n\n    if (data[bp] === 0xff) {\n      if (data[bp + 1] > 0x8f) {\n        this.clow += 0xff00;\n        this.ct = 8;\n      } else {\n        bp++;\n        this.clow += data[bp] << 9;\n        this.ct = 7;\n        this.bp = bp;\n      }\n    } else {\n      bp++;\n      this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n      this.ct = 8;\n      this.bp = bp;\n    }\n\n    if (this.clow > 0xffff) {\n      this.chigh += this.clow >> 16;\n      this.clow &= 0xffff;\n    }\n  }\n\n  readBit(contexts, pos) {\n    let cx_index = contexts[pos] >> 1,\n        cx_mps = contexts[pos] & 1;\n    const qeTableIcx = QeTable[cx_index];\n    const qeIcx = qeTableIcx.qe;\n    let d;\n    let a = this.a - qeIcx;\n\n    if (this.chigh < qeIcx) {\n      if (a < qeIcx) {\n        a = qeIcx;\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      } else {\n        a = qeIcx;\n        d = 1 ^ cx_mps;\n\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n\n        cx_index = qeTableIcx.nlps;\n      }\n    } else {\n      this.chigh -= qeIcx;\n\n      if ((a & 0x8000) !== 0) {\n        this.a = a;\n        return cx_mps;\n      }\n\n      if (a < qeIcx) {\n        d = 1 ^ cx_mps;\n\n        if (qeTableIcx.switchFlag === 1) {\n          cx_mps = d;\n        }\n\n        cx_index = qeTableIcx.nlps;\n      } else {\n        d = cx_mps;\n        cx_index = qeTableIcx.nmps;\n      }\n    }\n\n    do {\n      if (this.ct === 0) {\n        this.byteIn();\n      }\n\n      a <<= 1;\n      this.chigh = this.chigh << 1 & 0xffff | this.clow >> 15 & 1;\n      this.clow = this.clow << 1 & 0xffff;\n      this.ct--;\n    } while ((a & 0x8000) === 0);\n\n    this.a = a;\n    contexts[pos] = cx_index << 1 | cx_mps;\n    return d;\n  }\n\n}\n\nexports.ArithmeticDecoder = ArithmeticDecoder;\n\n/***/ }),\n/* 27 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.JpegStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _jpg = __w_pdfjs_require__(28);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass JpegStream extends _decode_stream.DecodeStream {\n  constructor(stream, maybeLength, params) {\n    let ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === 0xff) {\n        stream.skip(-1);\n        break;\n      }\n    }\n\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n\n  get bytes() {\n    return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n\n  ensureBuffer(requested) {}\n\n  readBlock() {\n    if (this.eof) {\n      return;\n    }\n\n    const jpegOptions = {\n      decodeTransform: undefined,\n      colorTransform: undefined\n    };\n    const decodeArr = this.dict.getArray(\"D\", \"Decode\");\n\n    if (this.forceRGB && Array.isArray(decodeArr)) {\n      const bitsPerComponent = this.dict.get(\"BPC\", \"BitsPerComponent\") || 8;\n      const decodeArrLength = decodeArr.length;\n      const transform = new Int32Array(decodeArrLength);\n      let transformNeeded = false;\n      const maxValue = (1 << bitsPerComponent) - 1;\n\n      for (let i = 0; i < decodeArrLength; i += 2) {\n        transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n        transform[i + 1] = decodeArr[i] * maxValue | 0;\n\n        if (transform[i] !== 256 || transform[i + 1] !== 0) {\n          transformNeeded = true;\n        }\n      }\n\n      if (transformNeeded) {\n        jpegOptions.decodeTransform = transform;\n      }\n    }\n\n    if (this.params instanceof _primitives.Dict) {\n      const colorTransform = this.params.get(\"ColorTransform\");\n\n      if (Number.isInteger(colorTransform)) {\n        jpegOptions.colorTransform = colorTransform;\n      }\n    }\n\n    const jpegImage = new _jpg.JpegImage(jpegOptions);\n    jpegImage.parse(this.bytes);\n    const data = jpegImage.getData({\n      width: this.drawWidth,\n      height: this.drawHeight,\n      forceRGB: this.forceRGB,\n      isSourcePDF: true\n    });\n    this.buffer = data;\n    this.bufferLength = data.length;\n    this.eof = true;\n  }\n\n}\n\nexports.JpegStream = JpegStream;\n\n/***/ }),\n/* 28 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.JpegImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nclass JpegError extends _util.BaseException {\n  constructor(msg) {\n    super(`JPEG error: ${msg}`, \"JpegError\");\n  }\n\n}\n\nclass DNLMarkerError extends _util.BaseException {\n  constructor(message, scanLines) {\n    super(message, \"DNLMarkerError\");\n    this.scanLines = scanLines;\n  }\n\n}\n\nclass EOIMarkerError extends _util.BaseException {\n  constructor(msg) {\n    super(msg, \"EOIMarkerError\");\n  }\n\n}\n\nconst 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]);\nconst dctCos1 = 4017;\nconst dctSin1 = 799;\nconst dctCos3 = 3406;\nconst dctSin3 = 2276;\nconst dctCos6 = 1567;\nconst dctSin6 = 3784;\nconst dctSqrt2 = 5793;\nconst dctSqrt1d2 = 2896;\n\nfunction buildHuffmanTable(codeLengths, values) {\n  let k = 0,\n      i,\n      j,\n      length = 16;\n\n  while (length > 0 && !codeLengths[length - 1]) {\n    length--;\n  }\n\n  const code = [{\n    children: [],\n    index: 0\n  }];\n  let p = code[0],\n      q;\n\n  for (i = 0; i < length; i++) {\n    for (j = 0; j < codeLengths[i]; j++) {\n      p = code.pop();\n      p.children[p.index] = values[k];\n\n      while (p.index > 0) {\n        p = code.pop();\n      }\n\n      p.index++;\n      code.push(p);\n\n      while (code.length <= i) {\n        code.push(q = {\n          children: [],\n          index: 0\n        });\n        p.children[p.index] = q.children;\n        p = q;\n      }\n\n      k++;\n    }\n\n    if (i + 1 < length) {\n      code.push(q = {\n        children: [],\n        index: 0\n      });\n      p.children[p.index] = q.children;\n      p = q;\n    }\n  }\n\n  return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n  return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) {\n  const mcusPerLine = frame.mcusPerLine;\n  const progressive = frame.progressive;\n  const startOffset = offset;\n  let bitsData = 0,\n      bitsCount = 0;\n\n  function readBit() {\n    if (bitsCount > 0) {\n      bitsCount--;\n      return bitsData >> bitsCount & 1;\n    }\n\n    bitsData = data[offset++];\n\n    if (bitsData === 0xff) {\n      const nextByte = data[offset++];\n\n      if (nextByte) {\n        if (nextByte === 0xdc && parseDNLMarker) {\n          offset += 2;\n          const scanLines = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n\n          if (scanLines > 0 && scanLines !== frame.scanLines) {\n            throw new DNLMarkerError(\"Found DNL marker (0xFFDC) while parsing scan data\", scanLines);\n          }\n        } else if (nextByte === 0xd9) {\n          if (parseDNLMarker) {\n            const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n\n            if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 10) {\n              throw new DNLMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data, \" + \"possibly caused by incorrect `scanLines` parameter\", maybeScanLines);\n            }\n          }\n\n          throw new EOIMarkerError(\"Found EOI marker (0xFFD9) while parsing scan data\");\n        }\n\n        throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`);\n      }\n    }\n\n    bitsCount = 7;\n    return bitsData >>> 7;\n  }\n\n  function decodeHuffman(tree) {\n    let node = tree;\n\n    while (true) {\n      node = node[readBit()];\n\n      switch (typeof node) {\n        case \"number\":\n          return node;\n\n        case \"object\":\n          continue;\n      }\n\n      throw new JpegError(\"invalid huffman sequence\");\n    }\n  }\n\n  function receive(length) {\n    let n = 0;\n\n    while (length > 0) {\n      n = n << 1 | readBit();\n      length--;\n    }\n\n    return n;\n  }\n\n  function receiveAndExtend(length) {\n    if (length === 1) {\n      return readBit() === 1 ? 1 : -1;\n    }\n\n    const n = receive(length);\n\n    if (n >= 1 << length - 1) {\n      return n;\n    }\n\n    return n + (-1 << length) + 1;\n  }\n\n  function decodeBaseline(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t);\n    component.blockData[blockOffset] = component.pred += diff;\n    let k = 1;\n\n    while (k < 64) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n            r = rs >> 4;\n\n      if (s === 0) {\n        if (r < 15) {\n          break;\n        }\n\n        k += 16;\n        continue;\n      }\n\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] = receiveAndExtend(s);\n      k++;\n    }\n  }\n\n  function decodeDCFirst(component, blockOffset) {\n    const t = decodeHuffman(component.huffmanTableDC);\n    const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n    component.blockData[blockOffset] = component.pred += diff;\n  }\n\n  function decodeDCSuccessive(component, blockOffset) {\n    component.blockData[blockOffset] |= readBit() << successive;\n  }\n\n  let eobrun = 0;\n\n  function decodeACFirst(component, blockOffset) {\n    if (eobrun > 0) {\n      eobrun--;\n      return;\n    }\n\n    let k = spectralStart;\n    const e = spectralEnd;\n\n    while (k <= e) {\n      const rs = decodeHuffman(component.huffmanTableAC);\n      const s = rs & 15,\n            r = rs >> 4;\n\n      if (s === 0) {\n        if (r < 15) {\n          eobrun = receive(r) + (1 << r) - 1;\n          break;\n        }\n\n        k += 16;\n        continue;\n      }\n\n      k += r;\n      const z = dctZigZag[k];\n      component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive);\n      k++;\n    }\n  }\n\n  let successiveACState = 0,\n      successiveACNextValue;\n\n  function decodeACSuccessive(component, blockOffset) {\n    let k = spectralStart;\n    const e = spectralEnd;\n    let r = 0;\n    let s;\n    let rs;\n\n    while (k <= e) {\n      const offsetZ = blockOffset + dctZigZag[k];\n      const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n\n      switch (successiveACState) {\n        case 0:\n          rs = decodeHuffman(component.huffmanTableAC);\n          s = rs & 15;\n          r = rs >> 4;\n\n          if (s === 0) {\n            if (r < 15) {\n              eobrun = receive(r) + (1 << r);\n              successiveACState = 4;\n            } else {\n              r = 16;\n              successiveACState = 1;\n            }\n          } else {\n            if (s !== 1) {\n              throw new JpegError(\"invalid ACn encoding\");\n            }\n\n            successiveACNextValue = receiveAndExtend(s);\n            successiveACState = r ? 2 : 3;\n          }\n\n          continue;\n\n        case 1:\n        case 2:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            r--;\n\n            if (r === 0) {\n              successiveACState = successiveACState === 2 ? 3 : 0;\n            }\n          }\n\n          break;\n\n        case 3:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          } else {\n            component.blockData[offsetZ] = successiveACNextValue << successive;\n            successiveACState = 0;\n          }\n\n          break;\n\n        case 4:\n          if (component.blockData[offsetZ]) {\n            component.blockData[offsetZ] += sign * (readBit() << successive);\n          }\n\n          break;\n      }\n\n      k++;\n    }\n\n    if (successiveACState === 4) {\n      eobrun--;\n\n      if (eobrun === 0) {\n        successiveACState = 0;\n      }\n    }\n  }\n\n  let blockRow = 0;\n\n  function decodeMcu(component, decode, mcu, row, col) {\n    const mcuRow = mcu / mcusPerLine | 0;\n    const mcuCol = mcu % mcusPerLine;\n    blockRow = mcuRow * component.v + row;\n    const blockCol = mcuCol * component.h + col;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  function decodeBlock(component, decode, mcu) {\n    blockRow = mcu / component.blocksPerLine | 0;\n    const blockCol = mcu % component.blocksPerLine;\n    const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n    decode(component, blockOffset);\n  }\n\n  const componentsLength = components.length;\n  let component, i, j, k, n;\n  let decodeFn;\n\n  if (progressive) {\n    if (spectralStart === 0) {\n      decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n    } else {\n      decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n    }\n  } else {\n    decodeFn = decodeBaseline;\n  }\n\n  let mcu = 0,\n      fileMarker;\n  let mcuExpected;\n\n  if (componentsLength === 1) {\n    mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n  } else {\n    mcuExpected = mcusPerLine * frame.mcusPerColumn;\n  }\n\n  let h, v;\n\n  while (mcu <= mcuExpected) {\n    const mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n\n    if (mcuToRead > 0) {\n      for (i = 0; i < componentsLength; i++) {\n        components[i].pred = 0;\n      }\n\n      eobrun = 0;\n\n      if (componentsLength === 1) {\n        component = components[0];\n\n        for (n = 0; n < mcuToRead; n++) {\n          decodeBlock(component, decodeFn, mcu);\n          mcu++;\n        }\n      } else {\n        for (n = 0; n < mcuToRead; n++) {\n          for (i = 0; i < componentsLength; i++) {\n            component = components[i];\n            h = component.h;\n            v = component.v;\n\n            for (j = 0; j < v; j++) {\n              for (k = 0; k < h; k++) {\n                decodeMcu(component, decodeFn, mcu, j, k);\n              }\n            }\n          }\n\n          mcu++;\n        }\n      }\n    }\n\n    bitsCount = 0;\n    fileMarker = findNextFileMarker(data, offset);\n\n    if (!fileMarker) {\n      break;\n    }\n\n    if (fileMarker.invalid) {\n      const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n      (0, _util.warn)(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);\n      offset = fileMarker.offset;\n    }\n\n    if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n      offset += 2;\n    } else {\n      break;\n    }\n  }\n\n  return offset - startOffset;\n}\n\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n  const qt = component.quantizationTable,\n        blockData = component.blockData;\n  let v0, v1, v2, v3, v4, v5, v6, v7;\n  let p0, p1, p2, p3, p4, p5, p6, p7;\n  let t;\n\n  if (!qt) {\n    throw new JpegError(\"missing required Quantization Table.\");\n  }\n\n  for (let row = 0; row < 64; row += 8) {\n    p0 = blockData[blockBufferOffset + row];\n    p1 = blockData[blockBufferOffset + row + 1];\n    p2 = blockData[blockBufferOffset + row + 2];\n    p3 = blockData[blockBufferOffset + row + 3];\n    p4 = blockData[blockBufferOffset + row + 4];\n    p5 = blockData[blockBufferOffset + row + 5];\n    p6 = blockData[blockBufferOffset + row + 6];\n    p7 = blockData[blockBufferOffset + row + 7];\n    p0 *= qt[row];\n\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = dctSqrt2 * p0 + 512 >> 10;\n      p[row] = t;\n      p[row + 1] = t;\n      p[row + 2] = t;\n      p[row + 3] = t;\n      p[row + 4] = t;\n      p[row + 5] = t;\n      p[row + 6] = t;\n      p[row + 7] = t;\n      continue;\n    }\n\n    p1 *= qt[row + 1];\n    p2 *= qt[row + 2];\n    p3 *= qt[row + 3];\n    p4 *= qt[row + 4];\n    p5 *= qt[row + 5];\n    p6 *= qt[row + 6];\n    p7 *= qt[row + 7];\n    v0 = dctSqrt2 * p0 + 128 >> 8;\n    v1 = dctSqrt2 * p4 + 128 >> 8;\n    v2 = p2;\n    v3 = p6;\n    v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;\n    v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;\n    v5 = p3 << 4;\n    v6 = p5 << 4;\n    v0 = v0 + v1 + 1 >> 1;\n    v1 = v0 - v1;\n    t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n    v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n    v3 = t;\n    v4 = v4 + v6 + 1 >> 1;\n    v6 = v4 - v6;\n    v7 = v7 + v5 + 1 >> 1;\n    v5 = v7 - v5;\n    v0 = v0 + v3 + 1 >> 1;\n    v3 = v0 - v3;\n    v1 = v1 + v2 + 1 >> 1;\n    v2 = v1 - v2;\n    t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n    v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n    v7 = t;\n    t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n    v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n    v6 = t;\n    p[row] = v0 + v7;\n    p[row + 7] = v0 - v7;\n    p[row + 1] = v1 + v6;\n    p[row + 6] = v1 - v6;\n    p[row + 2] = v2 + v5;\n    p[row + 5] = v2 - v5;\n    p[row + 3] = v3 + v4;\n    p[row + 4] = v3 - v4;\n  }\n\n  for (let col = 0; col < 8; ++col) {\n    p0 = p[col];\n    p1 = p[col + 8];\n    p2 = p[col + 16];\n    p3 = p[col + 24];\n    p4 = p[col + 32];\n    p5 = p[col + 40];\n    p6 = p[col + 48];\n    p7 = p[col + 56];\n\n    if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n      t = dctSqrt2 * p0 + 8192 >> 14;\n\n      if (t < -2040) {\n        t = 0;\n      } else if (t >= 2024) {\n        t = 255;\n      } else {\n        t = t + 2056 >> 4;\n      }\n\n      blockData[blockBufferOffset + col] = t;\n      blockData[blockBufferOffset + col + 8] = t;\n      blockData[blockBufferOffset + col + 16] = t;\n      blockData[blockBufferOffset + col + 24] = t;\n      blockData[blockBufferOffset + col + 32] = t;\n      blockData[blockBufferOffset + col + 40] = t;\n      blockData[blockBufferOffset + col + 48] = t;\n      blockData[blockBufferOffset + col + 56] = t;\n      continue;\n    }\n\n    v0 = dctSqrt2 * p0 + 2048 >> 12;\n    v1 = dctSqrt2 * p4 + 2048 >> 12;\n    v2 = p2;\n    v3 = p6;\n    v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;\n    v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;\n    v5 = p3;\n    v6 = p5;\n    v0 = (v0 + v1 + 1 >> 1) + 4112;\n    v1 = v0 - v1;\n    t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n    v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n    v3 = t;\n    v4 = v4 + v6 + 1 >> 1;\n    v6 = v4 - v6;\n    v7 = v7 + v5 + 1 >> 1;\n    v5 = v7 - v5;\n    v0 = v0 + v3 + 1 >> 1;\n    v3 = v0 - v3;\n    v1 = v1 + v2 + 1 >> 1;\n    v2 = v1 - v2;\n    t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n    v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n    v7 = t;\n    t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n    v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n    v6 = t;\n    p0 = v0 + v7;\n    p7 = v0 - v7;\n    p1 = v1 + v6;\n    p6 = v1 - v6;\n    p2 = v2 + v5;\n    p5 = v2 - v5;\n    p3 = v3 + v4;\n    p4 = v3 - v4;\n\n    if (p0 < 16) {\n      p0 = 0;\n    } else if (p0 >= 4080) {\n      p0 = 255;\n    } else {\n      p0 >>= 4;\n    }\n\n    if (p1 < 16) {\n      p1 = 0;\n    } else if (p1 >= 4080) {\n      p1 = 255;\n    } else {\n      p1 >>= 4;\n    }\n\n    if (p2 < 16) {\n      p2 = 0;\n    } else if (p2 >= 4080) {\n      p2 = 255;\n    } else {\n      p2 >>= 4;\n    }\n\n    if (p3 < 16) {\n      p3 = 0;\n    } else if (p3 >= 4080) {\n      p3 = 255;\n    } else {\n      p3 >>= 4;\n    }\n\n    if (p4 < 16) {\n      p4 = 0;\n    } else if (p4 >= 4080) {\n      p4 = 255;\n    } else {\n      p4 >>= 4;\n    }\n\n    if (p5 < 16) {\n      p5 = 0;\n    } else if (p5 >= 4080) {\n      p5 = 255;\n    } else {\n      p5 >>= 4;\n    }\n\n    if (p6 < 16) {\n      p6 = 0;\n    } else if (p6 >= 4080) {\n      p6 = 255;\n    } else {\n      p6 >>= 4;\n    }\n\n    if (p7 < 16) {\n      p7 = 0;\n    } else if (p7 >= 4080) {\n      p7 = 255;\n    } else {\n      p7 >>= 4;\n    }\n\n    blockData[blockBufferOffset + col] = p0;\n    blockData[blockBufferOffset + col + 8] = p1;\n    blockData[blockBufferOffset + col + 16] = p2;\n    blockData[blockBufferOffset + col + 24] = p3;\n    blockData[blockBufferOffset + col + 32] = p4;\n    blockData[blockBufferOffset + col + 40] = p5;\n    blockData[blockBufferOffset + col + 48] = p6;\n    blockData[blockBufferOffset + col + 56] = p7;\n  }\n}\n\nfunction buildComponentData(frame, component) {\n  const blocksPerLine = component.blocksPerLine;\n  const blocksPerColumn = component.blocksPerColumn;\n  const computationBuffer = new Int16Array(64);\n\n  for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n    for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n      const offset = getBlockBufferOffset(component, blockRow, blockCol);\n      quantizeAndInverse(component, offset, computationBuffer);\n    }\n  }\n\n  return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n  const maxPos = data.length - 1;\n  let newPos = startPos < currentPos ? startPos : currentPos;\n\n  if (currentPos >= maxPos) {\n    return null;\n  }\n\n  const currentMarker = (0, _core_utils.readUint16)(data, currentPos);\n\n  if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n    return {\n      invalid: null,\n      marker: currentMarker,\n      offset: currentPos\n    };\n  }\n\n  let newMarker = (0, _core_utils.readUint16)(data, newPos);\n\n  while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n    if (++newPos >= maxPos) {\n      return null;\n    }\n\n    newMarker = (0, _core_utils.readUint16)(data, newPos);\n  }\n\n  return {\n    invalid: currentMarker.toString(16),\n    marker: newMarker,\n    offset: newPos\n  };\n}\n\nclass JpegImage {\n  constructor({\n    decodeTransform = null,\n    colorTransform = -1\n  } = {}) {\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\n\n  parse(data, {\n    dnlScanLines = null\n  } = {}) {\n    function readDataBlock() {\n      const length = (0, _core_utils.readUint16)(data, offset);\n      offset += 2;\n      let endOffset = offset + length - 2;\n      const fileMarker = findNextFileMarker(data, endOffset, offset);\n\n      if (fileMarker && fileMarker.invalid) {\n        (0, _util.warn)(\"readDataBlock - incorrect length, current marker is: \" + fileMarker.invalid);\n        endOffset = fileMarker.offset;\n      }\n\n      const array = data.subarray(offset, endOffset);\n      offset += array.length;\n      return array;\n    }\n\n    function prepareComponents(frame) {\n      const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n      const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n\n      for (let i = 0, ii = frame.components.length; i < ii; i++) {\n        const component = frame.components[i];\n        const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n        const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n        const blocksPerLineForMcu = mcusPerLine * component.h;\n        const blocksPerColumnForMcu = mcusPerColumn * component.v;\n        const blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n        component.blockData = new Int16Array(blocksBufferSize);\n        component.blocksPerLine = blocksPerLine;\n        component.blocksPerColumn = blocksPerColumn;\n      }\n\n      frame.mcusPerLine = mcusPerLine;\n      frame.mcusPerColumn = mcusPerColumn;\n    }\n\n    let offset = 0;\n    let jfif = null;\n    let adobe = null;\n    let frame, resetInterval;\n    let numSOSMarkers = 0;\n    const quantizationTables = [];\n    const huffmanTablesAC = [],\n          huffmanTablesDC = [];\n    let fileMarker = (0, _core_utils.readUint16)(data, offset);\n    offset += 2;\n\n    if (fileMarker !== 0xffd8) {\n      throw new JpegError(\"SOI not found\");\n    }\n\n    fileMarker = (0, _core_utils.readUint16)(data, offset);\n    offset += 2;\n\n    markerLoop: while (fileMarker !== 0xffd9) {\n      let i, j, l;\n\n      switch (fileMarker) {\n        case 0xffe0:\n        case 0xffe1:\n        case 0xffe2:\n        case 0xffe3:\n        case 0xffe4:\n        case 0xffe5:\n        case 0xffe6:\n        case 0xffe7:\n        case 0xffe8:\n        case 0xffe9:\n        case 0xffea:\n        case 0xffeb:\n        case 0xffec:\n        case 0xffed:\n        case 0xffee:\n        case 0xffef:\n        case 0xfffe:\n          const appData = readDataBlock();\n\n          if (fileMarker === 0xffe0) {\n            if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n              jfif = {\n                version: {\n                  major: appData[5],\n                  minor: appData[6]\n                },\n                densityUnits: appData[7],\n                xDensity: appData[8] << 8 | appData[9],\n                yDensity: appData[10] << 8 | appData[11],\n                thumbWidth: appData[12],\n                thumbHeight: appData[13],\n                thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n              };\n            }\n          }\n\n          if (fileMarker === 0xffee) {\n            if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) {\n              adobe = {\n                version: appData[5] << 8 | appData[6],\n                flags0: appData[7] << 8 | appData[8],\n                flags1: appData[9] << 8 | appData[10],\n                transformCode: appData[11]\n              };\n            }\n          }\n\n          break;\n\n        case 0xffdb:\n          const quantizationTablesLength = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n          const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n          let z;\n\n          while (offset < quantizationTablesEnd) {\n            const quantizationTableSpec = data[offset++];\n            const tableData = new Uint16Array(64);\n\n            if (quantizationTableSpec >> 4 === 0) {\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = data[offset++];\n              }\n            } else if (quantizationTableSpec >> 4 === 1) {\n              for (j = 0; j < 64; j++) {\n                z = dctZigZag[j];\n                tableData[z] = (0, _core_utils.readUint16)(data, offset);\n                offset += 2;\n              }\n            } else {\n              throw new JpegError(\"DQT - invalid table spec\");\n            }\n\n            quantizationTables[quantizationTableSpec & 15] = tableData;\n          }\n\n          break;\n\n        case 0xffc0:\n        case 0xffc1:\n        case 0xffc2:\n          if (frame) {\n            throw new JpegError(\"Only single frame JPEGs supported\");\n          }\n\n          offset += 2;\n          frame = {};\n          frame.extended = fileMarker === 0xffc1;\n          frame.progressive = fileMarker === 0xffc2;\n          frame.precision = data[offset++];\n          const sofScanLines = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n          frame.scanLines = dnlScanLines || sofScanLines;\n          frame.samplesPerLine = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n          frame.components = [];\n          frame.componentIds = {};\n          const componentsCount = data[offset++];\n          let maxH = 0,\n              maxV = 0;\n\n          for (i = 0; i < componentsCount; i++) {\n            const componentId = data[offset];\n            const h = data[offset + 1] >> 4;\n            const v = data[offset + 1] & 15;\n\n            if (maxH < h) {\n              maxH = h;\n            }\n\n            if (maxV < v) {\n              maxV = v;\n            }\n\n            const qId = data[offset + 2];\n            l = frame.components.push({\n              h,\n              v,\n              quantizationId: qId,\n              quantizationTable: null\n            });\n            frame.componentIds[componentId] = l - 1;\n            offset += 3;\n          }\n\n          frame.maxH = maxH;\n          frame.maxV = maxV;\n          prepareComponents(frame);\n          break;\n\n        case 0xffc4:\n          const huffmanLength = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n\n          for (i = 2; i < huffmanLength;) {\n            const huffmanTableSpec = data[offset++];\n            const codeLengths = new Uint8Array(16);\n            let codeLengthSum = 0;\n\n            for (j = 0; j < 16; j++, offset++) {\n              codeLengthSum += codeLengths[j] = data[offset];\n            }\n\n            const huffmanValues = new Uint8Array(codeLengthSum);\n\n            for (j = 0; j < codeLengthSum; j++, offset++) {\n              huffmanValues[j] = data[offset];\n            }\n\n            i += 17 + codeLengthSum;\n            (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n          }\n\n          break;\n\n        case 0xffdd:\n          offset += 2;\n          resetInterval = (0, _core_utils.readUint16)(data, offset);\n          offset += 2;\n          break;\n\n        case 0xffda:\n          const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n          offset += 2;\n          const selectorsCount = data[offset++],\n                components = [];\n\n          for (i = 0; i < selectorsCount; i++) {\n            const index = data[offset++];\n            const componentIndex = frame.componentIds[index];\n            const component = frame.components[componentIndex];\n            component.index = index;\n            const tableSpec = data[offset++];\n            component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n            component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n            components.push(component);\n          }\n\n          const spectralStart = data[offset++],\n                spectralEnd = data[offset++],\n                successiveApproximation = data[offset++];\n\n          try {\n            const processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);\n            offset += processed;\n          } catch (ex) {\n            if (ex instanceof DNLMarkerError) {\n              (0, _util.warn)(`${ex.message} -- attempting to re-parse the JPEG image.`);\n              return this.parse(data, {\n                dnlScanLines: ex.scanLines\n              });\n            } else if (ex instanceof EOIMarkerError) {\n              (0, _util.warn)(`${ex.message} -- ignoring the rest of the image data.`);\n              break markerLoop;\n            }\n\n            throw ex;\n          }\n\n          break;\n\n        case 0xffdc:\n          offset += 4;\n          break;\n\n        case 0xffff:\n          if (data[offset] !== 0xff) {\n            offset--;\n          }\n\n          break;\n\n        default:\n          const nextFileMarker = findNextFileMarker(data, offset - 2, offset - 3);\n\n          if (nextFileMarker && nextFileMarker.invalid) {\n            (0, _util.warn)(\"JpegImage.parse - unexpected data, current marker is: \" + nextFileMarker.invalid);\n            offset = nextFileMarker.offset;\n            break;\n          }\n\n          if (!nextFileMarker || offset >= data.length - 1) {\n            (0, _util.warn)(\"JpegImage.parse - reached the end of the image data \" + \"without finding an EOI marker (0xFFD9).\");\n            break markerLoop;\n          }\n\n          throw new JpegError(\"JpegImage.parse - unknown marker: \" + fileMarker.toString(16));\n      }\n\n      fileMarker = (0, _core_utils.readUint16)(data, offset);\n      offset += 2;\n    }\n\n    this.width = frame.samplesPerLine;\n    this.height = frame.scanLines;\n    this.jfif = jfif;\n    this.adobe = adobe;\n    this.components = [];\n\n    for (let i = 0, ii = frame.components.length; i < ii; i++) {\n      const component = frame.components[i];\n      const quantizationTable = quantizationTables[component.quantizationId];\n\n      if (quantizationTable) {\n        component.quantizationTable = quantizationTable;\n      }\n\n      this.components.push({\n        index: component.index,\n        output: buildComponentData(frame, component),\n        scaleX: component.h / frame.maxH,\n        scaleY: component.v / frame.maxV,\n        blocksPerLine: component.blocksPerLine,\n        blocksPerColumn: component.blocksPerColumn\n      });\n    }\n\n    this.numComponents = this.components.length;\n    return undefined;\n  }\n\n  _getLinearizedBlockData(width, height, isSourcePDF = false) {\n    const scaleX = this.width / width,\n          scaleY = this.height / height;\n    let component, componentScaleX, componentScaleY, blocksPerScanline;\n    let x, y, i, j, k;\n    let index;\n    let offset = 0;\n    let output;\n    const numComponents = this.components.length;\n    const dataLength = width * height * numComponents;\n    const data = new Uint8ClampedArray(dataLength);\n    const xScaleBlockOffset = new Uint32Array(width);\n    const mask3LSB = 0xfffffff8;\n    let lastComponentScaleX;\n\n    for (i = 0; i < numComponents; i++) {\n      component = this.components[i];\n      componentScaleX = component.scaleX * scaleX;\n      componentScaleY = component.scaleY * scaleY;\n      offset = i;\n      output = component.output;\n      blocksPerScanline = component.blocksPerLine + 1 << 3;\n\n      if (componentScaleX !== lastComponentScaleX) {\n        for (x = 0; x < width; x++) {\n          j = 0 | x * componentScaleX;\n          xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n        }\n\n        lastComponentScaleX = componentScaleX;\n      }\n\n      for (y = 0; y < height; y++) {\n        j = 0 | y * componentScaleY;\n        index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n\n        for (x = 0; x < width; x++) {\n          data[offset] = output[index + xScaleBlockOffset[x]];\n          offset += numComponents;\n        }\n      }\n    }\n\n    let transform = this._decodeTransform;\n\n    if (!isSourcePDF && numComponents === 4 && !transform) {\n      transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n    }\n\n    if (transform) {\n      for (i = 0; i < dataLength;) {\n        for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n          data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n        }\n      }\n    }\n\n    return data;\n  }\n\n  get _isColorConversionNeeded() {\n    if (this.adobe) {\n      return !!this.adobe.transformCode;\n    }\n\n    if (this.numComponents === 3) {\n      if (this._colorTransform === 0) {\n        return false;\n      } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) {\n        return false;\n      }\n\n      return true;\n    }\n\n    if (this._colorTransform === 1) {\n      return true;\n    }\n\n    return false;\n  }\n\n  _convertYccToRgb(data) {\n    let Y, Cb, Cr;\n\n    for (let i = 0, length = data.length; i < length; i += 3) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = Y - 179.456 + 1.402 * Cr;\n      data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n      data[i + 2] = Y - 226.816 + 1.772 * Cb;\n    }\n\n    return data;\n  }\n\n  _convertYcckToRgb(data) {\n    let Y, Cb, Cr, k;\n    let offset = 0;\n\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      k = data[i + 3];\n      data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776);\n      data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665);\n      data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407);\n    }\n\n    return data.subarray(0, offset);\n  }\n\n  _convertYcckToCmyk(data) {\n    let Y, Cb, Cr;\n\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      Y = data[i];\n      Cb = data[i + 1];\n      Cr = data[i + 2];\n      data[i] = 434.456 - Y - 1.402 * Cr;\n      data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n      data[i + 2] = 481.816 - Y - 1.772 * Cb;\n    }\n\n    return data;\n  }\n\n  _convertCmykToRgb(data) {\n    let c, m, y, k;\n    let offset = 0;\n\n    for (let i = 0, length = data.length; i < length; i += 4) {\n      c = data[i];\n      m = data[i + 1];\n      y = data[i + 2];\n      k = data[i + 3];\n      data[offset++] = 255 + c * (-0.00006747147073602441 * c + 0.0008379262121013727 * m + 0.0002894718188643294 * y + 0.003264231057537806 * k - 1.1185611867203937) + m * (0.000026374107616089405 * m - 0.00008626949158638572 * y - 0.0002748769067499491 * k - 0.02155688794978967) + y * (-0.00003878099212869363 * y - 0.0003267808279485286 * k + 0.0686742238595345) - k * (0.0003361971776183937 * k + 0.7430659151342254);\n      data[offset++] = 255 + c * (0.00013596372813588848 * c + 0.000924537132573585 * m + 0.00010567359618683593 * y + 0.0004791864687436512 * k - 0.3109689587515875) + m * (-0.00023545346108370344 * m + 0.0002702845253534714 * y + 0.0020200308977307156 * k - 0.7488052167015494) + y * (0.00006834815998235662 * y + 0.00015168452363460973 * k - 0.09751927774728933) - k * (0.0003189131175883281 * k + 0.7364883807733168);\n      data[offset++] = 255 + c * (0.000013598650411385307 * c + 0.00012423956175490851 * m + 0.0004751985097583589 * y - 0.0000036729317476630422 * k - 0.05562186980264034) + m * (0.00016141380598724676 * m + 0.0009692239130725186 * y + 0.0007782692450036253 * k - 0.44015232367526463) + y * (5.068882914068769e-7 * y + 0.0017778369011375071 * k - 0.7591454649749609) - k * (0.0003435319965105553 * k + 0.7063770186160144);\n    }\n\n    return data.subarray(0, offset);\n  }\n\n  getData({\n    width,\n    height,\n    forceRGB = false,\n    isSourcePDF = false\n  }) {\n    if (this.numComponents > 4) {\n      throw new JpegError(\"Unsupported color mode\");\n    }\n\n    const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n    if (this.numComponents === 1 && forceRGB) {\n      const dataLength = data.length;\n      const rgbData = new Uint8ClampedArray(dataLength * 3);\n      let offset = 0;\n\n      for (let i = 0; i < dataLength; i++) {\n        const grayColor = data[i];\n        rgbData[offset++] = grayColor;\n        rgbData[offset++] = grayColor;\n        rgbData[offset++] = grayColor;\n      }\n\n      return rgbData;\n    } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n      return this._convertYccToRgb(data);\n    } else if (this.numComponents === 4) {\n      if (this._isColorConversionNeeded) {\n        if (forceRGB) {\n          return this._convertYcckToRgb(data);\n        }\n\n        return this._convertYcckToCmyk(data);\n      } else if (forceRGB) {\n        return this._convertCmykToRgb(data);\n      }\n    }\n\n    return data;\n  }\n\n}\n\nexports.JpegImage = JpegImage;\n\n/***/ }),\n/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.JpxStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _jpx = __w_pdfjs_require__(30);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass JpxStream extends _decode_stream.DecodeStream {\n  constructor(stream, maybeLength, params) {\n    super(maybeLength);\n    this.stream = stream;\n    this.dict = stream.dict;\n    this.maybeLength = maybeLength;\n    this.params = params;\n  }\n\n  get bytes() {\n    return (0, _util.shadow)(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n  }\n\n  ensureBuffer(requested) {}\n\n  readBlock() {\n    if (this.eof) {\n      return;\n    }\n\n    const jpxImage = new _jpx.JpxImage();\n    jpxImage.parse(this.bytes);\n    const width = jpxImage.width;\n    const height = jpxImage.height;\n    const componentsCount = jpxImage.componentsCount;\n    const tileCount = jpxImage.tiles.length;\n\n    if (tileCount === 1) {\n      this.buffer = jpxImage.tiles[0].items;\n    } else {\n      const data = new Uint8ClampedArray(width * height * componentsCount);\n\n      for (let k = 0; k < tileCount; k++) {\n        const tileComponents = jpxImage.tiles[k];\n        const tileWidth = tileComponents.width;\n        const tileHeight = tileComponents.height;\n        const tileLeft = tileComponents.left;\n        const tileTop = tileComponents.top;\n        const src = tileComponents.items;\n        let srcPosition = 0;\n        let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n        const imgRowSize = width * componentsCount;\n        const tileRowSize = tileWidth * componentsCount;\n\n        for (let j = 0; j < tileHeight; j++) {\n          const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n          data.set(rowBytes, dataPosition);\n          srcPosition += tileRowSize;\n          dataPosition += imgRowSize;\n        }\n      }\n\n      this.buffer = data;\n    }\n\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n  }\n\n}\n\nexports.JpxStream = JpxStream;\n\n/***/ }),\n/* 30 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.JpxImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(26);\n\nclass JpxError extends _util.BaseException {\n  constructor(msg) {\n    super(`JPX error: ${msg}`, \"JpxError\");\n  }\n\n}\n\nconst SubbandsGainLog2 = {\n  LL: 0,\n  LH: 1,\n  HL: 1,\n  HH: 2\n};\n\nclass JpxImage {\n  constructor() {\n    this.failOnCorruptedImage = false;\n  }\n\n  parse(data) {\n    const head = (0, _core_utils.readUint16)(data, 0);\n\n    if (head === 0xff4f) {\n      this.parseCodestream(data, 0, data.length);\n      return;\n    }\n\n    const length = data.length;\n    let position = 0;\n\n    while (position < length) {\n      let headerSize = 8;\n      let lbox = (0, _core_utils.readUint32)(data, position);\n      const tbox = (0, _core_utils.readUint32)(data, position + 4);\n      position += headerSize;\n\n      if (lbox === 1) {\n        lbox = (0, _core_utils.readUint32)(data, position) * 4294967296 + (0, _core_utils.readUint32)(data, position + 4);\n        position += 8;\n        headerSize += 8;\n      }\n\n      if (lbox === 0) {\n        lbox = length - position + headerSize;\n      }\n\n      if (lbox < headerSize) {\n        throw new JpxError(\"Invalid box field size\");\n      }\n\n      const dataLength = lbox - headerSize;\n      let jumpDataLength = true;\n\n      switch (tbox) {\n        case 0x6a703268:\n          jumpDataLength = false;\n          break;\n\n        case 0x636f6c72:\n          const method = data[position];\n\n          if (method === 1) {\n            const colorspace = (0, _core_utils.readUint32)(data, position + 3);\n\n            switch (colorspace) {\n              case 16:\n              case 17:\n              case 18:\n                break;\n\n              default:\n                (0, _util.warn)(\"Unknown colorspace \" + colorspace);\n                break;\n            }\n          } else if (method === 2) {\n            (0, _util.info)(\"ICC profile not supported\");\n          }\n\n          break;\n\n        case 0x6a703263:\n          this.parseCodestream(data, position, position + dataLength);\n          break;\n\n        case 0x6a502020:\n          if ((0, _core_utils.readUint32)(data, position) !== 0x0d0a870a) {\n            (0, _util.warn)(\"Invalid JP2 signature\");\n          }\n\n          break;\n\n        case 0x6a501a1a:\n        case 0x66747970:\n        case 0x72726571:\n        case 0x72657320:\n        case 0x69686472:\n          break;\n\n        default:\n          const headerType = String.fromCharCode(tbox >> 24 & 0xff, tbox >> 16 & 0xff, tbox >> 8 & 0xff, tbox & 0xff);\n          (0, _util.warn)(`Unsupported header type ${tbox} (${headerType}).`);\n          break;\n      }\n\n      if (jumpDataLength) {\n        position += dataLength;\n      }\n    }\n  }\n\n  parseImageProperties(stream) {\n    let newByte = stream.getByte();\n\n    while (newByte >= 0) {\n      const oldByte = newByte;\n      newByte = stream.getByte();\n      const code = oldByte << 8 | newByte;\n\n      if (code === 0xff51) {\n        stream.skip(4);\n        const Xsiz = stream.getInt32() >>> 0;\n        const Ysiz = stream.getInt32() >>> 0;\n        const XOsiz = stream.getInt32() >>> 0;\n        const YOsiz = stream.getInt32() >>> 0;\n        stream.skip(16);\n        const Csiz = stream.getUint16();\n        this.width = Xsiz - XOsiz;\n        this.height = Ysiz - YOsiz;\n        this.componentsCount = Csiz;\n        this.bitsPerComponent = 8;\n        return;\n      }\n    }\n\n    throw new JpxError(\"No size marker found in JPX stream\");\n  }\n\n  parseCodestream(data, start, end) {\n    const context = {};\n    let doNotRecover = false;\n\n    try {\n      let position = start;\n\n      while (position + 1 < end) {\n        const code = (0, _core_utils.readUint16)(data, position);\n        position += 2;\n        let length = 0,\n            j,\n            sqcd,\n            spqcds,\n            spqcdSize,\n            scalarExpounded,\n            tile;\n\n        switch (code) {\n          case 0xff4f:\n            context.mainHeader = true;\n            break;\n\n          case 0xffd9:\n            break;\n\n          case 0xff51:\n            length = (0, _core_utils.readUint16)(data, position);\n            const siz = {};\n            siz.Xsiz = (0, _core_utils.readUint32)(data, position + 4);\n            siz.Ysiz = (0, _core_utils.readUint32)(data, position + 8);\n            siz.XOsiz = (0, _core_utils.readUint32)(data, position + 12);\n            siz.YOsiz = (0, _core_utils.readUint32)(data, position + 16);\n            siz.XTsiz = (0, _core_utils.readUint32)(data, position + 20);\n            siz.YTsiz = (0, _core_utils.readUint32)(data, position + 24);\n            siz.XTOsiz = (0, _core_utils.readUint32)(data, position + 28);\n            siz.YTOsiz = (0, _core_utils.readUint32)(data, position + 32);\n            const componentsCount = (0, _core_utils.readUint16)(data, position + 36);\n            siz.Csiz = componentsCount;\n            const components = [];\n            j = position + 38;\n\n            for (let i = 0; i < componentsCount; i++) {\n              const component = {\n                precision: (data[j] & 0x7f) + 1,\n                isSigned: !!(data[j] & 0x80),\n                XRsiz: data[j + 1],\n                YRsiz: data[j + 2]\n              };\n              j += 3;\n              calculateComponentDimensions(component, siz);\n              components.push(component);\n            }\n\n            context.SIZ = siz;\n            context.components = components;\n            calculateTileGrids(context, components);\n            context.QCC = [];\n            context.COC = [];\n            break;\n\n          case 0xff5c:\n            length = (0, _core_utils.readUint16)(data, position);\n            const qcd = {};\n            j = position + 2;\n            sqcd = data[j++];\n\n            switch (sqcd & 0x1f) {\n              case 0:\n                spqcdSize = 8;\n                scalarExpounded = true;\n                break;\n\n              case 1:\n                spqcdSize = 16;\n                scalarExpounded = false;\n                break;\n\n              case 2:\n                spqcdSize = 16;\n                scalarExpounded = true;\n                break;\n\n              default:\n                throw new Error(\"Invalid SQcd value \" + sqcd);\n            }\n\n            qcd.noQuantization = spqcdSize === 8;\n            qcd.scalarExpounded = scalarExpounded;\n            qcd.guardBits = sqcd >> 5;\n            spqcds = [];\n\n            while (j < length + position) {\n              const spqcd = {};\n\n              if (spqcdSize === 8) {\n                spqcd.epsilon = data[j++] >> 3;\n                spqcd.mu = 0;\n              } else {\n                spqcd.epsilon = data[j] >> 3;\n                spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n                j += 2;\n              }\n\n              spqcds.push(spqcd);\n            }\n\n            qcd.SPqcds = spqcds;\n\n            if (context.mainHeader) {\n              context.QCD = qcd;\n            } else {\n              context.currentTile.QCD = qcd;\n              context.currentTile.QCC = [];\n            }\n\n            break;\n\n          case 0xff5d:\n            length = (0, _core_utils.readUint16)(data, position);\n            const qcc = {};\n            j = position + 2;\n            let cqcc;\n\n            if (context.SIZ.Csiz < 257) {\n              cqcc = data[j++];\n            } else {\n              cqcc = (0, _core_utils.readUint16)(data, j);\n              j += 2;\n            }\n\n            sqcd = data[j++];\n\n            switch (sqcd & 0x1f) {\n              case 0:\n                spqcdSize = 8;\n                scalarExpounded = true;\n                break;\n\n              case 1:\n                spqcdSize = 16;\n                scalarExpounded = false;\n                break;\n\n              case 2:\n                spqcdSize = 16;\n                scalarExpounded = true;\n                break;\n\n              default:\n                throw new Error(\"Invalid SQcd value \" + sqcd);\n            }\n\n            qcc.noQuantization = spqcdSize === 8;\n            qcc.scalarExpounded = scalarExpounded;\n            qcc.guardBits = sqcd >> 5;\n            spqcds = [];\n\n            while (j < length + position) {\n              const spqcd = {};\n\n              if (spqcdSize === 8) {\n                spqcd.epsilon = data[j++] >> 3;\n                spqcd.mu = 0;\n              } else {\n                spqcd.epsilon = data[j] >> 3;\n                spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n                j += 2;\n              }\n\n              spqcds.push(spqcd);\n            }\n\n            qcc.SPqcds = spqcds;\n\n            if (context.mainHeader) {\n              context.QCC[cqcc] = qcc;\n            } else {\n              context.currentTile.QCC[cqcc] = qcc;\n            }\n\n            break;\n\n          case 0xff52:\n            length = (0, _core_utils.readUint16)(data, position);\n            const cod = {};\n            j = position + 2;\n            const scod = data[j++];\n            cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n            cod.sopMarkerUsed = !!(scod & 2);\n            cod.ephMarkerUsed = !!(scod & 4);\n            cod.progressionOrder = data[j++];\n            cod.layersCount = (0, _core_utils.readUint16)(data, j);\n            j += 2;\n            cod.multipleComponentTransform = data[j++];\n            cod.decompositionLevelsCount = data[j++];\n            cod.xcb = (data[j++] & 0xf) + 2;\n            cod.ycb = (data[j++] & 0xf) + 2;\n            const blockStyle = data[j++];\n            cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n            cod.resetContextProbabilities = !!(blockStyle & 2);\n            cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n            cod.verticallyStripe = !!(blockStyle & 8);\n            cod.predictableTermination = !!(blockStyle & 16);\n            cod.segmentationSymbolUsed = !!(blockStyle & 32);\n            cod.reversibleTransformation = data[j++];\n\n            if (cod.entropyCoderWithCustomPrecincts) {\n              const precinctsSizes = [];\n\n              while (j < length + position) {\n                const precinctsSize = data[j++];\n                precinctsSizes.push({\n                  PPx: precinctsSize & 0xf,\n                  PPy: precinctsSize >> 4\n                });\n              }\n\n              cod.precinctsSizes = precinctsSizes;\n            }\n\n            const unsupported = [];\n\n            if (cod.selectiveArithmeticCodingBypass) {\n              unsupported.push(\"selectiveArithmeticCodingBypass\");\n            }\n\n            if (cod.terminationOnEachCodingPass) {\n              unsupported.push(\"terminationOnEachCodingPass\");\n            }\n\n            if (cod.verticallyStripe) {\n              unsupported.push(\"verticallyStripe\");\n            }\n\n            if (cod.predictableTermination) {\n              unsupported.push(\"predictableTermination\");\n            }\n\n            if (unsupported.length > 0) {\n              doNotRecover = true;\n              (0, _util.warn)(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n            }\n\n            if (context.mainHeader) {\n              context.COD = cod;\n            } else {\n              context.currentTile.COD = cod;\n              context.currentTile.COC = [];\n            }\n\n            break;\n\n          case 0xff90:\n            length = (0, _core_utils.readUint16)(data, position);\n            tile = {};\n            tile.index = (0, _core_utils.readUint16)(data, position + 2);\n            tile.length = (0, _core_utils.readUint32)(data, position + 4);\n            tile.dataEnd = tile.length + position - 2;\n            tile.partIndex = data[position + 8];\n            tile.partsCount = data[position + 9];\n            context.mainHeader = false;\n\n            if (tile.partIndex === 0) {\n              tile.COD = context.COD;\n              tile.COC = context.COC.slice(0);\n              tile.QCD = context.QCD;\n              tile.QCC = context.QCC.slice(0);\n            }\n\n            context.currentTile = tile;\n            break;\n\n          case 0xff93:\n            tile = context.currentTile;\n\n            if (tile.partIndex === 0) {\n              initializeTile(context, tile.index);\n              buildPackets(context);\n            }\n\n            length = tile.dataEnd - position;\n            parseTilePackets(context, data, position, length);\n            break;\n\n          case 0xff53:\n            (0, _util.warn)(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n\n          case 0xff55:\n          case 0xff57:\n          case 0xff58:\n          case 0xff64:\n            length = (0, _core_utils.readUint16)(data, position);\n            break;\n\n          default:\n            throw new Error(\"Unknown codestream code: \" + code.toString(16));\n        }\n\n        position += length;\n      }\n    } catch (e) {\n      if (doNotRecover || this.failOnCorruptedImage) {\n        throw new JpxError(e.message);\n      } else {\n        (0, _util.warn)(`JPX: Trying to recover from: \"${e.message}\".`);\n      }\n    }\n\n    this.tiles = transformComponents(context);\n    this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n    this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n    this.componentsCount = context.SIZ.Csiz;\n  }\n\n}\n\nexports.JpxImage = JpxImage;\n\nfunction calculateComponentDimensions(component, siz) {\n  component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n  component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n  component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n  component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n  component.width = component.x1 - component.x0;\n  component.height = component.y1 - component.y0;\n}\n\nfunction calculateTileGrids(context, components) {\n  const siz = context.SIZ;\n  const tiles = [];\n  let tile;\n  const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n  const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n\n  for (let q = 0; q < numYtiles; q++) {\n    for (let p = 0; p < numXtiles; p++) {\n      tile = {};\n      tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n      tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n      tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n      tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n      tile.width = tile.tx1 - tile.tx0;\n      tile.height = tile.ty1 - tile.ty0;\n      tile.components = [];\n      tiles.push(tile);\n    }\n  }\n\n  context.tiles = tiles;\n  const componentsCount = siz.Csiz;\n\n  for (let i = 0, ii = componentsCount; i < ii; i++) {\n    const component = components[i];\n\n    for (let j = 0, jj = tiles.length; j < jj; j++) {\n      const tileComponent = {};\n      tile = tiles[j];\n      tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n      tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n      tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n      tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n      tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n      tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n      tile.components[i] = tileComponent;\n    }\n  }\n}\n\nfunction getBlocksDimensions(context, component, r) {\n  const codOrCoc = component.codingStyleParameters;\n  const result = {};\n\n  if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n    result.PPx = 15;\n    result.PPy = 15;\n  } else {\n    result.PPx = codOrCoc.precinctsSizes[r].PPx;\n    result.PPy = codOrCoc.precinctsSizes[r].PPy;\n  }\n\n  result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx);\n  result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy);\n  return result;\n}\n\nfunction buildPrecincts(context, resolution, dimensions) {\n  const precinctWidth = 1 << dimensions.PPx;\n  const precinctHeight = 1 << dimensions.PPy;\n  const isZeroRes = resolution.resLevel === 0;\n  const precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1);\n  const precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1);\n  const numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0;\n  const numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;\n  const numprecincts = numprecinctswide * numprecinctshigh;\n  resolution.precinctParameters = {\n    precinctWidth,\n    precinctHeight,\n    numprecinctswide,\n    numprecinctshigh,\n    numprecincts,\n    precinctWidthInSubband,\n    precinctHeightInSubband\n  };\n}\n\nfunction buildCodeblocks(context, subband, dimensions) {\n  const xcb_ = dimensions.xcb_;\n  const ycb_ = dimensions.ycb_;\n  const codeblockWidth = 1 << xcb_;\n  const codeblockHeight = 1 << ycb_;\n  const cbx0 = subband.tbx0 >> xcb_;\n  const cby0 = subband.tby0 >> ycb_;\n  const cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_;\n  const cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_;\n  const precinctParameters = subband.resolution.precinctParameters;\n  const codeblocks = [];\n  const precincts = [];\n  let i, j, codeblock, precinctNumber;\n\n  for (j = cby0; j < cby1; j++) {\n    for (i = cbx0; i < cbx1; i++) {\n      codeblock = {\n        cbx: i,\n        cby: j,\n        tbx0: codeblockWidth * i,\n        tby0: codeblockHeight * j,\n        tbx1: codeblockWidth * (i + 1),\n        tby1: codeblockHeight * (j + 1)\n      };\n      codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n      codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n      codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n      codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n      const pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband);\n      const pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband);\n      precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n      codeblock.precinctNumber = precinctNumber;\n      codeblock.subbandType = subband.type;\n      codeblock.Lblock = 3;\n\n      if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n        continue;\n      }\n\n      codeblocks.push(codeblock);\n      let precinct = precincts[precinctNumber];\n\n      if (precinct !== undefined) {\n        if (i < precinct.cbxMin) {\n          precinct.cbxMin = i;\n        } else if (i > precinct.cbxMax) {\n          precinct.cbxMax = i;\n        }\n\n        if (j < precinct.cbyMin) {\n          precinct.cbxMin = j;\n        } else if (j > precinct.cbyMax) {\n          precinct.cbyMax = j;\n        }\n      } else {\n        precincts[precinctNumber] = precinct = {\n          cbxMin: i,\n          cbyMin: j,\n          cbxMax: i,\n          cbyMax: j\n        };\n      }\n\n      codeblock.precinct = precinct;\n    }\n  }\n\n  subband.codeblockParameters = {\n    codeblockWidth: xcb_,\n    codeblockHeight: ycb_,\n    numcodeblockwide: cbx1 - cbx0 + 1,\n    numcodeblockhigh: cby1 - cby0 + 1\n  };\n  subband.codeblocks = codeblocks;\n  subband.precincts = precincts;\n}\n\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n  const precinctCodeblocks = [];\n  const subbands = resolution.subbands;\n\n  for (let i = 0, ii = subbands.length; i < ii; i++) {\n    const subband = subbands[i];\n    const codeblocks = subband.codeblocks;\n\n    for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n      const codeblock = codeblocks[j];\n\n      if (codeblock.precinctNumber !== precinctNumber) {\n        continue;\n      }\n\n      precinctCodeblocks.push(codeblock);\n    }\n  }\n\n  return {\n    layerNumber,\n    codeblocks: precinctCodeblocks\n  };\n}\n\nfunction LayerResolutionComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n  }\n\n  let l = 0,\n      r = 0,\n      i = 0,\n      k = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; l < layersCount; l++) {\n      for (; r <= maxDecompositionLevelsCount; r++) {\n        for (; i < componentsCount; i++) {\n          const component = tile.components[i];\n\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n\n          for (; k < numprecincts;) {\n            const packet = createPacket(resolution, k, l);\n            k++;\n            return packet;\n          }\n\n          k = 0;\n        }\n\n        i = 0;\n      }\n\n      r = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction ResolutionLayerComponentPositionIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let maxDecompositionLevelsCount = 0;\n\n  for (let q = 0; q < componentsCount; q++) {\n    maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n  }\n\n  let r = 0,\n      l = 0,\n      i = 0,\n      k = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; r <= maxDecompositionLevelsCount; r++) {\n      for (; l < layersCount; l++) {\n        for (; i < componentsCount; i++) {\n          const component = tile.components[i];\n\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n\n          for (; k < numprecincts;) {\n            const packet = createPacket(resolution, k, l);\n            k++;\n            return packet;\n          }\n\n          k = 0;\n        }\n\n        i = 0;\n      }\n\n      l = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction ResolutionPositionComponentLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  let l, r, c, p;\n  let maxDecompositionLevelsCount = 0;\n\n  for (c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n  }\n\n  const maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n\n  for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n    let maxNumPrecincts = 0;\n\n    for (c = 0; c < componentsCount; ++c) {\n      const resolutions = tile.components[c].resolutions;\n\n      if (r < resolutions.length) {\n        maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n      }\n    }\n\n    maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n  }\n\n  l = 0;\n  r = 0;\n  c = 0;\n  p = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; r <= maxDecompositionLevelsCount; r++) {\n      for (; p < maxNumPrecinctsInLevel[r]; p++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n\n          if (r > component.codingStyleParameters.decompositionLevelsCount) {\n            continue;\n          }\n\n          const resolution = component.resolutions[r];\n          const numprecincts = resolution.precinctParameters.numprecincts;\n\n          if (p >= numprecincts) {\n            continue;\n          }\n\n          for (; l < layersCount;) {\n            const packet = createPacket(resolution, p, l);\n            l++;\n            return packet;\n          }\n\n          l = 0;\n        }\n\n        c = 0;\n      }\n\n      p = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction PositionComponentResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  const precinctsIterationSizes = precinctsSizes;\n  let l = 0,\n      r = 0,\n      c = 0,\n      px = 0,\n      py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n      for (; px < precinctsIterationSizes.maxNumWide; px++) {\n        for (; c < componentsCount; c++) {\n          const component = tile.components[c];\n          const decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale = precinctsSizes.components[c].resolutions[r];\n            const k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n            if (k === null) {\n              continue;\n            }\n\n            for (; l < layersCount;) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n\n            l = 0;\n          }\n\n          r = 0;\n        }\n\n        c = 0;\n      }\n\n      px = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction ComponentPositionResolutionLayerIterator(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const layersCount = tile.codingStyleDefaultParameters.layersCount;\n  const componentsCount = siz.Csiz;\n  const precinctsSizes = getPrecinctSizesInImageScale(tile);\n  let l = 0,\n      r = 0,\n      c = 0,\n      px = 0,\n      py = 0;\n\n  this.nextPacket = function JpxImage_nextPacket() {\n    for (; c < componentsCount; ++c) {\n      const component = tile.components[c];\n      const precinctsIterationSizes = precinctsSizes.components[c];\n      const decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n      for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n        for (; px < precinctsIterationSizes.maxNumWide; px++) {\n          for (; r <= decompositionLevelsCount; r++) {\n            const resolution = component.resolutions[r];\n            const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n            const k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n            if (k === null) {\n              continue;\n            }\n\n            for (; l < layersCount;) {\n              const packet = createPacket(resolution, k, l);\n              l++;\n              return packet;\n            }\n\n            l = 0;\n          }\n\n          r = 0;\n        }\n\n        px = 0;\n      }\n\n      py = 0;\n    }\n\n    throw new JpxError(\"Out of packets\");\n  };\n}\n\nfunction getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n  const posX = pxIndex * precinctIterationSizes.minWidth;\n  const posY = pyIndex * precinctIterationSizes.minHeight;\n\n  if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n    return null;\n  }\n\n  const startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n  return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\n\nfunction getPrecinctSizesInImageScale(tile) {\n  const componentsCount = tile.components.length;\n  let minWidth = Number.MAX_VALUE;\n  let minHeight = Number.MAX_VALUE;\n  let maxNumWide = 0;\n  let maxNumHigh = 0;\n  const sizePerComponent = new Array(componentsCount);\n\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n    const sizePerResolution = new Array(decompositionLevelsCount + 1);\n    let minWidthCurrentComponent = Number.MAX_VALUE;\n    let minHeightCurrentComponent = Number.MAX_VALUE;\n    let maxNumWideCurrentComponent = 0;\n    let maxNumHighCurrentComponent = 0;\n    let scale = 1;\n\n    for (let r = decompositionLevelsCount; r >= 0; --r) {\n      const resolution = component.resolutions[r];\n      const widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth;\n      const heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight;\n      minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution);\n      minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution);\n      maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide);\n      maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh);\n      sizePerResolution[r] = {\n        width: widthCurrentResolution,\n        height: heightCurrentResolution\n      };\n      scale <<= 1;\n    }\n\n    minWidth = Math.min(minWidth, minWidthCurrentComponent);\n    minHeight = Math.min(minHeight, minHeightCurrentComponent);\n    maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n    maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n    sizePerComponent[c] = {\n      resolutions: sizePerResolution,\n      minWidth: minWidthCurrentComponent,\n      minHeight: minHeightCurrentComponent,\n      maxNumWide: maxNumWideCurrentComponent,\n      maxNumHigh: maxNumHighCurrentComponent\n    };\n  }\n\n  return {\n    components: sizePerComponent,\n    minWidth,\n    minHeight,\n    maxNumWide,\n    maxNumHigh\n  };\n}\n\nfunction buildPackets(context) {\n  const siz = context.SIZ;\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const componentsCount = siz.Csiz;\n\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n    const resolutions = [];\n    const subbands = [];\n\n    for (let r = 0; r <= decompositionLevelsCount; r++) {\n      const blocksDimensions = getBlocksDimensions(context, component, r);\n      const resolution = {};\n      const scale = 1 << decompositionLevelsCount - r;\n      resolution.trx0 = Math.ceil(component.tcx0 / scale);\n      resolution.try0 = Math.ceil(component.tcy0 / scale);\n      resolution.trx1 = Math.ceil(component.tcx1 / scale);\n      resolution.try1 = Math.ceil(component.tcy1 / scale);\n      resolution.resLevel = r;\n      buildPrecincts(context, resolution, blocksDimensions);\n      resolutions.push(resolution);\n      let subband;\n\n      if (r === 0) {\n        subband = {};\n        subband.type = \"LL\";\n        subband.tbx0 = Math.ceil(component.tcx0 / scale);\n        subband.tby0 = Math.ceil(component.tcy0 / scale);\n        subband.tbx1 = Math.ceil(component.tcx1 / scale);\n        subband.tby1 = Math.ceil(component.tcy1 / scale);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolution.subbands = [subband];\n      } else {\n        const bscale = 1 << decompositionLevelsCount - r + 1;\n        const resolutionSubbands = [];\n        subband = {};\n        subband.type = \"HL\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n        subband = {};\n        subband.type = \"LH\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n        subband = {};\n        subband.type = \"HH\";\n        subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n        subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n        subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n        subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n        subband.resolution = resolution;\n        buildCodeblocks(context, subband, blocksDimensions);\n        subbands.push(subband);\n        resolutionSubbands.push(subband);\n        resolution.subbands = resolutionSubbands;\n      }\n    }\n\n    component.resolutions = resolutions;\n    component.subbands = subbands;\n  }\n\n  const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n\n  switch (progressionOrder) {\n    case 0:\n      tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n      break;\n\n    case 1:\n      tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n      break;\n\n    case 2:\n      tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n      break;\n\n    case 3:\n      tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n      break;\n\n    case 4:\n      tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n      break;\n\n    default:\n      throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n  }\n}\n\nfunction parseTilePackets(context, data, offset, dataLength) {\n  let position = 0;\n  let buffer,\n      bufferSize = 0,\n      skipNextBit = false;\n\n  function readBits(count) {\n    while (bufferSize < count) {\n      const b = data[offset + position];\n      position++;\n\n      if (skipNextBit) {\n        buffer = buffer << 7 | b;\n        bufferSize += 7;\n        skipNextBit = false;\n      } else {\n        buffer = buffer << 8 | b;\n        bufferSize += 8;\n      }\n\n      if (b === 0xff) {\n        skipNextBit = true;\n      }\n    }\n\n    bufferSize -= count;\n    return buffer >>> bufferSize & (1 << count) - 1;\n  }\n\n  function skipMarkerIfEqual(value) {\n    if (data[offset + position - 1] === 0xff && data[offset + position] === value) {\n      skipBytes(1);\n      return true;\n    } else if (data[offset + position] === 0xff && data[offset + position + 1] === value) {\n      skipBytes(2);\n      return true;\n    }\n\n    return false;\n  }\n\n  function skipBytes(count) {\n    position += count;\n  }\n\n  function alignToByte() {\n    bufferSize = 0;\n\n    if (skipNextBit) {\n      position++;\n      skipNextBit = false;\n    }\n  }\n\n  function readCodingpasses() {\n    if (readBits(1) === 0) {\n      return 1;\n    }\n\n    if (readBits(1) === 0) {\n      return 2;\n    }\n\n    let value = readBits(2);\n\n    if (value < 3) {\n      return value + 3;\n    }\n\n    value = readBits(5);\n\n    if (value < 31) {\n      return value + 6;\n    }\n\n    value = readBits(7);\n    return value + 37;\n  }\n\n  const tileIndex = context.currentTile.index;\n  const tile = context.tiles[tileIndex];\n  const sopMarkerUsed = context.COD.sopMarkerUsed;\n  const ephMarkerUsed = context.COD.ephMarkerUsed;\n  const packetsIterator = tile.packetsIterator;\n\n  while (position < dataLength) {\n    alignToByte();\n\n    if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n      skipBytes(4);\n    }\n\n    const packet = packetsIterator.nextPacket();\n\n    if (!readBits(1)) {\n      continue;\n    }\n\n    const layerNumber = packet.layerNumber,\n          queue = [];\n    let codeblock;\n\n    for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n      codeblock = packet.codeblocks[i];\n      let precinct = codeblock.precinct;\n      const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n      const codeblockRow = codeblock.cby - precinct.cbyMin;\n      let codeblockIncluded = false;\n      let firstTimeInclusion = false;\n      let valueReady, zeroBitPlanesTree;\n\n      if (codeblock.included !== undefined) {\n        codeblockIncluded = !!readBits(1);\n      } else {\n        precinct = codeblock.precinct;\n        let inclusionTree;\n\n        if (precinct.inclusionTree !== undefined) {\n          inclusionTree = precinct.inclusionTree;\n        } else {\n          const width = precinct.cbxMax - precinct.cbxMin + 1;\n          const height = precinct.cbyMax - precinct.cbyMin + 1;\n          inclusionTree = new InclusionTree(width, height, layerNumber);\n          zeroBitPlanesTree = new TagTree(width, height);\n          precinct.inclusionTree = inclusionTree;\n          precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n\n          for (let l = 0; l < layerNumber; l++) {\n            if (readBits(1) !== 0) {\n              throw new JpxError(\"Invalid tag tree\");\n            }\n          }\n        }\n\n        if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n          while (true) {\n            if (readBits(1)) {\n              valueReady = !inclusionTree.nextLevel();\n\n              if (valueReady) {\n                codeblock.included = true;\n                codeblockIncluded = firstTimeInclusion = true;\n                break;\n              }\n            } else {\n              inclusionTree.incrementValue(layerNumber);\n              break;\n            }\n          }\n        }\n      }\n\n      if (!codeblockIncluded) {\n        continue;\n      }\n\n      if (firstTimeInclusion) {\n        zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n        zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n\n        while (true) {\n          if (readBits(1)) {\n            valueReady = !zeroBitPlanesTree.nextLevel();\n\n            if (valueReady) {\n              break;\n            }\n          } else {\n            zeroBitPlanesTree.incrementValue();\n          }\n        }\n\n        codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n      }\n\n      const codingpasses = readCodingpasses();\n\n      while (readBits(1)) {\n        codeblock.Lblock++;\n      }\n\n      const codingpassesLog2 = (0, _core_utils.log2)(codingpasses);\n      const bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n      const codedDataLength = readBits(bits);\n      queue.push({\n        codeblock,\n        codingpasses,\n        dataLength: codedDataLength\n      });\n    }\n\n    alignToByte();\n\n    if (ephMarkerUsed) {\n      skipMarkerIfEqual(0x92);\n    }\n\n    while (queue.length > 0) {\n      const packetItem = queue.shift();\n      codeblock = packetItem.codeblock;\n\n      if (codeblock.data === undefined) {\n        codeblock.data = [];\n      }\n\n      codeblock.data.push({\n        data,\n        start: offset + position,\n        end: offset + position + packetItem.dataLength,\n        codingpasses: packetItem.codingpasses\n      });\n      position += packetItem.dataLength;\n    }\n  }\n\n  return position;\n}\n\nfunction copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed, resetContextProbabilities) {\n  const x0 = subband.tbx0;\n  const y0 = subband.tby0;\n  const width = subband.tbx1 - subband.tbx0;\n  const codeblocks = subband.codeblocks;\n  const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n  const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n  for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n    const codeblock = codeblocks[i];\n    const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n    const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n\n    if (blockWidth === 0 || blockHeight === 0) {\n      continue;\n    }\n\n    if (codeblock.data === undefined) {\n      continue;\n    }\n\n    const bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb);\n    let currentCodingpassType = 2;\n    const data = codeblock.data;\n    let totalLength = 0,\n        codingpasses = 0;\n    let j, jj, dataItem;\n\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      totalLength += dataItem.end - dataItem.start;\n      codingpasses += dataItem.codingpasses;\n    }\n\n    const encodedData = new Uint8Array(totalLength);\n    let position = 0;\n\n    for (j = 0, jj = data.length; j < jj; j++) {\n      dataItem = data[j];\n      const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n      encodedData.set(chunk, position);\n      position += chunk.length;\n    }\n\n    const decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength);\n    bitModel.setDecoder(decoder);\n\n    for (j = 0; j < codingpasses; j++) {\n      switch (currentCodingpassType) {\n        case 0:\n          bitModel.runSignificancePropagationPass();\n          break;\n\n        case 1:\n          bitModel.runMagnitudeRefinementPass();\n          break;\n\n        case 2:\n          bitModel.runCleanupPass();\n\n          if (segmentationSymbolUsed) {\n            bitModel.checkSegmentationSymbol();\n          }\n\n          break;\n      }\n\n      if (resetContextProbabilities) {\n        bitModel.reset();\n      }\n\n      currentCodingpassType = (currentCodingpassType + 1) % 3;\n    }\n\n    let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n    const sign = bitModel.coefficentsSign;\n    const magnitude = bitModel.coefficentsMagnitude;\n    const bitsDecoded = bitModel.bitsDecoded;\n    const magnitudeCorrection = reversible ? 0 : 0.5;\n    let k, n, nb;\n    position = 0;\n    const interleave = subband.type !== \"LL\";\n\n    for (j = 0; j < blockHeight; j++) {\n      const row = offset / width | 0;\n      const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n\n      for (k = 0; k < blockWidth; k++) {\n        n = magnitude[position];\n\n        if (n !== 0) {\n          n = (n + magnitudeCorrection) * delta;\n\n          if (sign[position] !== 0) {\n            n = -n;\n          }\n\n          nb = bitsDecoded[position];\n          const pos = interleave ? levelOffset + (offset << 1) : offset;\n\n          if (reversible && nb >= mb) {\n            coefficients[pos] = n;\n          } else {\n            coefficients[pos] = n * (1 << mb - nb);\n          }\n        }\n\n        offset++;\n        position++;\n      }\n\n      offset += width - blockWidth;\n    }\n  }\n}\n\nfunction transformTile(context, tile, c) {\n  const component = tile.components[c];\n  const codingStyleParameters = component.codingStyleParameters;\n  const quantizationParameters = component.quantizationParameters;\n  const decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount;\n  const spqcds = quantizationParameters.SPqcds;\n  const scalarExpounded = quantizationParameters.scalarExpounded;\n  const guardBits = quantizationParameters.guardBits;\n  const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n  const resetContextProbabilities = codingStyleParameters.resetContextProbabilities;\n  const precision = context.components[c].precision;\n  const reversible = codingStyleParameters.reversibleTransformation;\n  const transform = reversible ? new ReversibleTransform() : new IrreversibleTransform();\n  const subbandCoefficients = [];\n  let b = 0;\n\n  for (let i = 0; i <= decompositionLevelsCount; i++) {\n    const resolution = component.resolutions[i];\n    const width = resolution.trx1 - resolution.trx0;\n    const height = resolution.try1 - resolution.try0;\n    const coefficients = new Float32Array(width * height);\n\n    for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n      let mu, epsilon;\n\n      if (!scalarExpounded) {\n        mu = spqcds[0].mu;\n        epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n      } else {\n        mu = spqcds[b].mu;\n        epsilon = spqcds[b].epsilon;\n        b++;\n      }\n\n      const subband = resolution.subbands[j];\n      const gainLog2 = SubbandsGainLog2[subband.type];\n      const delta = reversible ? 1 : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n      const mb = guardBits + epsilon - 1;\n      copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed, resetContextProbabilities);\n    }\n\n    subbandCoefficients.push({\n      width,\n      height,\n      items: coefficients\n    });\n  }\n\n  const result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0);\n  return {\n    left: component.tcx0,\n    top: component.tcy0,\n    width: result.width,\n    height: result.height,\n    items: result.items\n  };\n}\n\nfunction transformComponents(context) {\n  const siz = context.SIZ;\n  const components = context.components;\n  const componentsCount = siz.Csiz;\n  const resultImages = [];\n\n  for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n    const tile = context.tiles[i];\n    const transformedTiles = [];\n\n    for (let c = 0; c < componentsCount; c++) {\n      transformedTiles[c] = transformTile(context, tile, c);\n    }\n\n    const tile0 = transformedTiles[0];\n    const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n    const result = {\n      left: tile0.left,\n      top: tile0.top,\n      width: tile0.width,\n      height: tile0.height,\n      items: out\n    };\n    let shift, offset;\n    let pos = 0,\n        j,\n        jj,\n        y0,\n        y1,\n        y2;\n\n    if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n      const fourComponents = componentsCount === 4;\n      const y0items = transformedTiles[0].items;\n      const y1items = transformedTiles[1].items;\n      const y2items = transformedTiles[2].items;\n      const y3items = fourComponents ? transformedTiles[3].items : null;\n      shift = components[0].precision - 8;\n      offset = (128 << shift) + 0.5;\n      const component0 = tile.components[0];\n      const alpha01 = componentsCount - 3;\n      jj = y0items.length;\n\n      if (!component0.codingStyleParameters.reversibleTransformation) {\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          out[pos++] = y0 + 1.402 * y2 >> shift;\n          out[pos++] = y0 - 0.34413 * y1 - 0.71414 * y2 >> shift;\n          out[pos++] = y0 + 1.772 * y1 >> shift;\n        }\n      } else {\n        for (j = 0; j < jj; j++, pos += alpha01) {\n          y0 = y0items[j] + offset;\n          y1 = y1items[j];\n          y2 = y2items[j];\n          const g = y0 - (y2 + y1 >> 2);\n          out[pos++] = g + y2 >> shift;\n          out[pos++] = g >> shift;\n          out[pos++] = g + y1 >> shift;\n        }\n      }\n\n      if (fourComponents) {\n        for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n          out[pos] = y3items[j] + offset >> shift;\n        }\n      }\n    } else {\n      for (let c = 0; c < componentsCount; c++) {\n        const items = transformedTiles[c].items;\n        shift = components[c].precision - 8;\n        offset = (128 << shift) + 0.5;\n\n        for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n          out[pos] = items[j] + offset >> shift;\n          pos += componentsCount;\n        }\n      }\n    }\n\n    resultImages.push(result);\n  }\n\n  return resultImages;\n}\n\nfunction initializeTile(context, tileIndex) {\n  const siz = context.SIZ;\n  const componentsCount = siz.Csiz;\n  const tile = context.tiles[tileIndex];\n\n  for (let c = 0; c < componentsCount; c++) {\n    const component = tile.components[c];\n    const qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD;\n    component.quantizationParameters = qcdOrQcc;\n    const codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD;\n    component.codingStyleParameters = codOrCoc;\n  }\n\n  tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\nclass TagTree {\n  constructor(width, height) {\n    const levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n    this.levels = [];\n\n    for (let i = 0; i < levelsLength; i++) {\n      const level = {\n        width,\n        height,\n        items: []\n      };\n      this.levels.push(level);\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j) {\n    let currentLevel = 0,\n        value = 0,\n        level;\n\n    while (currentLevel < this.levels.length) {\n      level = this.levels[currentLevel];\n      const index = i + j * level.width;\n\n      if (level.items[index] !== undefined) {\n        value = level.items[index];\n        break;\n      }\n\n      level.index = index;\n      i >>= 1;\n      j >>= 1;\n      currentLevel++;\n    }\n\n    currentLevel--;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    this.currentLevel = currentLevel;\n    delete this.value;\n  }\n\n  incrementValue() {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index]++;\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const value = level.items[level.index];\n    currentLevel--;\n\n    if (currentLevel < 0) {\n      this.value = value;\n      return false;\n    }\n\n    this.currentLevel = currentLevel;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n\n}\n\nclass InclusionTree {\n  constructor(width, height, defaultValue) {\n    const levelsLength = (0, _core_utils.log2)(Math.max(width, height)) + 1;\n    this.levels = [];\n\n    for (let i = 0; i < levelsLength; i++) {\n      const items = new Uint8Array(width * height);\n\n      for (let j = 0, jj = items.length; j < jj; j++) {\n        items[j] = defaultValue;\n      }\n\n      const level = {\n        width,\n        height,\n        items\n      };\n      this.levels.push(level);\n      width = Math.ceil(width / 2);\n      height = Math.ceil(height / 2);\n    }\n  }\n\n  reset(i, j, stopValue) {\n    let currentLevel = 0;\n\n    while (currentLevel < this.levels.length) {\n      const level = this.levels[currentLevel];\n      const index = i + j * level.width;\n      level.index = index;\n      const value = level.items[index];\n\n      if (value === 0xff) {\n        break;\n      }\n\n      if (value > stopValue) {\n        this.currentLevel = currentLevel;\n        this.propagateValues();\n        return false;\n      }\n\n      i >>= 1;\n      j >>= 1;\n      currentLevel++;\n    }\n\n    this.currentLevel = currentLevel - 1;\n    return true;\n  }\n\n  incrementValue(stopValue) {\n    const level = this.levels[this.currentLevel];\n    level.items[level.index] = stopValue + 1;\n    this.propagateValues();\n  }\n\n  propagateValues() {\n    let levelIndex = this.currentLevel;\n    let level = this.levels[levelIndex];\n    const currentValue = level.items[level.index];\n\n    while (--levelIndex >= 0) {\n      level = this.levels[levelIndex];\n      level.items[level.index] = currentValue;\n    }\n  }\n\n  nextLevel() {\n    let currentLevel = this.currentLevel;\n    let level = this.levels[currentLevel];\n    const value = level.items[level.index];\n    level.items[level.index] = 0xff;\n    currentLevel--;\n\n    if (currentLevel < 0) {\n      return false;\n    }\n\n    this.currentLevel = currentLevel;\n    level = this.levels[currentLevel];\n    level.items[level.index] = value;\n    return true;\n  }\n\n}\n\nconst BitModel = function BitModelClosure() {\n  const UNIFORM_CONTEXT = 17;\n  const RUNLENGTH_CONTEXT = 18;\n  const 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]);\n  const 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]);\n  const 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]);\n\n  class BitModel {\n    constructor(width, height, subband, zeroBitPlanes, mb) {\n      this.width = width;\n      this.height = height;\n      let contextLabelTable;\n\n      if (subband === \"HH\") {\n        contextLabelTable = HHContextLabel;\n      } else if (subband === \"HL\") {\n        contextLabelTable = HLContextLabel;\n      } else {\n        contextLabelTable = LLAndLHContextsLabel;\n      }\n\n      this.contextLabelTable = contextLabelTable;\n      const coefficientCount = width * height;\n      this.neighborsSignificance = new Uint8Array(coefficientCount);\n      this.coefficentsSign = new Uint8Array(coefficientCount);\n      let coefficentsMagnitude;\n\n      if (mb > 14) {\n        coefficentsMagnitude = new Uint32Array(coefficientCount);\n      } else if (mb > 6) {\n        coefficentsMagnitude = new Uint16Array(coefficientCount);\n      } else {\n        coefficentsMagnitude = new Uint8Array(coefficientCount);\n      }\n\n      this.coefficentsMagnitude = coefficentsMagnitude;\n      this.processingFlags = new Uint8Array(coefficientCount);\n      const bitsDecoded = new Uint8Array(coefficientCount);\n\n      if (zeroBitPlanes !== 0) {\n        for (let i = 0; i < coefficientCount; i++) {\n          bitsDecoded[i] = zeroBitPlanes;\n        }\n      }\n\n      this.bitsDecoded = bitsDecoded;\n      this.reset();\n    }\n\n    setDecoder(decoder) {\n      this.decoder = decoder;\n    }\n\n    reset() {\n      this.contexts = new Int8Array(19);\n      this.contexts[0] = 4 << 1 | 0;\n      this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0;\n      this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0;\n    }\n\n    setNeighborsSignificance(row, column, index) {\n      const neighborsSignificance = this.neighborsSignificance;\n      const width = this.width,\n            height = this.height;\n      const left = column > 0;\n      const right = column + 1 < width;\n      let i;\n\n      if (row > 0) {\n        i = index - width;\n\n        if (left) {\n          neighborsSignificance[i - 1] += 0x10;\n        }\n\n        if (right) {\n          neighborsSignificance[i + 1] += 0x10;\n        }\n\n        neighborsSignificance[i] += 0x04;\n      }\n\n      if (row + 1 < height) {\n        i = index + width;\n\n        if (left) {\n          neighborsSignificance[i - 1] += 0x10;\n        }\n\n        if (right) {\n          neighborsSignificance[i + 1] += 0x10;\n        }\n\n        neighborsSignificance[i] += 0x04;\n      }\n\n      if (left) {\n        neighborsSignificance[index - 1] += 0x01;\n      }\n\n      if (right) {\n        neighborsSignificance[index + 1] += 0x01;\n      }\n\n      neighborsSignificance[index] |= 0x80;\n    }\n\n    runSignificancePropagationPass() {\n      const decoder = this.decoder;\n      const width = this.width,\n            height = this.height;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const coefficentsSign = this.coefficentsSign;\n      const neighborsSignificance = this.neighborsSignificance;\n      const processingFlags = this.processingFlags;\n      const contexts = this.contexts;\n      const labels = this.contextLabelTable;\n      const bitsDecoded = this.bitsDecoded;\n      const processedInverseMask = ~1;\n      const processedMask = 1;\n      const firstMagnitudeBitMask = 2;\n\n      for (let i0 = 0; i0 < height; i0 += 4) {\n        for (let j = 0; j < width; j++) {\n          let index = i0 * width + j;\n\n          for (let i1 = 0; i1 < 4; i1++, index += width) {\n            const i = i0 + i1;\n\n            if (i >= height) {\n              break;\n            }\n\n            processingFlags[index] &= processedInverseMask;\n\n            if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n              continue;\n            }\n\n            const contextLabel = labels[neighborsSignificance[index]];\n            const decision = decoder.readBit(contexts, contextLabel);\n\n            if (decision) {\n              const sign = this.decodeSignBit(i, j, index);\n              coefficentsSign[index] = sign;\n              coefficentsMagnitude[index] = 1;\n              this.setNeighborsSignificance(i, j, index);\n              processingFlags[index] |= firstMagnitudeBitMask;\n            }\n\n            bitsDecoded[index]++;\n            processingFlags[index] |= processedMask;\n          }\n        }\n      }\n    }\n\n    decodeSignBit(row, column, index) {\n      const width = this.width,\n            height = this.height;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const coefficentsSign = this.coefficentsSign;\n      let contribution, sign0, sign1, significance1;\n      let contextLabel, decoded;\n      significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n\n      if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n        sign1 = coefficentsSign[index + 1];\n\n        if (significance1) {\n          sign0 = coefficentsSign[index - 1];\n          contribution = 1 - sign1 - sign0;\n        } else {\n          contribution = 1 - sign1 - sign1;\n        }\n      } else if (significance1) {\n        sign0 = coefficentsSign[index - 1];\n        contribution = 1 - sign0 - sign0;\n      } else {\n        contribution = 0;\n      }\n\n      const horizontalContribution = 3 * contribution;\n      significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n\n      if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n        sign1 = coefficentsSign[index + width];\n\n        if (significance1) {\n          sign0 = coefficentsSign[index - width];\n          contribution = 1 - sign1 - sign0 + horizontalContribution;\n        } else {\n          contribution = 1 - sign1 - sign1 + horizontalContribution;\n        }\n      } else if (significance1) {\n        sign0 = coefficentsSign[index - width];\n        contribution = 1 - sign0 - sign0 + horizontalContribution;\n      } else {\n        contribution = horizontalContribution;\n      }\n\n      if (contribution >= 0) {\n        contextLabel = 9 + contribution;\n        decoded = this.decoder.readBit(this.contexts, contextLabel);\n      } else {\n        contextLabel = 9 - contribution;\n        decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n      }\n\n      return decoded;\n    }\n\n    runMagnitudeRefinementPass() {\n      const decoder = this.decoder;\n      const width = this.width,\n            height = this.height;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const neighborsSignificance = this.neighborsSignificance;\n      const contexts = this.contexts;\n      const bitsDecoded = this.bitsDecoded;\n      const processingFlags = this.processingFlags;\n      const processedMask = 1;\n      const firstMagnitudeBitMask = 2;\n      const length = width * height;\n      const width4 = width * 4;\n\n      for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n        indexNext = Math.min(length, index0 + width4);\n\n        for (let j = 0; j < width; j++) {\n          for (let index = index0 + j; index < indexNext; index += width) {\n            if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n              continue;\n            }\n\n            let contextLabel = 16;\n\n            if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n              processingFlags[index] ^= firstMagnitudeBitMask;\n              const significance = neighborsSignificance[index] & 127;\n              contextLabel = significance === 0 ? 15 : 14;\n            }\n\n            const bit = decoder.readBit(contexts, contextLabel);\n            coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit;\n            bitsDecoded[index]++;\n            processingFlags[index] |= processedMask;\n          }\n        }\n      }\n    }\n\n    runCleanupPass() {\n      const decoder = this.decoder;\n      const width = this.width,\n            height = this.height;\n      const neighborsSignificance = this.neighborsSignificance;\n      const coefficentsMagnitude = this.coefficentsMagnitude;\n      const coefficentsSign = this.coefficentsSign;\n      const contexts = this.contexts;\n      const labels = this.contextLabelTable;\n      const bitsDecoded = this.bitsDecoded;\n      const processingFlags = this.processingFlags;\n      const processedMask = 1;\n      const firstMagnitudeBitMask = 2;\n      const oneRowDown = width;\n      const twoRowsDown = width * 2;\n      const threeRowsDown = width * 3;\n      let iNext;\n\n      for (let i0 = 0; i0 < height; i0 = iNext) {\n        iNext = Math.min(i0 + 4, height);\n        const indexBase = i0 * width;\n        const checkAllEmpty = i0 + 3 < height;\n\n        for (let j = 0; j < width; j++) {\n          const index0 = indexBase + j;\n          const 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;\n          let i1 = 0,\n              index = index0;\n          let i = i0,\n              sign;\n\n          if (allEmpty) {\n            const hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n\n            if (!hasSignificantCoefficent) {\n              bitsDecoded[index0]++;\n              bitsDecoded[index0 + oneRowDown]++;\n              bitsDecoded[index0 + twoRowsDown]++;\n              bitsDecoded[index0 + threeRowsDown]++;\n              continue;\n            }\n\n            i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n            if (i1 !== 0) {\n              i = i0 + i1;\n              index += i1 * width;\n            }\n\n            sign = this.decodeSignBit(i, j, index);\n            coefficentsSign[index] = sign;\n            coefficentsMagnitude[index] = 1;\n            this.setNeighborsSignificance(i, j, index);\n            processingFlags[index] |= firstMagnitudeBitMask;\n            index = index0;\n\n            for (let i2 = i0; i2 <= i; i2++, index += width) {\n              bitsDecoded[index]++;\n            }\n\n            i1++;\n          }\n\n          for (i = i0 + i1; i < iNext; i++, index += width) {\n            if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n              continue;\n            }\n\n            const contextLabel = labels[neighborsSignificance[index]];\n            const decision = decoder.readBit(contexts, contextLabel);\n\n            if (decision === 1) {\n              sign = this.decodeSignBit(i, j, index);\n              coefficentsSign[index] = sign;\n              coefficentsMagnitude[index] = 1;\n              this.setNeighborsSignificance(i, j, index);\n              processingFlags[index] |= firstMagnitudeBitMask;\n            }\n\n            bitsDecoded[index]++;\n          }\n        }\n      }\n    }\n\n    checkSegmentationSymbol() {\n      const decoder = this.decoder;\n      const contexts = this.contexts;\n      const symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n      if (symbol !== 0xa) {\n        throw new JpxError(\"Invalid segmentation symbol\");\n      }\n    }\n\n  }\n\n  return BitModel;\n}();\n\nclass Transform {\n  constructor() {\n    if (this.constructor === Transform) {\n      (0, _util.unreachable)(\"Cannot initialize Transform.\");\n    }\n  }\n\n  calculate(subbands, u0, v0) {\n    let ll = subbands[0];\n\n    for (let i = 1, ii = subbands.length; i < ii; i++) {\n      ll = this.iterate(ll, subbands[i], u0, v0);\n    }\n\n    return ll;\n  }\n\n  extend(buffer, offset, size) {\n    let i1 = offset - 1,\n        j1 = offset + 1;\n    let i2 = offset + size - 2,\n        j2 = offset + size;\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1--] = buffer[j1++];\n    buffer[j2++] = buffer[i2--];\n    buffer[i1] = buffer[j1];\n    buffer[j2] = buffer[i2];\n  }\n\n  filter(x, offset, length) {\n    (0, _util.unreachable)(\"Abstract method `filter` called\");\n  }\n\n  iterate(ll, hl_lh_hh, u0, v0) {\n    const llWidth = ll.width,\n          llHeight = ll.height;\n    let llItems = ll.items;\n    const width = hl_lh_hh.width;\n    const height = hl_lh_hh.height;\n    const items = hl_lh_hh.items;\n    let i, j, k, l, u, v;\n\n    for (k = 0, i = 0; i < llHeight; i++) {\n      l = i * 2 * width;\n\n      for (j = 0; j < llWidth; j++, k++, l += 2) {\n        items[l] = llItems[k];\n      }\n    }\n\n    llItems = ll.items = null;\n    const bufferPadding = 4;\n    const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n    if (width === 1) {\n      if ((u0 & 1) !== 0) {\n        for (v = 0, k = 0; v < height; v++, k += width) {\n          items[k] *= 0.5;\n        }\n      }\n    } else {\n      for (v = 0, k = 0; v < height; v++, k += width) {\n        rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n        this.extend(rowBuffer, bufferPadding, width);\n        this.filter(rowBuffer, bufferPadding, width);\n        items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n      }\n    }\n\n    let numBuffers = 16;\n    const colBuffers = [];\n\n    for (i = 0; i < numBuffers; i++) {\n      colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n    }\n\n    let b,\n        currentBuffer = 0;\n    ll = bufferPadding + height;\n\n    if (height === 1) {\n      if ((v0 & 1) !== 0) {\n        for (u = 0; u < width; u++) {\n          items[u] *= 0.5;\n        }\n      }\n    } else {\n      for (u = 0; u < width; u++) {\n        if (currentBuffer === 0) {\n          numBuffers = Math.min(width - u, numBuffers);\n\n          for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              colBuffers[b][l] = items[k + b];\n            }\n          }\n\n          currentBuffer = numBuffers;\n        }\n\n        currentBuffer--;\n        const buffer = colBuffers[currentBuffer];\n        this.extend(buffer, bufferPadding, height);\n        this.filter(buffer, bufferPadding, height);\n\n        if (currentBuffer === 0) {\n          k = u - numBuffers + 1;\n\n          for (l = bufferPadding; l < ll; k += width, l++) {\n            for (b = 0; b < numBuffers; b++) {\n              items[k + b] = colBuffers[b][l];\n            }\n          }\n        }\n      }\n    }\n\n    return {\n      width,\n      height,\n      items\n    };\n  }\n\n}\n\nclass IrreversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n, current, next;\n    const alpha = -1.586134342059924;\n    const beta = -0.052980118572961;\n    const gamma = 0.882911075530934;\n    const delta = 0.443506852043971;\n    const K = 1.230174104914001;\n    const K_ = 1 / K;\n    j = offset - 3;\n\n    for (n = len + 4; n--; j += 2) {\n      x[j] *= K_;\n    }\n\n    j = offset - 2;\n    current = delta * x[j - 1];\n\n    for (n = len + 3; n--; j += 2) {\n      next = delta * x[j + 1];\n      x[j] = K * x[j] - current - next;\n\n      if (n--) {\n        j += 2;\n        current = delta * x[j + 1];\n        x[j] = K * x[j] - current - next;\n      } else {\n        break;\n      }\n    }\n\n    j = offset - 1;\n    current = gamma * x[j - 1];\n\n    for (n = len + 2; n--; j += 2) {\n      next = gamma * x[j + 1];\n      x[j] -= current + next;\n\n      if (n--) {\n        j += 2;\n        current = gamma * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    j = offset;\n    current = beta * x[j - 1];\n\n    for (n = len + 1; n--; j += 2) {\n      next = beta * x[j + 1];\n      x[j] -= current + next;\n\n      if (n--) {\n        j += 2;\n        current = beta * x[j + 1];\n        x[j] -= current + next;\n      } else {\n        break;\n      }\n    }\n\n    if (len !== 0) {\n      j = offset + 1;\n      current = alpha * x[j - 1];\n\n      for (n = len; n--; j += 2) {\n        next = alpha * x[j + 1];\n        x[j] -= current + next;\n\n        if (n--) {\n          j += 2;\n          current = alpha * x[j + 1];\n          x[j] -= current + next;\n        } else {\n          break;\n        }\n      }\n    }\n  }\n\n}\n\nclass ReversibleTransform extends Transform {\n  filter(x, offset, length) {\n    const len = length >> 1;\n    offset |= 0;\n    let j, n;\n\n    for (j = offset, n = len + 1; n--; j += 2) {\n      x[j] -= x[j - 1] + x[j + 1] + 2 >> 2;\n    }\n\n    for (j = offset + 1, n = len; n--; j += 2) {\n      x[j] += x[j - 1] + x[j + 1] >> 1;\n    }\n  }\n\n}\n\n/***/ }),\n/* 31 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.LZWStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nclass LZWStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength, earlyChange) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    this.cachedData = 0;\n    this.bitsCached = 0;\n    const maxLzwDictionarySize = 4096;\n    const lzwState = {\n      earlyChange,\n      codeLength: 9,\n      nextCode: 258,\n      dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n      currentSequence: new Uint8Array(maxLzwDictionarySize),\n      currentSequenceLength: 0\n    };\n\n    for (let i = 0; i < 256; ++i) {\n      lzwState.dictionaryValues[i] = i;\n      lzwState.dictionaryLengths[i] = 1;\n    }\n\n    this.lzwState = lzwState;\n  }\n\n  readBits(n) {\n    let bitsCached = this.bitsCached;\n    let cachedData = this.cachedData;\n\n    while (bitsCached < n) {\n      const c = this.str.getByte();\n\n      if (c === -1) {\n        this.eof = true;\n        return null;\n      }\n\n      cachedData = cachedData << 8 | c;\n      bitsCached += 8;\n    }\n\n    this.bitsCached = bitsCached -= n;\n    this.cachedData = cachedData;\n    this.lastCode = null;\n    return cachedData >>> bitsCached & (1 << n) - 1;\n  }\n\n  readBlock() {\n    const blockSize = 512,\n          decodedSizeDelta = blockSize;\n    let estimatedDecodedSize = blockSize * 2;\n    let i, j, q;\n    const lzwState = this.lzwState;\n\n    if (!lzwState) {\n      return;\n    }\n\n    const earlyChange = lzwState.earlyChange;\n    let nextCode = lzwState.nextCode;\n    const dictionaryValues = lzwState.dictionaryValues;\n    const dictionaryLengths = lzwState.dictionaryLengths;\n    const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n    let codeLength = lzwState.codeLength;\n    let prevCode = lzwState.prevCode;\n    const currentSequence = lzwState.currentSequence;\n    let currentSequenceLength = lzwState.currentSequenceLength;\n    let decodedLength = 0;\n    let currentBufferLength = this.bufferLength;\n    let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n    for (i = 0; i < blockSize; i++) {\n      const code = this.readBits(codeLength);\n      const hasPrev = currentSequenceLength > 0;\n\n      if (code < 256) {\n        currentSequence[0] = code;\n        currentSequenceLength = 1;\n      } else if (code >= 258) {\n        if (code < nextCode) {\n          currentSequenceLength = dictionaryLengths[code];\n\n          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n            currentSequence[j] = dictionaryValues[q];\n            q = dictionaryPrevCodes[q];\n          }\n        } else {\n          currentSequence[currentSequenceLength++] = currentSequence[0];\n        }\n      } else if (code === 256) {\n        codeLength = 9;\n        nextCode = 258;\n        currentSequenceLength = 0;\n        continue;\n      } else {\n        this.eof = true;\n        delete this.lzwState;\n        break;\n      }\n\n      if (hasPrev) {\n        dictionaryPrevCodes[nextCode] = prevCode;\n        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n        dictionaryValues[nextCode] = currentSequence[0];\n        nextCode++;\n        codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n      }\n\n      prevCode = code;\n      decodedLength += currentSequenceLength;\n\n      if (estimatedDecodedSize < decodedLength) {\n        do {\n          estimatedDecodedSize += decodedSizeDelta;\n        } while (estimatedDecodedSize < decodedLength);\n\n        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n      }\n\n      for (j = 0; j < currentSequenceLength; j++) {\n        buffer[currentBufferLength++] = currentSequence[j];\n      }\n    }\n\n    lzwState.nextCode = nextCode;\n    lzwState.codeLength = codeLength;\n    lzwState.prevCode = prevCode;\n    lzwState.currentSequenceLength = currentSequenceLength;\n    this.bufferLength = currentBufferLength;\n  }\n\n}\n\nexports.LZWStream = LZWStream;\n\n/***/ }),\n/* 32 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PredictorStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass PredictorStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength, params) {\n    super(maybeLength);\n\n    if (!(params instanceof _primitives.Dict)) {\n      return str;\n    }\n\n    const predictor = this.predictor = params.get(\"Predictor\") || 1;\n\n    if (predictor <= 1) {\n      return str;\n    }\n\n    if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n      throw new _util.FormatError(`Unsupported predictor: ${predictor}`);\n    }\n\n    if (predictor === 2) {\n      this.readBlock = this.readBlockTiff;\n    } else {\n      this.readBlock = this.readBlockPng;\n    }\n\n    this.str = str;\n    this.dict = str.dict;\n    const colors = this.colors = params.get(\"Colors\") || 1;\n    const bits = this.bits = params.get(\"BPC\", \"BitsPerComponent\") || 8;\n    const columns = this.columns = params.get(\"Columns\") || 1;\n    this.pixBytes = colors * bits + 7 >> 3;\n    this.rowBytes = columns * colors * bits + 7 >> 3;\n    return this;\n  }\n\n  readBlockTiff() {\n    const rowBytes = this.rowBytes;\n    const bufferLength = this.bufferLength;\n    const buffer = this.ensureBuffer(bufferLength + rowBytes);\n    const bits = this.bits;\n    const colors = this.colors;\n    const rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n\n    if (this.eof) {\n      return;\n    }\n\n    let inbuf = 0,\n        outbuf = 0;\n    let inbits = 0,\n        outbits = 0;\n    let pos = bufferLength;\n    let i;\n\n    if (bits === 1 && colors === 1) {\n      for (i = 0; i < rowBytes; ++i) {\n        let c = rawBytes[i] ^ inbuf;\n        c ^= c >> 1;\n        c ^= c >> 2;\n        c ^= c >> 4;\n        inbuf = (c & 1) << 7;\n        buffer[pos++] = c;\n      }\n    } else if (bits === 8) {\n      for (i = 0; i < colors; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n\n      for (; i < rowBytes; ++i) {\n        buffer[pos] = buffer[pos - colors] + rawBytes[i];\n        pos++;\n      }\n    } else if (bits === 16) {\n      const bytesPerPixel = colors * 2;\n\n      for (i = 0; i < bytesPerPixel; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n\n      for (; i < rowBytes; i += 2) {\n        const sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xff);\n        buffer[pos++] = sum >> 8 & 0xff;\n        buffer[pos++] = sum & 0xff;\n      }\n    } else {\n      const compArray = new Uint8Array(colors + 1);\n      const bitMask = (1 << bits) - 1;\n      let j = 0,\n          k = bufferLength;\n      const columns = this.columns;\n\n      for (i = 0; i < columns; ++i) {\n        for (let kk = 0; kk < colors; ++kk) {\n          if (inbits < bits) {\n            inbuf = inbuf << 8 | rawBytes[j++] & 0xff;\n            inbits += 8;\n          }\n\n          compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n          inbits -= bits;\n          outbuf = outbuf << bits | compArray[kk];\n          outbits += bits;\n\n          if (outbits >= 8) {\n            buffer[k++] = outbuf >> outbits - 8 & 0xff;\n            outbits -= 8;\n          }\n        }\n      }\n\n      if (outbits > 0) {\n        buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n      }\n    }\n\n    this.bufferLength += rowBytes;\n  }\n\n  readBlockPng() {\n    const rowBytes = this.rowBytes;\n    const pixBytes = this.pixBytes;\n    const predictor = this.str.getByte();\n    const rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n\n    if (this.eof) {\n      return;\n    }\n\n    const bufferLength = this.bufferLength;\n    const buffer = this.ensureBuffer(bufferLength + rowBytes);\n    let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n\n    if (prevRow.length === 0) {\n      prevRow = new Uint8Array(rowBytes);\n    }\n\n    let i,\n        j = bufferLength,\n        up,\n        c;\n\n    switch (predictor) {\n      case 0:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n\n        break;\n\n      case 1:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n\n        for (; i < rowBytes; ++i) {\n          buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff;\n          j++;\n        }\n\n        break;\n\n      case 2:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = prevRow[i] + rawBytes[i] & 0xff;\n        }\n\n        break;\n\n      case 3:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n        }\n\n        for (; i < rowBytes; ++i) {\n          buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff;\n          j++;\n        }\n\n        break;\n\n      case 4:\n        for (i = 0; i < pixBytes; ++i) {\n          up = prevRow[i];\n          c = rawBytes[i];\n          buffer[j++] = up + c;\n        }\n\n        for (; i < rowBytes; ++i) {\n          up = prevRow[i];\n          const upLeft = prevRow[i - pixBytes];\n          const left = buffer[j - pixBytes];\n          const p = left + up - upLeft;\n          let pa = p - left;\n\n          if (pa < 0) {\n            pa = -pa;\n          }\n\n          let pb = p - up;\n\n          if (pb < 0) {\n            pb = -pb;\n          }\n\n          let pc = p - upLeft;\n\n          if (pc < 0) {\n            pc = -pc;\n          }\n\n          c = rawBytes[i];\n\n          if (pa <= pb && pa <= pc) {\n            buffer[j++] = left + c;\n          } else if (pb <= pc) {\n            buffer[j++] = up + c;\n          } else {\n            buffer[j++] = upLeft + c;\n          }\n        }\n\n        break;\n\n      default:\n        throw new _util.FormatError(`Unsupported predictor: ${predictor}`);\n    }\n\n    this.bufferLength += rowBytes;\n  }\n\n}\n\nexports.PredictorStream = PredictorStream;\n\n/***/ }),\n/* 33 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.RunLengthStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nclass RunLengthStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n  }\n\n  readBlock() {\n    const repeatHeader = this.str.getBytes(2);\n\n    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n      this.eof = true;\n      return;\n    }\n\n    let buffer;\n    let bufferLength = this.bufferLength;\n    let n = repeatHeader[0];\n\n    if (n < 128) {\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer[bufferLength++] = repeatHeader[1];\n\n      if (n > 0) {\n        const source = this.str.getBytes(n);\n        buffer.set(source, bufferLength);\n        bufferLength += n;\n      }\n    } else {\n      n = 257 - n;\n      const b = repeatHeader[1];\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n\n      for (let i = 0; i < n; i++) {\n        buffer[bufferLength++] = b;\n      }\n    }\n\n    this.bufferLength = bufferLength;\n  }\n\n}\n\nexports.RunLengthStream = RunLengthStream;\n\n/***/ }),\n/* 34 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Font = exports.ErrorFont = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(35);\n\nvar _fonts_utils = __w_pdfjs_require__(38);\n\nvar _unicode = __w_pdfjs_require__(40);\n\nvar _glyphlist = __w_pdfjs_require__(39);\n\nvar _encodings = __w_pdfjs_require__(37);\n\nvar _standard_fonts = __w_pdfjs_require__(41);\n\nvar _to_unicode_map = __w_pdfjs_require__(42);\n\nvar _cff_font = __w_pdfjs_require__(43);\n\nvar _font_renderer = __w_pdfjs_require__(44);\n\nvar _metrics = __w_pdfjs_require__(45);\n\nvar _glyf = __w_pdfjs_require__(46);\n\nvar _cmap = __w_pdfjs_require__(16);\n\nvar _opentype_file_builder = __w_pdfjs_require__(47);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _stream = __w_pdfjs_require__(10);\n\nvar _type1_font = __w_pdfjs_require__(48);\n\nconst PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]];\nconst PDF_GLYPH_SPACE_UNITS = 1000;\nconst EXPORT_DATA_PROPERTIES = [\"ascent\", \"bbox\", \"black\", \"bold\", \"charProcOperatorList\", \"composite\", \"cssFontInfo\", \"data\", \"defaultVMetrics\", \"defaultWidth\", \"descent\", \"fallbackName\", \"fontMatrix\", \"fontType\", \"isType3Font\", \"italic\", \"loadedName\", \"mimetype\", \"missingFile\", \"name\", \"remeasure\", \"subtype\", \"type\", \"vertical\"];\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\"cMap\", \"defaultEncoding\", \"differences\", \"isMonospace\", \"isSerifFont\", \"isSymbolicFont\", \"seacMap\", \"toFontChar\", \"toUnicode\", \"vmetrics\", \"widths\"];\n\nfunction adjustWidths(properties) {\n  if (!properties.fontMatrix) {\n    return;\n  }\n\n  if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n    return;\n  }\n\n  const scale = 0.001 / properties.fontMatrix[0];\n  const glyphsWidths = properties.widths;\n\n  for (const glyph in glyphsWidths) {\n    glyphsWidths[glyph] *= scale;\n  }\n\n  properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n  if (properties.isInternalFont) {\n    return;\n  }\n\n  if (builtInEncoding === properties.defaultEncoding) {\n    return;\n  }\n\n  if (properties.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap) {\n    return;\n  }\n\n  const toUnicode = [],\n        glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n  for (const charCode in builtInEncoding) {\n    if (properties.hasIncludedToUnicodeMap) {\n      if (properties.toUnicode.has(charCode)) {\n        continue;\n      }\n    } else if (properties.hasEncoding) {\n      if (properties.differences.length === 0 || properties.differences[charCode] !== undefined) {\n        continue;\n      }\n    }\n\n    const glyphName = builtInEncoding[charCode];\n    const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n    if (unicode !== -1) {\n      toUnicode[charCode] = String.fromCharCode(unicode);\n    }\n  }\n\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\n\nfunction amendFallbackToUnicode(properties) {\n  if (!properties.fallbackToUnicode) {\n    return;\n  }\n\n  if (properties.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap) {\n    return;\n  }\n\n  const toUnicode = [];\n\n  for (const charCode in properties.fallbackToUnicode) {\n    if (properties.toUnicode.has(charCode)) {\n      continue;\n    }\n\n    toUnicode[charCode] = properties.fallbackToUnicode[charCode];\n  }\n\n  if (toUnicode.length > 0) {\n    properties.toUnicode.amend(toUnicode);\n  }\n}\n\nclass Glyph {\n  constructor(originalCharCode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n    this.originalCharCode = originalCharCode;\n    this.fontChar = fontChar;\n    this.unicode = unicode;\n    this.accent = accent;\n    this.width = width;\n    this.vmetric = vmetric;\n    this.operatorListId = operatorListId;\n    this.isSpace = isSpace;\n    this.isInFont = isInFont;\n    const category = (0, _unicode.getCharUnicodeCategory)(unicode);\n    this.isWhitespace = category.isWhitespace;\n    this.isZeroWidthDiacritic = category.isZeroWidthDiacritic;\n    this.isInvisibleFormatMark = category.isInvisibleFormatMark;\n  }\n\n  matchesForCache(originalCharCode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n    return this.originalCharCode === originalCharCode && this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont;\n  }\n\n}\n\nfunction int16(b0, b1) {\n  return (b0 << 8) + b1;\n}\n\nfunction writeSignedInt16(bytes, index, value) {\n  bytes[index + 1] = value;\n  bytes[index] = value >>> 8;\n}\n\nfunction signedInt16(b0, b1) {\n  const value = (b0 << 8) + b1;\n  return value & 1 << 15 ? value - 0x10000 : value;\n}\n\nfunction int32(b0, b1, b2, b3) {\n  return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n}\n\nfunction string16(value) {\n  return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n}\n\nfunction safeString16(value) {\n  if (value > 0x7fff) {\n    value = 0x7fff;\n  } else if (value < -0x8000) {\n    value = -0x8000;\n  }\n\n  return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n}\n\nfunction isTrueTypeFile(file) {\n  const header = file.peekBytes(4);\n  return (0, _core_utils.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === \"true\";\n}\n\nfunction isTrueTypeCollectionFile(file) {\n  const header = file.peekBytes(4);\n  return (0, _util.bytesToString)(header) === \"ttcf\";\n}\n\nfunction isOpenTypeFile(file) {\n  const header = file.peekBytes(4);\n  return (0, _util.bytesToString)(header) === \"OTTO\";\n}\n\nfunction isType1File(file) {\n  const header = file.peekBytes(2);\n\n  if (header[0] === 0x25 && header[1] === 0x21) {\n    return true;\n  }\n\n  if (header[0] === 0x80 && header[1] === 0x01) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction isCFFFile(file) {\n  const header = file.peekBytes(4);\n\n  if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction getFontFileType(file, {\n  type,\n  subtype,\n  composite\n}) {\n  let fileType, fileSubtype;\n\n  if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n    if (composite) {\n      fileType = \"CIDFontType2\";\n    } else {\n      fileType = \"TrueType\";\n    }\n  } else if (isOpenTypeFile(file)) {\n    if (composite) {\n      fileType = \"CIDFontType2\";\n    } else {\n      fileType = \"OpenType\";\n    }\n  } else if (isType1File(file)) {\n    if (composite) {\n      fileType = \"CIDFontType0\";\n    } else {\n      fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n    }\n  } else if (isCFFFile(file)) {\n    if (composite) {\n      fileType = \"CIDFontType0\";\n      fileSubtype = \"CIDFontType0C\";\n    } else {\n      fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n      fileSubtype = \"Type1C\";\n    }\n  } else {\n    (0, _util.warn)(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n    fileType = type;\n    fileSubtype = subtype;\n  }\n\n  return [fileType, fileSubtype];\n}\n\nfunction applyStandardFontGlyphMap(map, glyphMap) {\n  for (const charCode in glyphMap) {\n    map[+charCode] = glyphMap[charCode];\n  }\n}\n\nfunction buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n  const toFontChar = [];\n  let unicode;\n\n  for (let i = 0, ii = encoding.length; i < ii; i++) {\n    unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n\n    if (unicode !== -1) {\n      toFontChar[i] = unicode;\n    }\n  }\n\n  for (const charCode in differences) {\n    unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n\n    if (unicode !== -1) {\n      toFontChar[+charCode] = unicode;\n    }\n  }\n\n  return toFontChar;\n}\n\nfunction convertCidString(charCode, cid, shouldThrow = false) {\n  switch (cid.length) {\n    case 1:\n      return cid.charCodeAt(0);\n\n    case 2:\n      return cid.charCodeAt(0) << 8 | cid.charCodeAt(1);\n  }\n\n  const msg = `Unsupported CID string (charCode ${charCode}): \"${cid}\".`;\n\n  if (shouldThrow) {\n    throw new _util.FormatError(msg);\n  }\n\n  (0, _util.warn)(msg);\n  return cid;\n}\n\nfunction adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId, toUnicode) {\n  const newMap = Object.create(null);\n  const toUnicodeExtraMap = new Map();\n  const toFontChar = [];\n  const usedGlyphIds = new Set();\n  let privateUseAreaIndex = 0;\n  const privateUseOffetStart = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n  let nextAvailableFontCharCode = privateUseOffetStart;\n  let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n\n  for (let originalCharCode in charCodeToGlyphId) {\n    originalCharCode |= 0;\n    let glyphId = charCodeToGlyphId[originalCharCode];\n\n    if (!hasGlyph(glyphId)) {\n      continue;\n    }\n\n    if (nextAvailableFontCharCode > privateUseOffetEnd) {\n      privateUseAreaIndex++;\n\n      if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n        (0, _util.warn)(\"Ran out of space in font private use area.\");\n        break;\n      }\n\n      nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n      privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n    }\n\n    const fontCharCode = nextAvailableFontCharCode++;\n\n    if (glyphId === 0) {\n      glyphId = newGlyphZeroId;\n    }\n\n    let unicode = toUnicode.get(originalCharCode);\n\n    if (typeof unicode === \"string\") {\n      unicode = unicode.codePointAt(0);\n    }\n\n    if (unicode && unicode < privateUseOffetStart && !usedGlyphIds.has(glyphId)) {\n      toUnicodeExtraMap.set(unicode, glyphId);\n      usedGlyphIds.add(glyphId);\n    }\n\n    newMap[fontCharCode] = glyphId;\n    toFontChar[originalCharCode] = fontCharCode;\n  }\n\n  return {\n    toFontChar,\n    charCodeToGlyphId: newMap,\n    toUnicodeExtraMap,\n    nextAvailableFontCharCode\n  };\n}\n\nfunction getRanges(glyphs, toUnicodeExtraMap, numGlyphs) {\n  const codes = [];\n\n  for (const charCode in glyphs) {\n    if (glyphs[charCode] >= numGlyphs) {\n      continue;\n    }\n\n    codes.push({\n      fontCharCode: charCode | 0,\n      glyphId: glyphs[charCode]\n    });\n  }\n\n  if (toUnicodeExtraMap) {\n    for (const [unicode, glyphId] of toUnicodeExtraMap) {\n      if (glyphId >= numGlyphs) {\n        continue;\n      }\n\n      codes.push({\n        fontCharCode: unicode,\n        glyphId\n      });\n    }\n  }\n\n  if (codes.length === 0) {\n    codes.push({\n      fontCharCode: 0,\n      glyphId: 0\n    });\n  }\n\n  codes.sort(function fontGetRangesSort(a, b) {\n    return a.fontCharCode - b.fontCharCode;\n  });\n  const ranges = [];\n  const length = codes.length;\n\n  for (let n = 0; n < length;) {\n    const start = codes[n].fontCharCode;\n    const codeIndices = [codes[n].glyphId];\n    ++n;\n    let end = start;\n\n    while (n < length && end + 1 === codes[n].fontCharCode) {\n      codeIndices.push(codes[n].glyphId);\n      ++end;\n      ++n;\n\n      if (end === 0xffff) {\n        break;\n      }\n    }\n\n    ranges.push([start, end, codeIndices]);\n  }\n\n  return ranges;\n}\n\nfunction createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) {\n  const ranges = getRanges(glyphs, toUnicodeExtraMap, numGlyphs);\n  const numTables = ranges.at(-1)[1] > 0xffff ? 2 : 1;\n  let cmap = \"\\x00\\x00\" + string16(numTables) + \"\\x00\\x03\" + \"\\x00\\x01\" + (0, _util.string32)(4 + numTables * 8);\n  let i, ii, j, jj;\n\n  for (i = ranges.length - 1; i >= 0; --i) {\n    if (ranges[i][0] <= 0xffff) {\n      break;\n    }\n  }\n\n  const bmpLength = i + 1;\n\n  if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n    ranges[i][1] = 0xfffe;\n  }\n\n  const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n  const segCount = bmpLength + trailingRangesCount;\n\n  const searchParams = _opentype_file_builder.OpenTypeFileBuilder.getSearchParams(segCount, 2);\n\n  let startCount = \"\";\n  let endCount = \"\";\n  let idDeltas = \"\";\n  let idRangeOffsets = \"\";\n  let glyphsIds = \"\";\n  let bias = 0;\n  let range, start, end, codes;\n\n  for (i = 0, ii = bmpLength; i < ii; i++) {\n    range = ranges[i];\n    start = range[0];\n    end = range[1];\n    startCount += string16(start);\n    endCount += string16(end);\n    codes = range[2];\n    let contiguous = true;\n\n    for (j = 1, jj = codes.length; j < jj; ++j) {\n      if (codes[j] !== codes[j - 1] + 1) {\n        contiguous = false;\n        break;\n      }\n    }\n\n    if (!contiguous) {\n      const offset = (segCount - i) * 2 + bias * 2;\n      bias += end - start + 1;\n      idDeltas += string16(0);\n      idRangeOffsets += string16(offset);\n\n      for (j = 0, jj = codes.length; j < jj; ++j) {\n        glyphsIds += string16(codes[j]);\n      }\n    } else {\n      const startCode = codes[0];\n      idDeltas += string16(startCode - start & 0xffff);\n      idRangeOffsets += string16(0);\n    }\n  }\n\n  if (trailingRangesCount > 0) {\n    endCount += \"\\xFF\\xFF\";\n    startCount += \"\\xFF\\xFF\";\n    idDeltas += \"\\x00\\x01\";\n    idRangeOffsets += \"\\x00\\x00\";\n  }\n\n  const format314 = \"\\x00\\x00\" + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + \"\\x00\\x00\" + startCount + idDeltas + idRangeOffsets + glyphsIds;\n  let format31012 = \"\";\n  let header31012 = \"\";\n\n  if (numTables > 1) {\n    cmap += \"\\x00\\x03\" + \"\\x00\\x0A\" + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n    format31012 = \"\";\n\n    for (i = 0, ii = ranges.length; i < ii; i++) {\n      range = ranges[i];\n      start = range[0];\n      codes = range[2];\n      let code = codes[0];\n\n      for (j = 1, jj = codes.length; j < jj; ++j) {\n        if (codes[j] !== codes[j - 1] + 1) {\n          end = range[0] + j - 1;\n          format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n          start = end + 1;\n          code = codes[j];\n        }\n      }\n\n      format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\n    }\n\n    header31012 = \"\\x00\\x0C\" + \"\\x00\\x00\" + (0, _util.string32)(format31012.length + 16) + \"\\x00\\x00\\x00\\x00\" + (0, _util.string32)(format31012.length / 12);\n  }\n\n  return cmap + \"\\x00\\x04\" + string16(format314.length + 4) + format314 + header31012 + format31012;\n}\n\nfunction validateOS2Table(os2, file) {\n  file.pos = (file.start || 0) + os2.offset;\n  const version = file.getUint16();\n  file.skip(60);\n  const selection = file.getUint16();\n\n  if (version < 4 && selection & 0x0300) {\n    return false;\n  }\n\n  const firstChar = file.getUint16();\n  const lastChar = file.getUint16();\n\n  if (firstChar > lastChar) {\n    return false;\n  }\n\n  file.skip(6);\n  const usWinAscent = file.getUint16();\n\n  if (usWinAscent === 0) {\n    return false;\n  }\n\n  os2.data[8] = os2.data[9] = 0;\n  return true;\n}\n\nfunction createOS2Table(properties, charstrings, override) {\n  override = override || {\n    unitsPerEm: 0,\n    yMax: 0,\n    yMin: 0,\n    ascent: 0,\n    descent: 0\n  };\n  let ulUnicodeRange1 = 0;\n  let ulUnicodeRange2 = 0;\n  let ulUnicodeRange3 = 0;\n  let ulUnicodeRange4 = 0;\n  let firstCharIndex = null;\n  let lastCharIndex = 0;\n\n  if (charstrings) {\n    for (let code in charstrings) {\n      code |= 0;\n\n      if (firstCharIndex > code || !firstCharIndex) {\n        firstCharIndex = code;\n      }\n\n      if (lastCharIndex < code) {\n        lastCharIndex = code;\n      }\n\n      const position = (0, _unicode.getUnicodeRangeFor)(code);\n\n      if (position < 32) {\n        ulUnicodeRange1 |= 1 << position;\n      } else if (position < 64) {\n        ulUnicodeRange2 |= 1 << position - 32;\n      } else if (position < 96) {\n        ulUnicodeRange3 |= 1 << position - 64;\n      } else if (position < 123) {\n        ulUnicodeRange4 |= 1 << position - 96;\n      } else {\n        throw new _util.FormatError(\"Unicode ranges Bits > 123 are reserved for internal usage\");\n      }\n    }\n\n    if (lastCharIndex > 0xffff) {\n      lastCharIndex = 0xffff;\n    }\n  } else {\n    firstCharIndex = 0;\n    lastCharIndex = 255;\n  }\n\n  const bbox = properties.bbox || [0, 0, 0, 0];\n  const unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n  const scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n  const typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n  let typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n\n  if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n    typoDescent = -typoDescent;\n  }\n\n  const winAscent = override.yMax || typoAscent;\n  const winDescent = -override.yMin || -typoDescent;\n  return \"\\x00\\x03\" + \"\\x02\\x24\" + \"\\x01\\xF4\" + \"\\x00\\x05\" + \"\\x00\\x00\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x00\\x8C\" + \"\\x02\\x8A\" + \"\\x02\\xBB\" + \"\\x00\\x00\" + \"\\x01\\xDF\" + \"\\x00\\x31\" + \"\\x01\\x02\" + \"\\x00\\x00\" + \"\\x00\\x00\\x06\" + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + \"\\x00\\x00\\x00\\x00\\x00\\x00\" + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + \"\\x2A\\x32\\x31\\x2A\" + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + \"\\x00\\x64\" + 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\\x03\";\n}\n\nfunction createPostTable(properties) {\n  const angle = Math.floor(properties.italicAngle * 2 ** 16);\n  return \"\\x00\\x03\\x00\\x00\" + (0, _util.string32)(angle) + \"\\x00\\x00\" + \"\\x00\\x00\" + (0, _util.string32)(properties.fixedPitch ? 1 : 0) + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x00\\x00\\x00\\x00\";\n}\n\nfunction createPostscriptName(name) {\n  return name.replace(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g, \"\").slice(0, 63);\n}\n\nfunction createNameTable(name, proto) {\n  if (!proto) {\n    proto = [[], []];\n  }\n\n  const 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] || createPostscriptName(name), proto[0][7] || \"Unknown\", proto[0][8] || \"Unknown\", proto[0][9] || \"Unknown\"];\n  const stringsUnicode = [];\n  let i, ii, j, jj, str;\n\n  for (i = 0, ii = strings.length; i < ii; i++) {\n    str = proto[1][i] || strings[i];\n    const strBufUnicode = [];\n\n    for (j = 0, jj = str.length; j < jj; j++) {\n      strBufUnicode.push(string16(str.charCodeAt(j)));\n    }\n\n    stringsUnicode.push(strBufUnicode.join(\"\"));\n  }\n\n  const names = [strings, stringsUnicode];\n  const platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n  const encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n  const languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n  const namesRecordCount = strings.length * platforms.length;\n  let nameTable = \"\\x00\\x00\" + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6);\n  let strOffset = 0;\n\n  for (i = 0, ii = platforms.length; i < ii; i++) {\n    const strs = names[i];\n\n    for (j = 0, jj = strs.length; j < jj; j++) {\n      str = strs[j];\n      const nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset);\n      nameTable += nameRecord;\n      strOffset += str.length;\n    }\n  }\n\n  nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n  return nameTable;\n}\n\nclass Font {\n  constructor(name, file, properties) {\n    this.name = name;\n    this.psName = null;\n    this.mimetype = null;\n    this.disableFontFace = false;\n    this.loadedName = properties.loadedName;\n    this.isType3Font = properties.isType3Font;\n    this.missingFile = false;\n    this.cssFontInfo = properties.cssFontInfo;\n    this._charsCache = Object.create(null);\n    this._glyphCache = Object.create(null);\n    let isSerifFont = !!(properties.flags & _fonts_utils.FontFlags.Serif);\n\n    if (!isSerifFont && !properties.isSimulatedFlags) {\n      const baseName = name.replace(/[,_]/g, \"-\").split(\"-\")[0],\n            serifFonts = (0, _standard_fonts.getSerifFonts)();\n\n      for (const namePart of baseName.split(\"+\")) {\n        if (serifFonts[namePart]) {\n          isSerifFont = true;\n          break;\n        }\n      }\n    }\n\n    this.isSerifFont = isSerifFont;\n    this.isSymbolicFont = !!(properties.flags & _fonts_utils.FontFlags.Symbolic);\n    this.isMonospace = !!(properties.flags & _fonts_utils.FontFlags.FixedPitch);\n    let type = properties.type;\n    let subtype = properties.subtype;\n    this.type = type;\n    this.subtype = subtype;\n    let fallbackName = \"sans-serif\";\n\n    if (this.isMonospace) {\n      fallbackName = \"monospace\";\n    } else if (this.isSerifFont) {\n      fallbackName = \"serif\";\n    }\n\n    this.fallbackName = fallbackName;\n    this.differences = properties.differences;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.composite = properties.composite;\n    this.cMap = properties.cMap;\n    this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\n    this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n    this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n    this.lineHeight = this.ascent - this.descent;\n    this.fontMatrix = properties.fontMatrix;\n    this.bbox = properties.bbox;\n    this.defaultEncoding = properties.defaultEncoding;\n    this.toUnicode = properties.toUnicode;\n    this.toFontChar = [];\n\n    if (properties.type === \"Type3\") {\n      for (let charCode = 0; charCode < 256; charCode++) {\n        this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n      }\n\n      this.fontType = _util.FontType.TYPE3;\n      return;\n    }\n\n    this.cidEncoding = properties.cidEncoding || \"\";\n    this.vertical = !!properties.vertical;\n\n    if (this.vertical) {\n      this.vmetrics = properties.vmetrics;\n      this.defaultVMetrics = properties.defaultVMetrics;\n    }\n\n    if (!file || file.isEmpty) {\n      if (file) {\n        (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n      }\n\n      this.fallbackToSystemFont(properties);\n      return;\n    }\n\n    [type, subtype] = getFontFileType(file, properties);\n\n    if (type !== this.type || subtype !== this.subtype) {\n      (0, _util.info)(\"Inconsistent font file Type/SubType, expected: \" + `${this.type}/${this.subtype} but found: ${type}/${subtype}.`);\n    }\n\n    let data;\n\n    try {\n      switch (type) {\n        case \"MMType1\":\n          (0, _util.info)(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n\n        case \"Type1\":\n        case \"CIDFontType0\":\n          this.mimetype = \"font/opentype\";\n          const cff = subtype === \"Type1C\" || subtype === \"CIDFontType0C\" ? new _cff_font.CFFFont(file, properties) : new _type1_font.Type1Font(name, file, properties);\n          adjustWidths(properties);\n          data = this.convert(name, cff, properties);\n          break;\n\n        case \"OpenType\":\n        case \"TrueType\":\n        case \"CIDFontType2\":\n          this.mimetype = \"font/opentype\";\n          data = this.checkAndRepair(name, file, properties);\n\n          if (this.isOpenType) {\n            adjustWidths(properties);\n            type = \"OpenType\";\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError(`Font ${type} is not supported`);\n      }\n    } catch (e) {\n      (0, _util.warn)(e);\n      this.fallbackToSystemFont(properties);\n      return;\n    }\n\n    amendFallbackToUnicode(properties);\n    this.data = data;\n    this.fontType = (0, _fonts_utils.getFontType)(type, subtype, properties.isStandardFont);\n    this.fontMatrix = properties.fontMatrix;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.toUnicode = properties.toUnicode;\n    this.seacMap = properties.seacMap;\n  }\n\n  get renderer() {\n    const renderer = _font_renderer.FontRendererFactory.create(this, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n\n    return (0, _util.shadow)(this, \"renderer\", renderer);\n  }\n\n  exportData(extraProperties = false) {\n    const exportDataProperties = extraProperties ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES] : EXPORT_DATA_PROPERTIES;\n    const data = Object.create(null);\n    let property, value;\n\n    for (property of exportDataProperties) {\n      value = this[property];\n\n      if (value !== undefined) {\n        data[property] = value;\n      }\n    }\n\n    return data;\n  }\n\n  fallbackToSystemFont(properties) {\n    this.missingFile = true;\n    const name = this.name;\n    const type = this.type;\n    const subtype = this.subtype;\n    let fontName = (0, _fonts_utils.normalizeFontName)(name);\n    const stdFontMap = (0, _standard_fonts.getStdFontMap)(),\n          nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n    const isStandardFont = !!stdFontMap[fontName];\n    const isMappedToStandardFont = !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n    fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n    const fontBasicMetricsMap = (0, _metrics.getFontBasicMetrics)();\n    const metrics = fontBasicMetricsMap[fontName];\n\n    if (metrics) {\n      if (isNaN(this.ascent)) {\n        this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS;\n      }\n\n      if (isNaN(this.descent)) {\n        this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS;\n      }\n\n      if (isNaN(this.capHeight)) {\n        this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS;\n      }\n    }\n\n    this.bold = fontName.search(/bold/gi) !== -1;\n    this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n    this.black = name.search(/Black/g) !== -1;\n    const isNarrow = name.search(/Narrow/g) !== -1;\n    this.remeasure = (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n\n    if ((isStandardFont || isMappedToStandardFont) && type === \"CIDFontType2\" && this.cidEncoding.startsWith(\"Identity-\")) {\n      const cidToGidMap = properties.cidToGidMap;\n      const map = [];\n      applyStandardFontGlyphMap(map, (0, _standard_fonts.getGlyphMapForStandardFonts)());\n\n      if (/Arial-?Black/i.test(name)) {\n        applyStandardFontGlyphMap(map, (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)());\n      } else if (/Calibri/i.test(name)) {\n        applyStandardFontGlyphMap(map, (0, _standard_fonts.getSupplementalGlyphMapForCalibri)());\n      }\n\n      if (cidToGidMap) {\n        for (const charCode in map) {\n          const cid = map[charCode];\n\n          if (cidToGidMap[cid] !== undefined) {\n            map[+charCode] = cidToGidMap[cid];\n          }\n        }\n\n        if (cidToGidMap.length !== this.toUnicode.length && properties.hasIncludedToUnicodeMap && this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap) {\n          this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n            const cid = map[charCode];\n\n            if (cidToGidMap[cid] === undefined) {\n              map[+charCode] = unicodeCharCode;\n            }\n          });\n        }\n      }\n\n      if (!(this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap)) {\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          map[+charCode] = unicodeCharCode;\n        });\n      }\n\n      this.toFontChar = map;\n      this.toUnicode = new _to_unicode_map.ToUnicodeMap(map);\n    } else if (/Symbol/i.test(fontName)) {\n      this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n    } else if (/Dingbats/i.test(fontName)) {\n      if (/Wingdings/i.test(name)) {\n        (0, _util.warn)(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n      }\n\n      this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences);\n    } else if (isStandardFont) {\n      const map = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n\n      if (type === \"CIDFontType2\" && !this.cidEncoding.startsWith(\"Identity-\") && !(this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap)) {\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          map[+charCode] = unicodeCharCode;\n        });\n      }\n\n      this.toFontChar = map;\n    } else {\n      const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n      const map = [];\n      this.toUnicode.forEach((charCode, unicodeCharCode) => {\n        if (!this.composite) {\n          const glyphName = this.differences[charCode] || this.defaultEncoding[charCode];\n          const unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n          if (unicode !== -1) {\n            unicodeCharCode = unicode;\n          }\n        }\n\n        map[+charCode] = unicodeCharCode;\n      });\n\n      if (this.composite && this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap) {\n        if (/Verdana/i.test(name)) {\n          applyStandardFontGlyphMap(map, (0, _standard_fonts.getGlyphMapForStandardFonts)());\n        }\n      }\n\n      this.toFontChar = map;\n    }\n\n    amendFallbackToUnicode(properties);\n    this.loadedName = fontName.split(\"-\")[0];\n    this.fontType = (0, _fonts_utils.getFontType)(type, subtype, properties.isStandardFont);\n  }\n\n  checkAndRepair(name, font, properties) {\n    const VALID_TABLES = [\"OS/2\", \"cmap\", \"head\", \"hhea\", \"hmtx\", \"maxp\", \"name\", \"post\", \"loca\", \"glyf\", \"fpgm\", \"prep\", \"cvt \", \"CFF \"];\n\n    function readTables(file, numTables) {\n      const tables = Object.create(null);\n      tables[\"OS/2\"] = null;\n      tables.cmap = null;\n      tables.head = null;\n      tables.hhea = null;\n      tables.hmtx = null;\n      tables.maxp = null;\n      tables.name = null;\n      tables.post = null;\n\n      for (let i = 0; i < numTables; i++) {\n        const table = readTableEntry(file);\n\n        if (!VALID_TABLES.includes(table.tag)) {\n          continue;\n        }\n\n        if (table.length === 0) {\n          continue;\n        }\n\n        tables[table.tag] = table;\n      }\n\n      return tables;\n    }\n\n    function readTableEntry(file) {\n      const tag = file.getString(4);\n      const checksum = file.getInt32() >>> 0;\n      const offset = file.getInt32() >>> 0;\n      const length = file.getInt32() >>> 0;\n      const previousPosition = file.pos;\n      file.pos = file.start || 0;\n      file.skip(offset);\n      const data = file.getBytes(length);\n      file.pos = previousPosition;\n\n      if (tag === \"head\") {\n        data[8] = data[9] = data[10] = data[11] = 0;\n        data[17] |= 0x20;\n      }\n\n      return {\n        tag,\n        checksum,\n        length,\n        offset,\n        data\n      };\n    }\n\n    function readOpenTypeHeader(ttf) {\n      return {\n        version: ttf.getString(4),\n        numTables: ttf.getUint16(),\n        searchRange: ttf.getUint16(),\n        entrySelector: ttf.getUint16(),\n        rangeShift: ttf.getUint16()\n      };\n    }\n\n    function readTrueTypeCollectionHeader(ttc) {\n      const ttcTag = ttc.getString(4);\n      (0, _util.assert)(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n      const majorVersion = ttc.getUint16();\n      const minorVersion = ttc.getUint16();\n      const numFonts = ttc.getInt32() >>> 0;\n      const offsetTable = [];\n\n      for (let i = 0; i < numFonts; i++) {\n        offsetTable.push(ttc.getInt32() >>> 0);\n      }\n\n      const header = {\n        ttcTag,\n        majorVersion,\n        minorVersion,\n        numFonts,\n        offsetTable\n      };\n\n      switch (majorVersion) {\n        case 1:\n          return header;\n\n        case 2:\n          header.dsigTag = ttc.getInt32() >>> 0;\n          header.dsigLength = ttc.getInt32() >>> 0;\n          header.dsigOffset = ttc.getInt32() >>> 0;\n          return header;\n      }\n\n      throw new _util.FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`);\n    }\n\n    function readTrueTypeCollectionData(ttc, fontName) {\n      const {\n        numFonts,\n        offsetTable\n      } = readTrueTypeCollectionHeader(ttc);\n      const fontNameParts = fontName.split(\"+\");\n      let fallbackData;\n\n      for (let i = 0; i < numFonts; i++) {\n        ttc.pos = (ttc.start || 0) + offsetTable[i];\n        const potentialHeader = readOpenTypeHeader(ttc);\n        const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n        if (!potentialTables.name) {\n          throw new _util.FormatError('TrueType Collection font must contain a \"name\" table.');\n        }\n\n        const nameTable = readNameTable(potentialTables.name);\n\n        for (let j = 0, jj = nameTable.length; j < jj; j++) {\n          for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n            const nameEntry = nameTable[j][k] && nameTable[j][k].replace(/\\s/g, \"\");\n\n            if (!nameEntry) {\n              continue;\n            }\n\n            if (nameEntry === fontName) {\n              return {\n                header: potentialHeader,\n                tables: potentialTables\n              };\n            }\n\n            if (fontNameParts.length < 2) {\n              continue;\n            }\n\n            for (const part of fontNameParts) {\n              if (nameEntry === part) {\n                fallbackData = {\n                  name: part,\n                  header: potentialHeader,\n                  tables: potentialTables\n                };\n              }\n            }\n          }\n        }\n      }\n\n      if (fallbackData) {\n        (0, _util.warn)(`TrueType Collection does not contain \"${fontName}\" font, ` + `falling back to \"${fallbackData.name}\" font instead.`);\n        return {\n          header: fallbackData.header,\n          tables: fallbackData.tables\n        };\n      }\n\n      throw new _util.FormatError(`TrueType Collection does not contain \"${fontName}\" font.`);\n    }\n\n    function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n      if (!cmap) {\n        (0, _util.warn)(\"No cmap table available.\");\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false\n        };\n      }\n\n      let segment;\n      let start = (file.start || 0) + cmap.offset;\n      file.pos = start;\n      file.skip(2);\n      const numTables = file.getUint16();\n      let potentialTable;\n      let canBreak = false;\n\n      for (let i = 0; i < numTables; i++) {\n        const platformId = file.getUint16();\n        const encodingId = file.getUint16();\n        const offset = file.getInt32() >>> 0;\n        let useTable = false;\n\n        if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n          continue;\n        }\n\n        if (platformId === 0 && (encodingId === 0 || encodingId === 1 || encodingId === 3)) {\n          useTable = true;\n        } else if (platformId === 1 && encodingId === 0) {\n          useTable = true;\n        } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n          useTable = true;\n\n          if (!isSymbolicFont) {\n            canBreak = true;\n          }\n        } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n          useTable = true;\n          let correctlySorted = true;\n\n          if (i < numTables - 1) {\n            const nextBytes = file.peekBytes(2),\n                  nextPlatformId = int16(nextBytes[0], nextBytes[1]);\n\n            if (nextPlatformId < platformId) {\n              correctlySorted = false;\n            }\n          }\n\n          if (correctlySorted) {\n            canBreak = true;\n          }\n        }\n\n        if (useTable) {\n          potentialTable = {\n            platformId,\n            encodingId,\n            offset\n          };\n        }\n\n        if (canBreak) {\n          break;\n        }\n      }\n\n      if (potentialTable) {\n        file.pos = start + potentialTable.offset;\n      }\n\n      if (!potentialTable || file.peekByte() === -1) {\n        (0, _util.warn)(\"Could not find a preferred cmap table.\");\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false\n        };\n      }\n\n      const format = file.getUint16();\n      let hasShortCmap = false;\n      const mappings = [];\n      let j, glyphId;\n\n      if (format === 0) {\n        file.skip(2 + 2);\n\n        for (j = 0; j < 256; j++) {\n          const index = file.getByte();\n\n          if (!index) {\n            continue;\n          }\n\n          mappings.push({\n            charCode: j,\n            glyphId: index\n          });\n        }\n\n        hasShortCmap = true;\n      } else if (format === 2) {\n        file.skip(2 + 2);\n        const subHeaderKeys = [];\n        let maxSubHeaderKey = 0;\n\n        for (let i = 0; i < 256; i++) {\n          const subHeaderKey = file.getUint16() >> 3;\n          subHeaderKeys.push(subHeaderKey);\n          maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey);\n        }\n\n        const subHeaders = [];\n\n        for (let i = 0; i <= maxSubHeaderKey; i++) {\n          subHeaders.push({\n            firstCode: file.getUint16(),\n            entryCount: file.getUint16(),\n            idDelta: signedInt16(file.getByte(), file.getByte()),\n            idRangePos: file.pos + file.getUint16()\n          });\n        }\n\n        for (let i = 0; i < 256; i++) {\n          if (subHeaderKeys[i] === 0) {\n            file.pos = subHeaders[0].idRangePos + 2 * i;\n            glyphId = file.getUint16();\n            mappings.push({\n              charCode: i,\n              glyphId\n            });\n          } else {\n            const s = subHeaders[subHeaderKeys[i]];\n\n            for (j = 0; j < s.entryCount; j++) {\n              const charCode = (i << 8) + j + s.firstCode;\n              file.pos = s.idRangePos + 2 * j;\n              glyphId = file.getUint16();\n\n              if (glyphId !== 0) {\n                glyphId = (glyphId + s.idDelta) % 65536;\n              }\n\n              mappings.push({\n                charCode,\n                glyphId\n              });\n            }\n          }\n        }\n      } else if (format === 4) {\n        file.skip(2 + 2);\n        const segCount = file.getUint16() >> 1;\n        file.skip(6);\n        const segments = [];\n        let segIndex;\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments.push({\n            end: file.getUint16()\n          });\n        }\n\n        file.skip(2);\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments[segIndex].start = file.getUint16();\n        }\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segments[segIndex].delta = file.getUint16();\n        }\n\n        let offsetsCount = 0,\n            offsetIndex;\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segment = segments[segIndex];\n          const rangeOffset = file.getUint16();\n\n          if (!rangeOffset) {\n            segment.offsetIndex = -1;\n            continue;\n          }\n\n          offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n          segment.offsetIndex = offsetIndex;\n          offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n        }\n\n        const offsets = [];\n\n        for (j = 0; j < offsetsCount; j++) {\n          offsets.push(file.getUint16());\n        }\n\n        for (segIndex = 0; segIndex < segCount; segIndex++) {\n          segment = segments[segIndex];\n          start = segment.start;\n          const end = segment.end;\n          const delta = segment.delta;\n          offsetIndex = segment.offsetIndex;\n\n          for (j = start; j <= end; j++) {\n            if (j === 0xffff) {\n              continue;\n            }\n\n            glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n            glyphId = glyphId + delta & 0xffff;\n            mappings.push({\n              charCode: j,\n              glyphId\n            });\n          }\n        }\n      } else if (format === 6) {\n        file.skip(2 + 2);\n        const firstCode = file.getUint16();\n        const entryCount = file.getUint16();\n\n        for (j = 0; j < entryCount; j++) {\n          glyphId = file.getUint16();\n          const charCode = firstCode + j;\n          mappings.push({\n            charCode,\n            glyphId\n          });\n        }\n      } else if (format === 12) {\n        file.skip(2 + 4 + 4);\n        const nGroups = file.getInt32() >>> 0;\n\n        for (j = 0; j < nGroups; j++) {\n          const startCharCode = file.getInt32() >>> 0;\n          const endCharCode = file.getInt32() >>> 0;\n          let glyphCode = file.getInt32() >>> 0;\n\n          for (let charCode = startCharCode; charCode <= endCharCode; charCode++) {\n            mappings.push({\n              charCode,\n              glyphId: glyphCode++\n            });\n          }\n        }\n      } else {\n        (0, _util.warn)(\"cmap table has unsupported format: \" + format);\n        return {\n          platformId: -1,\n          encodingId: -1,\n          mappings: [],\n          hasShortCmap: false\n        };\n      }\n\n      mappings.sort(function (a, b) {\n        return a.charCode - b.charCode;\n      });\n\n      for (let i = 1; i < mappings.length; i++) {\n        if (mappings[i - 1].charCode === mappings[i].charCode) {\n          mappings.splice(i, 1);\n          i--;\n        }\n      }\n\n      return {\n        platformId: potentialTable.platformId,\n        encodingId: potentialTable.encodingId,\n        mappings,\n        hasShortCmap\n      };\n    }\n\n    function sanitizeMetrics(file, header, metrics, headTable, numGlyphs, dupFirstEntry) {\n      if (!header) {\n        if (metrics) {\n          metrics.data = null;\n        }\n\n        return;\n      }\n\n      file.pos = (file.start || 0) + header.offset;\n      file.pos += 4;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      file.pos += 2;\n      const caretOffset = file.getUint16();\n      file.pos += 8;\n      file.pos += 2;\n      let numOfMetrics = file.getUint16();\n\n      if (caretOffset !== 0) {\n        const macStyle = int16(headTable.data[44], headTable.data[45]);\n\n        if (!(macStyle & 2)) {\n          header.data[22] = 0;\n          header.data[23] = 0;\n        }\n      }\n\n      if (numOfMetrics > numGlyphs) {\n        (0, _util.info)(`The numOfMetrics (${numOfMetrics}) should not be ` + `greater than the numGlyphs (${numGlyphs}).`);\n        numOfMetrics = numGlyphs;\n        header.data[34] = (numOfMetrics & 0xff00) >> 8;\n        header.data[35] = numOfMetrics & 0x00ff;\n      }\n\n      const numOfSidebearings = numGlyphs - numOfMetrics;\n      const numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n\n      if (numMissing > 0) {\n        const entries = new Uint8Array(metrics.length + numMissing * 2);\n        entries.set(metrics.data);\n\n        if (dupFirstEntry) {\n          entries[metrics.length] = metrics.data[2];\n          entries[metrics.length + 1] = metrics.data[3];\n        }\n\n        metrics.data = entries;\n      }\n    }\n\n    function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n      const glyphProfile = {\n        length: 0,\n        sizeOfInstructions: 0\n      };\n\n      if (sourceEnd - sourceStart <= 12) {\n        return glyphProfile;\n      }\n\n      const glyf = source.subarray(sourceStart, sourceEnd);\n      let contoursCount = signedInt16(glyf[0], glyf[1]);\n\n      if (contoursCount < 0) {\n        contoursCount = -1;\n        writeSignedInt16(glyf, 0, contoursCount);\n        dest.set(glyf, destStart);\n        glyphProfile.length = glyf.length;\n        return glyphProfile;\n      }\n\n      let i,\n          j = 10,\n          flagsCount = 0;\n\n      for (i = 0; i < contoursCount; i++) {\n        const endPoint = glyf[j] << 8 | glyf[j + 1];\n        flagsCount = endPoint + 1;\n        j += 2;\n      }\n\n      const instructionsStart = j;\n      const instructionsLength = glyf[j] << 8 | glyf[j + 1];\n      glyphProfile.sizeOfInstructions = instructionsLength;\n      j += 2 + instructionsLength;\n      const instructionsEnd = j;\n      let coordinatesLength = 0;\n\n      for (i = 0; i < flagsCount; i++) {\n        const flag = glyf[j++];\n\n        if (flag & 0xc0) {\n          glyf[j - 1] = flag & 0x3f;\n        }\n\n        let xLength = 2;\n\n        if (flag & 2) {\n          xLength = 1;\n        } else if (flag & 16) {\n          xLength = 0;\n        }\n\n        let yLength = 2;\n\n        if (flag & 4) {\n          yLength = 1;\n        } else if (flag & 32) {\n          yLength = 0;\n        }\n\n        const xyLength = xLength + yLength;\n        coordinatesLength += xyLength;\n\n        if (flag & 8) {\n          const repeat = glyf[j++];\n          i += repeat;\n          coordinatesLength += repeat * xyLength;\n        }\n      }\n\n      if (coordinatesLength === 0) {\n        return glyphProfile;\n      }\n\n      let glyphDataLength = j + coordinatesLength;\n\n      if (glyphDataLength > glyf.length) {\n        return glyphProfile;\n      }\n\n      if (!hintsValid && instructionsLength > 0) {\n        dest.set(glyf.subarray(0, instructionsStart), destStart);\n        dest.set([0, 0], destStart + instructionsStart);\n        dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n        glyphDataLength -= instructionsLength;\n\n        if (glyf.length - glyphDataLength > 3) {\n          glyphDataLength = glyphDataLength + 3 & ~3;\n        }\n\n        glyphProfile.length = glyphDataLength;\n        return glyphProfile;\n      }\n\n      if (glyf.length - glyphDataLength > 3) {\n        glyphDataLength = glyphDataLength + 3 & ~3;\n        dest.set(glyf.subarray(0, glyphDataLength), destStart);\n        glyphProfile.length = glyphDataLength;\n        return glyphProfile;\n      }\n\n      dest.set(glyf, destStart);\n      glyphProfile.length = glyf.length;\n      return glyphProfile;\n    }\n\n    function sanitizeHead(head, numGlyphs, locaLength) {\n      const data = head.data;\n      const version = int32(data[0], data[1], data[2], data[3]);\n\n      if (version >> 16 !== 1) {\n        (0, _util.info)(\"Attempting to fix invalid version in head table: \" + version);\n        data[0] = 0;\n        data[1] = 1;\n        data[2] = 0;\n        data[3] = 0;\n      }\n\n      const indexToLocFormat = int16(data[50], data[51]);\n\n      if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n        (0, _util.info)(\"Attempting to fix invalid indexToLocFormat in head table: \" + indexToLocFormat);\n        const numGlyphsPlusOne = numGlyphs + 1;\n\n        if (locaLength === numGlyphsPlusOne << 1) {\n          data[50] = 0;\n          data[51] = 0;\n        } else if (locaLength === numGlyphsPlusOne << 2) {\n          data[50] = 0;\n          data[51] = 1;\n        } else {\n          throw new _util.FormatError(\"Could not fix indexToLocFormat: \" + indexToLocFormat);\n        }\n      }\n    }\n\n    function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) {\n      let itemSize, itemDecode, itemEncode;\n\n      if (isGlyphLocationsLong) {\n        itemSize = 4;\n\n        itemDecode = function fontItemDecodeLong(data, offset) {\n          return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n        };\n\n        itemEncode = function fontItemEncodeLong(data, offset, value) {\n          data[offset] = value >>> 24 & 0xff;\n          data[offset + 1] = value >> 16 & 0xff;\n          data[offset + 2] = value >> 8 & 0xff;\n          data[offset + 3] = value & 0xff;\n        };\n      } else {\n        itemSize = 2;\n\n        itemDecode = function fontItemDecode(data, offset) {\n          return data[offset] << 9 | data[offset + 1] << 1;\n        };\n\n        itemEncode = function fontItemEncode(data, offset, value) {\n          data[offset] = value >> 9 & 0xff;\n          data[offset + 1] = value >> 1 & 0xff;\n        };\n      }\n\n      const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n      const locaDataSize = itemSize * (1 + numGlyphsOut);\n      const locaData = new Uint8Array(locaDataSize);\n      locaData.set(loca.data.subarray(0, locaDataSize));\n      loca.data = locaData;\n      const oldGlyfData = glyf.data;\n      const oldGlyfDataLength = oldGlyfData.length;\n      const newGlyfData = new Uint8Array(oldGlyfDataLength);\n      let i, j;\n      const locaEntries = [];\n\n      for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n        let offset = itemDecode(locaData, j);\n\n        if (offset > oldGlyfDataLength) {\n          offset = oldGlyfDataLength;\n        }\n\n        locaEntries.push({\n          index: i,\n          offset,\n          endOffset: 0\n        });\n      }\n\n      locaEntries.sort((a, b) => {\n        return a.offset - b.offset;\n      });\n\n      for (i = 0; i < numGlyphs; i++) {\n        locaEntries[i].endOffset = locaEntries[i + 1].offset;\n      }\n\n      locaEntries.sort((a, b) => {\n        return a.index - b.index;\n      });\n\n      for (i = 0; i < numGlyphs; i++) {\n        const {\n          offset,\n          endOffset\n        } = locaEntries[i];\n\n        if (offset !== 0 || endOffset !== 0) {\n          break;\n        }\n\n        const nextOffset = locaEntries[i + 1].offset;\n\n        if (nextOffset === 0) {\n          continue;\n        }\n\n        locaEntries[i].endOffset = nextOffset;\n        break;\n      }\n\n      const missingGlyphs = Object.create(null);\n      let writeOffset = 0;\n      itemEncode(locaData, 0, writeOffset);\n\n      for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n        const glyphProfile = sanitizeGlyph(oldGlyfData, locaEntries[i].offset, locaEntries[i].endOffset, newGlyfData, writeOffset, hintsValid);\n        const newLength = glyphProfile.length;\n\n        if (newLength === 0) {\n          missingGlyphs[i] = true;\n        }\n\n        if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n          maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n        }\n\n        writeOffset += newLength;\n        itemEncode(locaData, j, writeOffset);\n      }\n\n      if (writeOffset === 0) {\n        const simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n\n        for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n          itemEncode(locaData, j, simpleGlyph.length);\n        }\n\n        glyf.data = simpleGlyph;\n      } else if (dupFirstEntry) {\n        const firstEntryLength = itemDecode(locaData, itemSize);\n\n        if (newGlyfData.length > firstEntryLength + writeOffset) {\n          glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n        } else {\n          glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n          glyf.data.set(newGlyfData.subarray(0, writeOffset));\n        }\n\n        glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n        itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n      } else {\n        glyf.data = newGlyfData.subarray(0, writeOffset);\n      }\n\n      return {\n        missingGlyphs,\n        maxSizeOfInstructions\n      };\n    }\n\n    function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n      const start = (font.start || 0) + post.offset;\n      font.pos = start;\n      const length = post.length,\n            end = start + length;\n      const version = font.getInt32();\n      font.skip(28);\n      let glyphNames;\n      let valid = true;\n      let i;\n\n      switch (version) {\n        case 0x00010000:\n          glyphNames = _fonts_utils.MacStandardGlyphOrdering;\n          break;\n\n        case 0x00020000:\n          const numGlyphs = font.getUint16();\n\n          if (numGlyphs !== maxpNumGlyphs) {\n            valid = false;\n            break;\n          }\n\n          const glyphNameIndexes = [];\n\n          for (i = 0; i < numGlyphs; ++i) {\n            const index = font.getUint16();\n\n            if (index >= 32768) {\n              valid = false;\n              break;\n            }\n\n            glyphNameIndexes.push(index);\n          }\n\n          if (!valid) {\n            break;\n          }\n\n          const customNames = [],\n                strBuf = [];\n\n          while (font.pos < end) {\n            const stringLength = font.getByte();\n            strBuf.length = stringLength;\n\n            for (i = 0; i < stringLength; ++i) {\n              strBuf[i] = String.fromCharCode(font.getByte());\n            }\n\n            customNames.push(strBuf.join(\"\"));\n          }\n\n          glyphNames = [];\n\n          for (i = 0; i < numGlyphs; ++i) {\n            const j = glyphNameIndexes[i];\n\n            if (j < 258) {\n              glyphNames.push(_fonts_utils.MacStandardGlyphOrdering[j]);\n              continue;\n            }\n\n            glyphNames.push(customNames[j - 258]);\n          }\n\n          break;\n\n        case 0x00030000:\n          break;\n\n        default:\n          (0, _util.warn)(\"Unknown/unsupported post table version \" + version);\n          valid = false;\n\n          if (propertiesObj.defaultEncoding) {\n            glyphNames = propertiesObj.defaultEncoding;\n          }\n\n          break;\n      }\n\n      propertiesObj.glyphNames = glyphNames;\n      return valid;\n    }\n\n    function readNameTable(nameTable) {\n      const start = (font.start || 0) + nameTable.offset;\n      font.pos = start;\n      const names = [[], []];\n      const length = nameTable.length,\n            end = start + length;\n      const format = font.getUint16();\n      const FORMAT_0_HEADER_LENGTH = 6;\n\n      if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n        return names;\n      }\n\n      const numRecords = font.getUint16();\n      const stringsStart = font.getUint16();\n      const records = [];\n      const NAME_RECORD_LENGTH = 12;\n      let i, ii;\n\n      for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n        const r = {\n          platform: font.getUint16(),\n          encoding: font.getUint16(),\n          language: font.getUint16(),\n          name: font.getUint16(),\n          length: font.getUint16(),\n          offset: font.getUint16()\n        };\n\n        if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) {\n          records.push(r);\n        }\n      }\n\n      for (i = 0, ii = records.length; i < ii; i++) {\n        const record = records[i];\n\n        if (record.length <= 0) {\n          continue;\n        }\n\n        const pos = start + stringsStart + record.offset;\n\n        if (pos + record.length > end) {\n          continue;\n        }\n\n        font.pos = pos;\n        const nameIndex = record.name;\n\n        if (record.encoding) {\n          let str = \"\";\n\n          for (let j = 0, jj = record.length; j < jj; j += 2) {\n            str += String.fromCharCode(font.getUint16());\n          }\n\n          names[1][nameIndex] = str;\n        } else {\n          names[0][nameIndex] = font.getString(record.length);\n        }\n      }\n\n      return names;\n    }\n\n    const 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];\n\n    function sanitizeTTProgram(table, ttContext) {\n      let data = table.data;\n      let i = 0,\n          j,\n          n,\n          b,\n          funcId,\n          pc,\n          lastEndf = 0,\n          lastDeff = 0;\n      const stack = [];\n      const callstack = [];\n      const functionsCalled = [];\n      let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n      let inFDEF = false,\n          ifLevel = 0,\n          inELSE = 0;\n\n      for (let ii = data.length; i < ii;) {\n        const op = data[i++];\n\n        if (op === 0x40) {\n          n = data[i++];\n\n          if (inFDEF || inELSE) {\n            i += n;\n          } else {\n            for (j = 0; j < n; j++) {\n              stack.push(data[i++]);\n            }\n          }\n        } else if (op === 0x41) {\n          n = data[i++];\n\n          if (inFDEF || inELSE) {\n            i += n * 2;\n          } else {\n            for (j = 0; j < n; j++) {\n              b = data[i++];\n              stack.push(b << 8 | data[i++]);\n            }\n          }\n        } else if ((op & 0xf8) === 0xb0) {\n          n = op - 0xb0 + 1;\n\n          if (inFDEF || inELSE) {\n            i += n;\n          } else {\n            for (j = 0; j < n; j++) {\n              stack.push(data[i++]);\n            }\n          }\n        } else if ((op & 0xf8) === 0xb8) {\n          n = op - 0xb8 + 1;\n\n          if (inFDEF || inELSE) {\n            i += n * 2;\n          } else {\n            for (j = 0; j < n; j++) {\n              b = data[i++];\n              stack.push(b << 8 | data[i++]);\n            }\n          }\n        } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n          if (!inFDEF && !inELSE) {\n            funcId = stack.at(-1);\n\n            if (isNaN(funcId)) {\n              (0, _util.info)(\"TT: CALL empty stack (or invalid entry).\");\n            } else {\n              ttContext.functionsUsed[funcId] = true;\n\n              if (funcId in ttContext.functionsStackDeltas) {\n                const newStackLength = stack.length + ttContext.functionsStackDeltas[funcId];\n\n                if (newStackLength < 0) {\n                  (0, _util.warn)(\"TT: CALL invalid functions stack delta.\");\n                  ttContext.hintsValid = false;\n                  return;\n                }\n\n                stack.length = newStackLength;\n              } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) {\n                callstack.push({\n                  data,\n                  i,\n                  stackTop: stack.length - 1\n                });\n                functionsCalled.push(funcId);\n                pc = ttContext.functionsDefined[funcId];\n\n                if (!pc) {\n                  (0, _util.warn)(\"TT: CALL non-existent function\");\n                  ttContext.hintsValid = false;\n                  return;\n                }\n\n                data = pc.data;\n                i = pc.i;\n              }\n            }\n          }\n        } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n          if (inFDEF || inELSE) {\n            (0, _util.warn)(\"TT: nested FDEFs not allowed\");\n            tooComplexToFollowFunctions = true;\n          }\n\n          inFDEF = true;\n          lastDeff = i;\n          funcId = stack.pop();\n          ttContext.functionsDefined[funcId] = {\n            data,\n            i\n          };\n        } else if (op === 0x2d) {\n          if (inFDEF) {\n            inFDEF = false;\n            lastEndf = i;\n          } else {\n            pc = callstack.pop();\n\n            if (!pc) {\n              (0, _util.warn)(\"TT: ENDF bad stack\");\n              ttContext.hintsValid = false;\n              return;\n            }\n\n            funcId = functionsCalled.pop();\n            data = pc.data;\n            i = pc.i;\n            ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n          }\n        } else if (op === 0x89) {\n          if (inFDEF || inELSE) {\n            (0, _util.warn)(\"TT: nested IDEFs not allowed\");\n            tooComplexToFollowFunctions = true;\n          }\n\n          inFDEF = true;\n          lastDeff = i;\n        } else if (op === 0x58) {\n          ++ifLevel;\n        } else if (op === 0x1b) {\n          inELSE = ifLevel;\n        } else if (op === 0x59) {\n          if (inELSE === ifLevel) {\n            inELSE = 0;\n          }\n\n          --ifLevel;\n        } else if (op === 0x1c) {\n          if (!inFDEF && !inELSE) {\n            const offset = stack.at(-1);\n\n            if (offset > 0) {\n              i += offset - 1;\n            }\n          }\n        }\n\n        if (!inFDEF && !inELSE) {\n          let stackDelta = 0;\n\n          if (op <= 0x8e) {\n            stackDelta = TTOpsStackDeltas[op];\n          } else if (op >= 0xc0 && op <= 0xdf) {\n            stackDelta = -1;\n          } else if (op >= 0xe0) {\n            stackDelta = -2;\n          }\n\n          if (op >= 0x71 && op <= 0x75) {\n            n = stack.pop();\n\n            if (!isNaN(n)) {\n              stackDelta = -n * 2;\n            }\n          }\n\n          while (stackDelta < 0 && stack.length > 0) {\n            stack.pop();\n            stackDelta++;\n          }\n\n          while (stackDelta > 0) {\n            stack.push(NaN);\n            stackDelta--;\n          }\n        }\n      }\n\n      ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n      const content = [data];\n\n      if (i > data.length) {\n        content.push(new Uint8Array(i - data.length));\n      }\n\n      if (lastDeff > lastEndf) {\n        (0, _util.warn)(\"TT: complementing a missing function tail\");\n        content.push(new Uint8Array([0x22, 0x2d]));\n      }\n\n      foldTTTable(table, content);\n    }\n\n    function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n      if (ttContext.tooComplexToFollowFunctions) {\n        return;\n      }\n\n      if (ttContext.functionsDefined.length > maxFunctionDefs) {\n        (0, _util.warn)(\"TT: more functions defined than expected\");\n        ttContext.hintsValid = false;\n        return;\n      }\n\n      for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n        if (j > maxFunctionDefs) {\n          (0, _util.warn)(\"TT: invalid function id: \" + j);\n          ttContext.hintsValid = false;\n          return;\n        }\n\n        if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n          (0, _util.warn)(\"TT: undefined function: \" + j);\n          ttContext.hintsValid = false;\n          return;\n        }\n      }\n    }\n\n    function foldTTTable(table, content) {\n      if (content.length > 1) {\n        let newLength = 0;\n        let j, jj;\n\n        for (j = 0, jj = content.length; j < jj; j++) {\n          newLength += content[j].length;\n        }\n\n        newLength = newLength + 3 & ~3;\n        const result = new Uint8Array(newLength);\n        let pos = 0;\n\n        for (j = 0, jj = content.length; j < jj; j++) {\n          result.set(content[j], pos);\n          pos += content[j].length;\n        }\n\n        table.data = result;\n        table.length = newLength;\n      }\n    }\n\n    function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n      const ttContext = {\n        functionsDefined: [],\n        functionsUsed: [],\n        functionsStackDeltas: [],\n        tooComplexToFollowFunctions: false,\n        hintsValid: true\n      };\n\n      if (fpgm) {\n        sanitizeTTProgram(fpgm, ttContext);\n      }\n\n      if (prep) {\n        sanitizeTTProgram(prep, ttContext);\n      }\n\n      if (fpgm) {\n        checkInvalidFunctions(ttContext, maxFunctionDefs);\n      }\n\n      if (cvt && cvt.length & 1) {\n        const cvtData = new Uint8Array(cvt.length + 1);\n        cvtData.set(cvt.data);\n        cvt.data = cvtData;\n      }\n\n      return ttContext.hintsValid;\n    }\n\n    font = new _stream.Stream(new Uint8Array(font.getBytes()));\n    let header, tables;\n\n    if (isTrueTypeCollectionFile(font)) {\n      const ttcData = readTrueTypeCollectionData(font, this.name);\n      header = ttcData.header;\n      tables = ttcData.tables;\n    } else {\n      header = readOpenTypeHeader(font);\n      tables = readTables(font, header.numTables);\n    }\n\n    let cff, cffFile;\n    const isTrueType = !tables[\"CFF \"];\n\n    if (!isTrueType) {\n      const isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap));\n\n      if (header.version === \"OTTO\" && !isComposite || !tables.head || !tables.hhea || !tables.maxp || !tables.post) {\n        cffFile = new _stream.Stream(tables[\"CFF \"].data);\n        cff = new _cff_font.CFFFont(cffFile, properties);\n        adjustWidths(properties);\n        return this.convert(name, cff, properties);\n      }\n\n      delete tables.glyf;\n      delete tables.loca;\n      delete tables.fpgm;\n      delete tables.prep;\n      delete tables[\"cvt \"];\n      this.isOpenType = true;\n    } else {\n      if (!tables.loca) {\n        throw new _util.FormatError('Required \"loca\" table is not found');\n      }\n\n      if (!tables.glyf) {\n        (0, _util.warn)('Required \"glyf\" table is not found -- trying to recover.');\n        tables.glyf = {\n          tag: \"glyf\",\n          data: new Uint8Array(0)\n        };\n      }\n\n      this.isOpenType = false;\n    }\n\n    if (!tables.maxp) {\n      throw new _util.FormatError('Required \"maxp\" table is not found');\n    }\n\n    font.pos = (font.start || 0) + tables.maxp.offset;\n    const version = font.getInt32();\n    const numGlyphs = font.getUint16();\n\n    if (properties.scaleFactors && properties.scaleFactors.length === numGlyphs && isTrueType) {\n      const {\n        scaleFactors\n      } = properties;\n      const isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]);\n      const glyphs = new _glyf.GlyfTable({\n        glyfTable: tables.glyf.data,\n        isGlyphLocationsLong,\n        locaTable: tables.loca.data,\n        numGlyphs\n      });\n      glyphs.scale(scaleFactors);\n      const {\n        glyf,\n        loca,\n        isLocationLong\n      } = glyphs.write();\n      tables.glyf.data = glyf;\n      tables.loca.data = loca;\n\n      if (isLocationLong !== !!isGlyphLocationsLong) {\n        tables.head.data[50] = 0;\n        tables.head.data[51] = isLocationLong ? 1 : 0;\n      }\n\n      const metrics = tables.hmtx.data;\n\n      for (let i = 0; i < numGlyphs; i++) {\n        const j = 4 * i;\n        const advanceWidth = Math.round(scaleFactors[i] * int16(metrics[j], metrics[j + 1]));\n        metrics[j] = advanceWidth >> 8 & 0xff;\n        metrics[j + 1] = advanceWidth & 0xff;\n        const lsb = Math.round(scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3]));\n        writeSignedInt16(metrics, j + 2, lsb);\n      }\n    }\n\n    let numGlyphsOut = numGlyphs + 1;\n    let dupFirstEntry = true;\n\n    if (numGlyphsOut > 0xffff) {\n      dupFirstEntry = false;\n      numGlyphsOut = numGlyphs;\n      (0, _util.warn)(\"Not enough space in glyfs to duplicate first glyph.\");\n    }\n\n    let maxFunctionDefs = 0;\n    let maxSizeOfInstructions = 0;\n\n    if (version >= 0x00010000 && tables.maxp.length >= 22) {\n      font.pos += 8;\n      const maxZones = font.getUint16();\n\n      if (maxZones > 2) {\n        tables.maxp.data[14] = 0;\n        tables.maxp.data[15] = 2;\n      }\n\n      font.pos += 4;\n      maxFunctionDefs = font.getUint16();\n      font.pos += 4;\n      maxSizeOfInstructions = font.getUint16();\n    }\n\n    tables.maxp.data[4] = numGlyphsOut >> 8;\n    tables.maxp.data[5] = numGlyphsOut & 255;\n    const hintsValid = sanitizeTTPrograms(tables.fpgm, tables.prep, tables[\"cvt \"], maxFunctionDefs);\n\n    if (!hintsValid) {\n      delete tables.fpgm;\n      delete tables.prep;\n      delete tables[\"cvt \"];\n    }\n\n    sanitizeMetrics(font, tables.hhea, tables.hmtx, tables.head, numGlyphsOut, dupFirstEntry);\n\n    if (!tables.head) {\n      throw new _util.FormatError('Required \"head\" table is not found');\n    }\n\n    sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n    let missingGlyphs = Object.create(null);\n\n    if (isTrueType) {\n      const isGlyphLocationsLong = int16(tables.head.data[50], tables.head.data[51]);\n      const glyphsInfo = sanitizeGlyphLocations(tables.loca, tables.glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions);\n      missingGlyphs = glyphsInfo.missingGlyphs;\n\n      if (version >= 0x00010000 && tables.maxp.length >= 22) {\n        tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n        tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n      }\n    }\n\n    if (!tables.hhea) {\n      throw new _util.FormatError('Required \"hhea\" table is not found');\n    }\n\n    if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n      tables.hhea.data[10] = 0xff;\n      tables.hhea.data[11] = 0xff;\n    }\n\n    const metricsOverride = {\n      unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n      yMax: int16(tables.head.data[42], tables.head.data[43]),\n      yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n      ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),\n      descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n      lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9])\n    };\n    this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n    this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n    this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;\n\n    if (this.cssFontInfo && this.cssFontInfo.lineHeight) {\n      this.lineHeight = this.cssFontInfo.metrics.lineHeight;\n      this.lineGap = this.cssFontInfo.metrics.lineGap;\n    } else {\n      this.lineHeight = this.ascent - this.descent + this.lineGap;\n    }\n\n    if (tables.post) {\n      readPostScriptTable(tables.post, properties, numGlyphs);\n    }\n\n    tables.post = {\n      tag: \"post\",\n      data: createPostTable(properties)\n    };\n    const charCodeToGlyphId = [];\n\n    function hasGlyph(glyphId) {\n      return !missingGlyphs[glyphId];\n    }\n\n    if (properties.composite) {\n      const cidToGidMap = properties.cidToGidMap || [];\n      const isCidToGidMapEmpty = cidToGidMap.length === 0;\n      properties.cMap.forEach(function (charCode, cid) {\n        if (typeof cid === \"string\") {\n          cid = convertCidString(charCode, cid, true);\n        }\n\n        if (cid > 0xffff) {\n          throw new _util.FormatError(\"Max size of CID is 65,535\");\n        }\n\n        let glyphId = -1;\n\n        if (isCidToGidMapEmpty) {\n          glyphId = cid;\n        } else if (cidToGidMap[cid] !== undefined) {\n          glyphId = cidToGidMap[cid];\n        }\n\n        if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      });\n    } else {\n      const cmapTable = readCmapTable(tables.cmap, font, this.isSymbolicFont, properties.hasEncoding);\n      const cmapPlatformId = cmapTable.platformId;\n      const cmapEncodingId = cmapTable.encodingId;\n      const cmapMappings = cmapTable.mappings;\n      const cmapMappingsLength = cmapMappings.length;\n      let baseEncoding = [],\n          forcePostTable = false;\n\n      if (properties.hasEncoding && (properties.baseEncodingName === \"MacRomanEncoding\" || properties.baseEncodingName === \"WinAnsiEncoding\")) {\n        baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n      }\n\n      if (properties.hasEncoding && !this.isSymbolicFont && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0)) {\n        const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n        for (let charCode = 0; charCode < 256; charCode++) {\n          let glyphName;\n\n          if (this.differences[charCode] !== undefined) {\n            glyphName = this.differences[charCode];\n          } else if (baseEncoding.length && baseEncoding[charCode] !== \"\") {\n            glyphName = baseEncoding[charCode];\n          } else {\n            glyphName = _encodings.StandardEncoding[charCode];\n          }\n\n          if (!glyphName) {\n            continue;\n          }\n\n          const standardGlyphName = (0, _fonts_utils.recoverGlyphName)(glyphName, glyphsUnicodeMap);\n          let unicodeOrCharCode;\n\n          if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n            unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n          } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n            unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName);\n          }\n\n          if (unicodeOrCharCode === undefined) {\n            if (!properties.glyphNames && properties.hasIncludedToUnicodeMap && !(this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap)) {\n              const unicode = this.toUnicode.get(charCode);\n\n              if (unicode) {\n                unicodeOrCharCode = unicode.codePointAt(0);\n              }\n            }\n\n            if (unicodeOrCharCode === undefined) {\n              continue;\n            }\n          }\n\n          for (let i = 0; i < cmapMappingsLength; ++i) {\n            if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n              continue;\n            }\n\n            charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n            break;\n          }\n        }\n      } else if (cmapPlatformId === 0) {\n        for (let i = 0; i < cmapMappingsLength; ++i) {\n          charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n        }\n\n        forcePostTable = true;\n      } else {\n        for (let i = 0; i < cmapMappingsLength; ++i) {\n          let charCode = cmapMappings[i].charCode;\n\n          if (cmapPlatformId === 3 && charCode >= 0xf000 && charCode <= 0xf0ff) {\n            charCode &= 0xff;\n          }\n\n          charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n        }\n      }\n\n      if (properties.glyphNames && (baseEncoding.length || this.differences.length)) {\n        for (let i = 0; i < 256; ++i) {\n          if (!forcePostTable && charCodeToGlyphId[i] !== undefined) {\n            continue;\n          }\n\n          const glyphName = this.differences[i] || baseEncoding[i];\n\n          if (!glyphName) {\n            continue;\n          }\n\n          const glyphId = properties.glyphNames.indexOf(glyphName);\n\n          if (glyphId > 0 && hasGlyph(glyphId)) {\n            charCodeToGlyphId[i] = glyphId;\n          }\n        }\n      }\n    }\n\n    if (charCodeToGlyphId.length === 0) {\n      charCodeToGlyphId[0] = 0;\n    }\n\n    let glyphZeroId = numGlyphsOut - 1;\n\n    if (!dupFirstEntry) {\n      glyphZeroId = 0;\n    }\n\n    if (!properties.cssFontInfo) {\n      const newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId, this.toUnicode);\n      this.toFontChar = newMapping.toFontChar;\n      tables.cmap = {\n        tag: \"cmap\",\n        data: createCmapTable(newMapping.charCodeToGlyphId, newMapping.toUnicodeExtraMap, numGlyphsOut)\n      };\n\n      if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n        tables[\"OS/2\"] = {\n          tag: \"OS/2\",\n          data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\n        };\n      }\n    }\n\n    if (!isTrueType) {\n      try {\n        cffFile = new _stream.Stream(tables[\"CFF \"].data);\n        const parser = new _cff_parser.CFFParser(cffFile, properties, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n        cff = parser.parse();\n        cff.duplicateFirstGlyph();\n        const compiler = new _cff_parser.CFFCompiler(cff);\n        tables[\"CFF \"].data = compiler.compile();\n      } catch (e) {\n        (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n      }\n    }\n\n    if (!tables.name) {\n      tables.name = {\n        tag: \"name\",\n        data: createNameTable(this.name)\n      };\n    } else {\n      const namePrototype = readNameTable(tables.name);\n      tables.name.data = createNameTable(name, namePrototype);\n      this.psName = namePrototype[0][6] || null;\n    }\n\n    const builder = new _opentype_file_builder.OpenTypeFileBuilder(header.version);\n\n    for (const tableTag in tables) {\n      builder.addTable(tableTag, tables[tableTag].data);\n    }\n\n    return builder.toArray();\n  }\n\n  convert(fontName, font, properties) {\n    properties.fixedPitch = false;\n\n    if (properties.builtInEncoding) {\n      adjustToUnicode(properties, properties.builtInEncoding);\n    }\n\n    let glyphZeroId = 1;\n\n    if (font instanceof _cff_font.CFFFont) {\n      glyphZeroId = font.numGlyphs - 1;\n    }\n\n    const mapping = font.getGlyphMapping(properties);\n    let newMapping = null;\n    let newCharCodeToGlyphId = mapping;\n    let toUnicodeExtraMap = null;\n\n    if (!properties.cssFontInfo) {\n      newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId, this.toUnicode);\n      this.toFontChar = newMapping.toFontChar;\n      newCharCodeToGlyphId = newMapping.charCodeToGlyphId;\n      toUnicodeExtraMap = newMapping.toUnicodeExtraMap;\n    }\n\n    const numGlyphs = font.numGlyphs;\n\n    function getCharCodes(charCodeToGlyphId, glyphId) {\n      let charCodes = null;\n\n      for (const charCode in charCodeToGlyphId) {\n        if (glyphId === charCodeToGlyphId[charCode]) {\n          if (!charCodes) {\n            charCodes = [];\n          }\n\n          charCodes.push(charCode | 0);\n        }\n      }\n\n      return charCodes;\n    }\n\n    function createCharCode(charCodeToGlyphId, glyphId) {\n      for (const charCode in charCodeToGlyphId) {\n        if (glyphId === charCodeToGlyphId[charCode]) {\n          return charCode | 0;\n        }\n      }\n\n      newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n      return newMapping.nextAvailableFontCharCode++;\n    }\n\n    const seacs = font.seacs;\n\n    if (newMapping && _fonts_utils.SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n      const matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n      const charset = font.getCharset();\n      const seacMap = Object.create(null);\n\n      for (let glyphId in seacs) {\n        glyphId |= 0;\n        const seac = seacs[glyphId];\n        const baseGlyphName = _encodings.StandardEncoding[seac[2]];\n        const accentGlyphName = _encodings.StandardEncoding[seac[3]];\n        const baseGlyphId = charset.indexOf(baseGlyphName);\n        const accentGlyphId = charset.indexOf(accentGlyphName);\n\n        if (baseGlyphId < 0 || accentGlyphId < 0) {\n          continue;\n        }\n\n        const accentOffset = {\n          x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n          y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n        };\n        const charCodes = getCharCodes(mapping, glyphId);\n\n        if (!charCodes) {\n          continue;\n        }\n\n        for (let i = 0, ii = charCodes.length; i < ii; i++) {\n          const charCode = charCodes[i];\n          const charCodeToGlyphId = newMapping.charCodeToGlyphId;\n          const baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n          const accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n          seacMap[charCode] = {\n            baseFontCharCode,\n            accentFontCharCode,\n            accentOffset\n          };\n        }\n      }\n\n      properties.seacMap = seacMap;\n    }\n\n    const unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n    const builder = new _opentype_file_builder.OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n    builder.addTable(\"CFF \", font.data);\n    builder.addTable(\"OS/2\", createOS2Table(properties, newCharCodeToGlyphId));\n    builder.addTable(\"cmap\", createCmapTable(newCharCodeToGlyphId, toUnicodeExtraMap, numGlyphs));\n    builder.addTable(\"head\", \"\\x00\\x01\\x00\\x00\" + \"\\x00\\x00\\x10\\x00\" + \"\\x00\\x00\\x00\\x00\" + \"\\x5F\\x0F\\x3C\\xF5\" + \"\\x00\\x00\" + safeString16(unitsPerEm) + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + \"\\x00\\x00\" + safeString16(properties.descent) + \"\\x0F\\xFF\" + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + \"\\x00\\x11\" + \"\\x00\\x00\" + \"\\x00\\x00\" + \"\\x00\\x00\");\n    builder.addTable(\"hhea\", \"\\x00\\x01\\x00\\x00\" + safeString16(properties.ascent) + safeString16(properties.descent) + \"\\x00\\x00\" + \"\\xFF\\xFF\" + \"\\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));\n    builder.addTable(\"hmtx\", function fontFieldsHmtx() {\n      const charstrings = font.charstrings;\n      const cffWidths = font.cff ? font.cff.widths : null;\n      let hmtx = \"\\x00\\x00\\x00\\x00\";\n\n      for (let i = 1, ii = numGlyphs; i < ii; i++) {\n        let width = 0;\n\n        if (charstrings) {\n          const charstring = charstrings[i - 1];\n          width = \"width\" in charstring ? charstring.width : 0;\n        } else if (cffWidths) {\n          width = Math.ceil(cffWidths[i] || 0);\n        }\n\n        hmtx += string16(width) + string16(0);\n      }\n\n      return hmtx;\n    }());\n    builder.addTable(\"maxp\", \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs));\n    builder.addTable(\"name\", createNameTable(fontName));\n    builder.addTable(\"post\", createPostTable(properties));\n    return builder.toArray();\n  }\n\n  get spaceWidth() {\n    const possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n    let width;\n\n    for (let i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n      const glyphName = possibleSpaceReplacements[i];\n\n      if (glyphName in this.widths) {\n        width = this.widths[glyphName];\n        break;\n      }\n\n      const glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n      const glyphUnicode = glyphsUnicodeMap[glyphName];\n      let charcode = 0;\n\n      if (this.composite && this.cMap.contains(glyphUnicode)) {\n        charcode = this.cMap.lookup(glyphUnicode);\n\n        if (typeof charcode === \"string\") {\n          charcode = convertCidString(glyphUnicode, charcode);\n        }\n      }\n\n      if (!charcode && this.toUnicode) {\n        charcode = this.toUnicode.charCodeOf(glyphUnicode);\n      }\n\n      if (charcode <= 0) {\n        charcode = glyphUnicode;\n      }\n\n      width = this.widths[charcode];\n\n      if (width) {\n        break;\n      }\n    }\n\n    width = width || this.defaultWidth;\n    return (0, _util.shadow)(this, \"spaceWidth\", width);\n  }\n\n  _charToGlyph(charcode, isSpace = false) {\n    let fontCharCode, width, operatorListId;\n    let widthCode = charcode;\n\n    if (this.cMap && this.cMap.contains(charcode)) {\n      widthCode = this.cMap.lookup(charcode);\n\n      if (typeof widthCode === \"string\") {\n        widthCode = convertCidString(charcode, widthCode);\n      }\n    }\n\n    width = this.widths[widthCode];\n\n    if (typeof width !== \"number\") {\n      width = this.defaultWidth;\n    }\n\n    const vmetric = this.vmetrics && this.vmetrics[widthCode];\n    let unicode = this.toUnicode.get(charcode) || charcode;\n\n    if (typeof unicode === \"number\") {\n      unicode = String.fromCharCode(unicode);\n    }\n\n    let isInFont = this.toFontChar[charcode] !== undefined;\n    fontCharCode = this.toFontChar[charcode] || charcode;\n\n    if (this.missingFile) {\n      const glyphName = this.differences[charcode] || this.defaultEncoding[charcode];\n\n      if ((glyphName === \".notdef\" || glyphName === \"\") && this.type === \"Type1\") {\n        fontCharCode = 0x20;\n      }\n\n      fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n    }\n\n    if (this.isType3Font) {\n      operatorListId = fontCharCode;\n    }\n\n    let accent = null;\n\n    if (this.seacMap && this.seacMap[charcode]) {\n      isInFont = true;\n      const seac = this.seacMap[charcode];\n      fontCharCode = seac.baseFontCharCode;\n      accent = {\n        fontChar: String.fromCodePoint(seac.accentFontCharCode),\n        offset: seac.accentOffset\n      };\n    }\n\n    let fontChar = \"\";\n\n    if (typeof fontCharCode === \"number\") {\n      if (fontCharCode <= 0x10ffff) {\n        fontChar = String.fromCodePoint(fontCharCode);\n      } else {\n        (0, _util.warn)(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n      }\n    }\n\n    let glyph = this._glyphCache[charcode];\n\n    if (!glyph || !glyph.matchesForCache(charcode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) {\n      glyph = new Glyph(charcode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n      this._glyphCache[charcode] = glyph;\n    }\n\n    return glyph;\n  }\n\n  charsToGlyphs(chars) {\n    let glyphs = this._charsCache[chars];\n\n    if (glyphs) {\n      return glyphs;\n    }\n\n    glyphs = [];\n\n    if (this.cMap) {\n      const c = Object.create(null),\n            ii = chars.length;\n      let i = 0;\n\n      while (i < ii) {\n        this.cMap.readCharCode(chars, i, c);\n        const {\n          charcode,\n          length\n        } = c;\n        i += length;\n\n        const glyph = this._charToGlyph(charcode, length === 1 && chars.charCodeAt(i - 1) === 0x20);\n\n        glyphs.push(glyph);\n      }\n    } else {\n      for (let i = 0, ii = chars.length; i < ii; ++i) {\n        const charcode = chars.charCodeAt(i);\n\n        const glyph = this._charToGlyph(charcode, charcode === 0x20);\n\n        glyphs.push(glyph);\n      }\n    }\n\n    return this._charsCache[chars] = glyphs;\n  }\n\n  getCharPositions(chars) {\n    const positions = [];\n\n    if (this.cMap) {\n      const c = Object.create(null);\n      let i = 0;\n\n      while (i < chars.length) {\n        this.cMap.readCharCode(chars, i, c);\n        const length = c.length;\n        positions.push([i, i + length]);\n        i += length;\n      }\n    } else {\n      for (let i = 0, ii = chars.length; i < ii; ++i) {\n        positions.push([i, i + 1]);\n      }\n    }\n\n    return positions;\n  }\n\n  get glyphCacheValues() {\n    return Object.values(this._glyphCache);\n  }\n\n  encodeString(str) {\n    const buffers = [];\n    const currentBuf = [];\n\n    const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n\n    const getCharCode = this.toUnicode instanceof _to_unicode_map.IdentityToUnicodeMap ? unicode => this.toUnicode.charCodeOf(unicode) : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode));\n\n    for (let i = 0, ii = str.length; i < ii; i++) {\n      const unicode = str.codePointAt(i);\n\n      if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n        i++;\n      }\n\n      if (this.toUnicode) {\n        const charCode = getCharCode(unicode);\n\n        if (charCode !== -1) {\n          if (hasCurrentBufErrors()) {\n            buffers.push(currentBuf.join(\"\"));\n            currentBuf.length = 0;\n          }\n\n          const charCodeLength = this.cMap ? this.cMap.getCharCodeLength(charCode) : 1;\n\n          for (let j = charCodeLength - 1; j >= 0; j--) {\n            currentBuf.push(String.fromCharCode(charCode >> 8 * j & 0xff));\n          }\n\n          continue;\n        }\n      }\n\n      if (!hasCurrentBufErrors()) {\n        buffers.push(currentBuf.join(\"\"));\n        currentBuf.length = 0;\n      }\n\n      currentBuf.push(String.fromCodePoint(unicode));\n    }\n\n    buffers.push(currentBuf.join(\"\"));\n    return buffers;\n  }\n\n}\n\nexports.Font = Font;\n\nclass ErrorFont {\n  constructor(error) {\n    this.error = error;\n    this.loadedName = \"g_font_error\";\n    this.missingFile = true;\n  }\n\n  charsToGlyphs() {\n    return [];\n  }\n\n  encodeString(chars) {\n    return [chars];\n  }\n\n  exportData(extraProperties = false) {\n    return {\n      error: this.error\n    };\n  }\n\n}\n\nexports.ErrorFont = ErrorFont;\n\n/***/ }),\n/* 35 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CFFTopDict = exports.CFFStrings = exports.CFFStandardStrings = exports.CFFPrivateDict = exports.CFFParser = exports.CFFIndex = exports.CFFHeader = exports.CFFFDSelect = exports.CFFCompiler = exports.CFFCharset = exports.CFF = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _charsets = __w_pdfjs_require__(36);\n\nvar _encodings = __w_pdfjs_require__(37);\n\nconst MAX_SUBR_NESTING = 10;\nconst 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\"];\nexports.CFFStandardStrings = CFFStandardStrings;\nconst NUM_STANDARD_CFF_STRINGS = 391;\nconst CharstringValidationData = [null, {\n  id: \"hstem\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, null, {\n  id: \"vstem\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, {\n  id: \"vmoveto\",\n  min: 1,\n  stackClearing: true\n}, {\n  id: \"rlineto\",\n  min: 2,\n  resetStack: true\n}, {\n  id: \"hlineto\",\n  min: 1,\n  resetStack: true\n}, {\n  id: \"vlineto\",\n  min: 1,\n  resetStack: true\n}, {\n  id: \"rrcurveto\",\n  min: 6,\n  resetStack: true\n}, null, {\n  id: \"callsubr\",\n  min: 1,\n  undefStack: true\n}, {\n  id: \"return\",\n  min: 0,\n  undefStack: true\n}, null, null, {\n  id: \"endchar\",\n  min: 0,\n  stackClearing: true\n}, null, null, null, {\n  id: \"hstemhm\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, {\n  id: \"hintmask\",\n  min: 0,\n  stackClearing: true\n}, {\n  id: \"cntrmask\",\n  min: 0,\n  stackClearing: true\n}, {\n  id: \"rmoveto\",\n  min: 2,\n  stackClearing: true\n}, {\n  id: \"hmoveto\",\n  min: 1,\n  stackClearing: true\n}, {\n  id: \"vstemhm\",\n  min: 2,\n  stackClearing: true,\n  stem: true\n}, {\n  id: \"rcurveline\",\n  min: 8,\n  resetStack: true\n}, {\n  id: \"rlinecurve\",\n  min: 8,\n  resetStack: true\n}, {\n  id: \"vvcurveto\",\n  min: 4,\n  resetStack: true\n}, {\n  id: \"hhcurveto\",\n  min: 4,\n  resetStack: true\n}, null, {\n  id: \"callgsubr\",\n  min: 1,\n  undefStack: true\n}, {\n  id: \"vhcurveto\",\n  min: 4,\n  resetStack: true\n}, {\n  id: \"hvcurveto\",\n  min: 4,\n  resetStack: true\n}];\nconst CharstringValidationData12 = [null, null, null, {\n  id: \"and\",\n  min: 2,\n  stackDelta: -1\n}, {\n  id: \"or\",\n  min: 2,\n  stackDelta: -1\n}, {\n  id: \"not\",\n  min: 1,\n  stackDelta: 0\n}, null, null, null, {\n  id: \"abs\",\n  min: 1,\n  stackDelta: 0\n}, {\n  id: \"add\",\n  min: 2,\n  stackDelta: -1,\n\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] + stack[index - 1];\n  }\n\n}, {\n  id: \"sub\",\n  min: 2,\n  stackDelta: -1,\n\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] - stack[index - 1];\n  }\n\n}, {\n  id: \"div\",\n  min: 2,\n  stackDelta: -1,\n\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] / stack[index - 1];\n  }\n\n}, null, {\n  id: \"neg\",\n  min: 1,\n  stackDelta: 0,\n\n  stackFn(stack, index) {\n    stack[index - 1] = -stack[index - 1];\n  }\n\n}, {\n  id: \"eq\",\n  min: 2,\n  stackDelta: -1\n}, null, null, {\n  id: \"drop\",\n  min: 1,\n  stackDelta: -1\n}, null, {\n  id: \"put\",\n  min: 2,\n  stackDelta: -2\n}, {\n  id: \"get\",\n  min: 1,\n  stackDelta: 0\n}, {\n  id: \"ifelse\",\n  min: 4,\n  stackDelta: -3\n}, {\n  id: \"random\",\n  min: 0,\n  stackDelta: 1\n}, {\n  id: \"mul\",\n  min: 2,\n  stackDelta: -1,\n\n  stackFn(stack, index) {\n    stack[index - 2] = stack[index - 2] * stack[index - 1];\n  }\n\n}, null, {\n  id: \"sqrt\",\n  min: 1,\n  stackDelta: 0\n}, {\n  id: \"dup\",\n  min: 1,\n  stackDelta: 1\n}, {\n  id: \"exch\",\n  min: 2,\n  stackDelta: 0\n}, {\n  id: \"index\",\n  min: 2,\n  stackDelta: 0\n}, {\n  id: \"roll\",\n  min: 3,\n  stackDelta: -2\n}, null, null, null, {\n  id: \"hflex\",\n  min: 7,\n  resetStack: true\n}, {\n  id: \"flex\",\n  min: 13,\n  resetStack: true\n}, {\n  id: \"hflex1\",\n  min: 9,\n  resetStack: true\n}, {\n  id: \"flex1\",\n  min: 11,\n  resetStack: true\n}];\n\nclass CFFParser {\n  constructor(file, properties, seacAnalysisEnabled) {\n    this.bytes = file.getBytes();\n    this.properties = properties;\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n  }\n\n  parse() {\n    const properties = this.properties;\n    const cff = new CFF();\n    this.cff = cff;\n    const header = this.parseHeader();\n    const nameIndex = this.parseIndex(header.endPos);\n    const topDictIndex = this.parseIndex(nameIndex.endPos);\n    const stringIndex = this.parseIndex(topDictIndex.endPos);\n    const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n    const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n    const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n    cff.header = header.obj;\n    cff.names = this.parseNameIndex(nameIndex.obj);\n    cff.strings = this.parseStringIndex(stringIndex.obj);\n    cff.topDict = topDict;\n    cff.globalSubrIndex = globalSubrIndex.obj;\n    this.parsePrivateDict(cff.topDict);\n    cff.isCIDFont = topDict.hasName(\"ROS\");\n    const charStringOffset = topDict.getByName(\"CharStrings\");\n    const charStringIndex = this.parseIndex(charStringOffset).obj;\n    const fontMatrix = topDict.getByName(\"FontMatrix\");\n\n    if (fontMatrix) {\n      properties.fontMatrix = fontMatrix;\n    }\n\n    const fontBBox = topDict.getByName(\"FontBBox\");\n\n    if (fontBBox) {\n      properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n      properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n      properties.ascentScaled = true;\n    }\n\n    let charset, encoding;\n\n    if (cff.isCIDFont) {\n      const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n\n      for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n        const dictRaw = fdArrayIndex.get(i);\n        const fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n        this.parsePrivateDict(fontDict);\n        cff.fdArray.push(fontDict);\n      }\n\n      encoding = null;\n      charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, true);\n      cff.fdSelect = this.parseFDSelect(topDict.getByName(\"FDSelect\"), charStringIndex.count);\n    } else {\n      charset = this.parseCharsets(topDict.getByName(\"charset\"), charStringIndex.count, cff.strings, false);\n      encoding = this.parseEncoding(topDict.getByName(\"Encoding\"), properties, cff.strings, charset.charset);\n    }\n\n    cff.charset = charset;\n    cff.encoding = encoding;\n    const charStringsAndSeacs = this.parseCharStrings({\n      charStrings: charStringIndex,\n      localSubrIndex: topDict.privateDict.subrsIndex,\n      globalSubrIndex: globalSubrIndex.obj,\n      fdSelect: cff.fdSelect,\n      fdArray: cff.fdArray,\n      privateDict: topDict.privateDict\n    });\n    cff.charStrings = charStringsAndSeacs.charStrings;\n    cff.seacs = charStringsAndSeacs.seacs;\n    cff.widths = charStringsAndSeacs.widths;\n    return cff;\n  }\n\n  parseHeader() {\n    let bytes = this.bytes;\n    const bytesLength = bytes.length;\n    let offset = 0;\n\n    while (offset < bytesLength && bytes[offset] !== 1) {\n      ++offset;\n    }\n\n    if (offset >= bytesLength) {\n      throw new _util.FormatError(\"Invalid CFF header\");\n    }\n\n    if (offset !== 0) {\n      (0, _util.info)(\"cff data is shifted\");\n      bytes = bytes.subarray(offset);\n      this.bytes = bytes;\n    }\n\n    const major = bytes[0];\n    const minor = bytes[1];\n    const hdrSize = bytes[2];\n    const offSize = bytes[3];\n    const header = new CFFHeader(major, minor, hdrSize, offSize);\n    return {\n      obj: header,\n      endPos: hdrSize\n    };\n  }\n\n  parseDict(dict) {\n    let pos = 0;\n\n    function parseOperand() {\n      let value = dict[pos++];\n\n      if (value === 30) {\n        return parseFloatOperand();\n      } else if (value === 28) {\n        value = dict[pos++];\n        value = (value << 24 | dict[pos++] << 16) >> 16;\n        return value;\n      } else if (value === 29) {\n        value = dict[pos++];\n        value = value << 8 | dict[pos++];\n        value = value << 8 | dict[pos++];\n        value = value << 8 | dict[pos++];\n        return value;\n      } else if (value >= 32 && value <= 246) {\n        return value - 139;\n      } else if (value >= 247 && value <= 250) {\n        return (value - 247) * 256 + dict[pos++] + 108;\n      } else if (value >= 251 && value <= 254) {\n        return -((value - 251) * 256) - dict[pos++] - 108;\n      }\n\n      (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n      return NaN;\n    }\n\n    function parseFloatOperand() {\n      let str = \"\";\n      const eof = 15;\n      const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n      const length = dict.length;\n\n      while (pos < length) {\n        const b = dict[pos++];\n        const b1 = b >> 4;\n        const b2 = b & 15;\n\n        if (b1 === eof) {\n          break;\n        }\n\n        str += lookup[b1];\n\n        if (b2 === eof) {\n          break;\n        }\n\n        str += lookup[b2];\n      }\n\n      return parseFloat(str);\n    }\n\n    let operands = [];\n    const entries = [];\n    pos = 0;\n    const end = dict.length;\n\n    while (pos < end) {\n      let b = dict[pos];\n\n      if (b <= 21) {\n        if (b === 12) {\n          b = b << 8 | dict[++pos];\n        }\n\n        entries.push([b, operands]);\n        operands = [];\n        ++pos;\n      } else {\n        operands.push(parseOperand());\n      }\n    }\n\n    return entries;\n  }\n\n  parseIndex(pos) {\n    const cffIndex = new CFFIndex();\n    const bytes = this.bytes;\n    const count = bytes[pos++] << 8 | bytes[pos++];\n    const offsets = [];\n    let end = pos;\n    let i, ii;\n\n    if (count !== 0) {\n      const offsetSize = bytes[pos++];\n      const startPos = pos + (count + 1) * offsetSize - 1;\n\n      for (i = 0, ii = count + 1; i < ii; ++i) {\n        let offset = 0;\n\n        for (let j = 0; j < offsetSize; ++j) {\n          offset <<= 8;\n          offset += bytes[pos++];\n        }\n\n        offsets.push(startPos + offset);\n      }\n\n      end = offsets[count];\n    }\n\n    for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n      const offsetStart = offsets[i];\n      const offsetEnd = offsets[i + 1];\n      cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n    }\n\n    return {\n      obj: cffIndex,\n      endPos: end\n    };\n  }\n\n  parseNameIndex(index) {\n    const names = [];\n\n    for (let i = 0, ii = index.count; i < ii; ++i) {\n      const name = index.get(i);\n      names.push((0, _util.bytesToString)(name));\n    }\n\n    return names;\n  }\n\n  parseStringIndex(index) {\n    const strings = new CFFStrings();\n\n    for (let i = 0, ii = index.count; i < ii; ++i) {\n      const data = index.get(i);\n      strings.add((0, _util.bytesToString)(data));\n    }\n\n    return strings;\n  }\n\n  createDict(Type, dict, strings) {\n    const cffDict = new Type(strings);\n\n    for (let i = 0, ii = dict.length; i < ii; ++i) {\n      const pair = dict[i];\n      const key = pair[0];\n      const value = pair[1];\n      cffDict.setByKey(key, value);\n    }\n\n    return cffDict;\n  }\n\n  parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n    if (!data || state.callDepth > MAX_SUBR_NESTING) {\n      return false;\n    }\n\n    let stackSize = state.stackSize;\n    const stack = state.stack;\n    const length = data.length;\n\n    for (let j = 0; j < length;) {\n      const value = data[j++];\n      let validationCommand = null;\n\n      if (value === 12) {\n        const q = data[j++];\n\n        if (q === 0) {\n          data[j - 2] = 139;\n          data[j - 1] = 22;\n          stackSize = 0;\n        } else {\n          validationCommand = CharstringValidationData12[q];\n        }\n      } else if (value === 28) {\n        stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16;\n        j += 2;\n        stackSize++;\n      } else if (value === 14) {\n        if (stackSize >= 4) {\n          stackSize -= 4;\n\n          if (this.seacAnalysisEnabled) {\n            state.seac = stack.slice(stackSize, stackSize + 4);\n            return false;\n          }\n        }\n\n        validationCommand = CharstringValidationData[value];\n      } else if (value >= 32 && value <= 246) {\n        stack[stackSize] = value - 139;\n        stackSize++;\n      } else if (value >= 247 && value <= 254) {\n        stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n        j++;\n        stackSize++;\n      } else if (value === 255) {\n        stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n        j += 4;\n        stackSize++;\n      } else if (value === 19 || value === 20) {\n        state.hints += stackSize >> 1;\n        j += state.hints + 7 >> 3;\n        stackSize %= 2;\n        validationCommand = CharstringValidationData[value];\n      } else if (value === 10 || value === 29) {\n        let subrsIndex;\n\n        if (value === 10) {\n          subrsIndex = localSubrIndex;\n        } else {\n          subrsIndex = globalSubrIndex;\n        }\n\n        if (!subrsIndex) {\n          validationCommand = CharstringValidationData[value];\n          (0, _util.warn)(\"Missing subrsIndex for \" + validationCommand.id);\n          return false;\n        }\n\n        let bias = 32768;\n\n        if (subrsIndex.count < 1240) {\n          bias = 107;\n        } else if (subrsIndex.count < 33900) {\n          bias = 1131;\n        }\n\n        const subrNumber = stack[--stackSize] + bias;\n\n        if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n          validationCommand = CharstringValidationData[value];\n          (0, _util.warn)(\"Out of bounds subrIndex for \" + validationCommand.id);\n          return false;\n        }\n\n        state.stackSize = stackSize;\n        state.callDepth++;\n        const valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n\n        if (!valid) {\n          return false;\n        }\n\n        state.callDepth--;\n        stackSize = state.stackSize;\n        continue;\n      } else if (value === 11) {\n        state.stackSize = stackSize;\n        return true;\n      } else if (value === 0 && j === data.length) {\n        data[j - 1] = 14;\n        validationCommand = CharstringValidationData[14];\n      } else {\n        validationCommand = CharstringValidationData[value];\n      }\n\n      if (validationCommand) {\n        if (validationCommand.stem) {\n          state.hints += stackSize >> 1;\n\n          if (value === 3 || value === 23) {\n            state.hasVStems = true;\n          } else if (state.hasVStems && (value === 1 || value === 18)) {\n            (0, _util.warn)(\"CFF stem hints are in wrong order\");\n            data[j - 1] = value === 1 ? 3 : 23;\n          }\n        }\n\n        if (\"min\" in validationCommand) {\n          if (!state.undefStack && stackSize < validationCommand.min) {\n            (0, _util.warn)(\"Not enough parameters for \" + validationCommand.id + \"; actual: \" + stackSize + \", expected: \" + validationCommand.min);\n\n            if (stackSize === 0) {\n              data[j - 1] = 14;\n              return true;\n            }\n\n            return false;\n          }\n        }\n\n        if (state.firstStackClearing && validationCommand.stackClearing) {\n          state.firstStackClearing = false;\n          stackSize -= validationCommand.min;\n\n          if (stackSize >= 2 && validationCommand.stem) {\n            stackSize %= 2;\n          } else if (stackSize > 1) {\n            (0, _util.warn)(\"Found too many parameters for stack-clearing command\");\n          }\n\n          if (stackSize > 0) {\n            state.width = stack[stackSize - 1];\n          }\n        }\n\n        if (\"stackDelta\" in validationCommand) {\n          if (\"stackFn\" in validationCommand) {\n            validationCommand.stackFn(stack, stackSize);\n          }\n\n          stackSize += validationCommand.stackDelta;\n        } else if (validationCommand.stackClearing) {\n          stackSize = 0;\n        } else if (validationCommand.resetStack) {\n          stackSize = 0;\n          state.undefStack = false;\n        } else if (validationCommand.undefStack) {\n          stackSize = 0;\n          state.undefStack = true;\n          state.firstStackClearing = false;\n        }\n      }\n    }\n\n    state.stackSize = stackSize;\n    return true;\n  }\n\n  parseCharStrings({\n    charStrings,\n    localSubrIndex,\n    globalSubrIndex,\n    fdSelect,\n    fdArray,\n    privateDict\n  }) {\n    const seacs = [];\n    const widths = [];\n    const count = charStrings.count;\n\n    for (let i = 0; i < count; i++) {\n      const charstring = charStrings.get(i);\n      const state = {\n        callDepth: 0,\n        stackSize: 0,\n        stack: [],\n        undefStack: true,\n        hints: 0,\n        firstStackClearing: true,\n        seac: null,\n        width: null,\n        hasVStems: false\n      };\n      let valid = true;\n      let localSubrToUse = null;\n      let privateDictToUse = privateDict;\n\n      if (fdSelect && fdArray.length) {\n        const fdIndex = fdSelect.getFDIndex(i);\n\n        if (fdIndex === -1) {\n          (0, _util.warn)(\"Glyph index is not in fd select.\");\n          valid = false;\n        }\n\n        if (fdIndex >= fdArray.length) {\n          (0, _util.warn)(\"Invalid fd index for glyph index.\");\n          valid = false;\n        }\n\n        if (valid) {\n          privateDictToUse = fdArray[fdIndex].privateDict;\n          localSubrToUse = privateDictToUse.subrsIndex;\n        }\n      } else if (localSubrIndex) {\n        localSubrToUse = localSubrIndex;\n      }\n\n      if (valid) {\n        valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n      }\n\n      if (state.width !== null) {\n        const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n        widths[i] = nominalWidth + state.width;\n      } else {\n        const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n        widths[i] = defaultWidth;\n      }\n\n      if (state.seac !== null) {\n        seacs[i] = state.seac;\n      }\n\n      if (!valid) {\n        charStrings.set(i, new Uint8Array([14]));\n      }\n    }\n\n    return {\n      charStrings,\n      seacs,\n      widths\n    };\n  }\n\n  emptyPrivateDictionary(parentDict) {\n    const privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n    parentDict.setByKey(18, [0, 0]);\n    parentDict.privateDict = privateDict;\n  }\n\n  parsePrivateDict(parentDict) {\n    if (!parentDict.hasName(\"Private\")) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n\n    const privateOffset = parentDict.getByName(\"Private\");\n\n    if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n      parentDict.removeByName(\"Private\");\n      return;\n    }\n\n    const size = privateOffset[0];\n    const offset = privateOffset[1];\n\n    if (size === 0 || offset >= this.bytes.length) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n\n    const privateDictEnd = offset + size;\n    const dictData = this.bytes.subarray(offset, privateDictEnd);\n    const dict = this.parseDict(dictData);\n    const privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n    parentDict.privateDict = privateDict;\n\n    if (!privateDict.getByName(\"Subrs\")) {\n      return;\n    }\n\n    const subrsOffset = privateDict.getByName(\"Subrs\");\n    const relativeOffset = offset + subrsOffset;\n\n    if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n      this.emptyPrivateDictionary(parentDict);\n      return;\n    }\n\n    const subrsIndex = this.parseIndex(relativeOffset);\n    privateDict.subrsIndex = subrsIndex.obj;\n  }\n\n  parseCharsets(pos, length, strings, cid) {\n    if (pos === 0) {\n      return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset);\n    } else if (pos === 1) {\n      return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset);\n    } else if (pos === 2) {\n      return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset);\n    }\n\n    const bytes = this.bytes;\n    const start = pos;\n    const format = bytes[pos++];\n    const charset = [cid ? 0 : \".notdef\"];\n    let id, count, i;\n    length -= 1;\n\n    switch (format) {\n      case 0:\n        for (i = 0; i < length; i++) {\n          id = bytes[pos++] << 8 | bytes[pos++];\n          charset.push(cid ? id : strings.get(id));\n        }\n\n        break;\n\n      case 1:\n        while (charset.length <= length) {\n          id = bytes[pos++] << 8 | bytes[pos++];\n          count = bytes[pos++];\n\n          for (i = 0; i <= count; i++) {\n            charset.push(cid ? id++ : strings.get(id++));\n          }\n        }\n\n        break;\n\n      case 2:\n        while (charset.length <= length) {\n          id = bytes[pos++] << 8 | bytes[pos++];\n          count = bytes[pos++] << 8 | bytes[pos++];\n\n          for (i = 0; i <= count; i++) {\n            charset.push(cid ? id++ : strings.get(id++));\n          }\n        }\n\n        break;\n\n      default:\n        throw new _util.FormatError(\"Unknown charset format\");\n    }\n\n    const end = pos;\n    const raw = bytes.subarray(start, end);\n    return new CFFCharset(false, format, charset, raw);\n  }\n\n  parseEncoding(pos, properties, strings, charset) {\n    const encoding = Object.create(null);\n    const bytes = this.bytes;\n    let predefined = false;\n    let format, i, ii;\n    let raw = null;\n\n    function readSupplement() {\n      const supplementsCount = bytes[pos++];\n\n      for (i = 0; i < supplementsCount; i++) {\n        const code = bytes[pos++];\n        const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n        encoding[code] = charset.indexOf(strings.get(sid));\n      }\n    }\n\n    if (pos === 0 || pos === 1) {\n      predefined = true;\n      format = pos;\n      const baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n\n      for (i = 0, ii = charset.length; i < ii; i++) {\n        const index = baseEncoding.indexOf(charset[i]);\n\n        if (index !== -1) {\n          encoding[index] = i;\n        }\n      }\n    } else {\n      const dataStart = pos;\n      format = bytes[pos++];\n\n      switch (format & 0x7f) {\n        case 0:\n          const glyphsCount = bytes[pos++];\n\n          for (i = 1; i <= glyphsCount; i++) {\n            encoding[bytes[pos++]] = i;\n          }\n\n          break;\n\n        case 1:\n          const rangesCount = bytes[pos++];\n          let gid = 1;\n\n          for (i = 0; i < rangesCount; i++) {\n            const start = bytes[pos++];\n            const left = bytes[pos++];\n\n            for (let j = start; j <= start + left; j++) {\n              encoding[j] = gid++;\n            }\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError(`Unknown encoding format: ${format} in CFF`);\n      }\n\n      const dataEnd = pos;\n\n      if (format & 0x80) {\n        bytes[dataStart] &= 0x7f;\n        readSupplement();\n      }\n\n      raw = bytes.subarray(dataStart, dataEnd);\n    }\n\n    format &= 0x7f;\n    return new CFFEncoding(predefined, format, encoding, raw);\n  }\n\n  parseFDSelect(pos, length) {\n    const bytes = this.bytes;\n    const format = bytes[pos++];\n    const fdSelect = [];\n    let i;\n\n    switch (format) {\n      case 0:\n        for (i = 0; i < length; ++i) {\n          const id = bytes[pos++];\n          fdSelect.push(id);\n        }\n\n        break;\n\n      case 3:\n        const rangesCount = bytes[pos++] << 8 | bytes[pos++];\n\n        for (i = 0; i < rangesCount; ++i) {\n          let first = bytes[pos++] << 8 | bytes[pos++];\n\n          if (i === 0 && first !== 0) {\n            (0, _util.warn)(\"parseFDSelect: The first range must have a first GID of 0\" + \" -- trying to recover.\");\n            first = 0;\n          }\n\n          const fdIndex = bytes[pos++];\n          const next = bytes[pos] << 8 | bytes[pos + 1];\n\n          for (let j = first; j < next; ++j) {\n            fdSelect.push(fdIndex);\n          }\n        }\n\n        pos += 2;\n        break;\n\n      default:\n        throw new _util.FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n    }\n\n    if (fdSelect.length !== length) {\n      throw new _util.FormatError(\"parseFDSelect: Invalid font data.\");\n    }\n\n    return new CFFFDSelect(format, fdSelect);\n  }\n\n}\n\nexports.CFFParser = CFFParser;\n\nclass CFF {\n  constructor() {\n    this.header = null;\n    this.names = [];\n    this.topDict = null;\n    this.strings = new CFFStrings();\n    this.globalSubrIndex = null;\n    this.encoding = null;\n    this.charset = null;\n    this.charStrings = null;\n    this.fdArray = [];\n    this.fdSelect = null;\n    this.isCIDFont = false;\n  }\n\n  duplicateFirstGlyph() {\n    if (this.charStrings.count >= 65535) {\n      (0, _util.warn)(\"Not enough space in charstrings to duplicate first glyph.\");\n      return;\n    }\n\n    const glyphZero = this.charStrings.get(0);\n    this.charStrings.add(glyphZero);\n\n    if (this.isCIDFont) {\n      this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n    }\n  }\n\n  hasGlyphId(id) {\n    if (id < 0 || id >= this.charStrings.count) {\n      return false;\n    }\n\n    const glyph = this.charStrings.get(id);\n    return glyph.length > 0;\n  }\n\n}\n\nexports.CFF = CFF;\n\nclass CFFHeader {\n  constructor(major, minor, hdrSize, offSize) {\n    this.major = major;\n    this.minor = minor;\n    this.hdrSize = hdrSize;\n    this.offSize = offSize;\n  }\n\n}\n\nexports.CFFHeader = CFFHeader;\n\nclass CFFStrings {\n  constructor() {\n    this.strings = [];\n  }\n\n  get(index) {\n    if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n      return CFFStandardStrings[index];\n    }\n\n    if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n      return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n    }\n\n    return CFFStandardStrings[0];\n  }\n\n  getSID(str) {\n    let index = CFFStandardStrings.indexOf(str);\n\n    if (index !== -1) {\n      return index;\n    }\n\n    index = this.strings.indexOf(str);\n\n    if (index !== -1) {\n      return index + NUM_STANDARD_CFF_STRINGS;\n    }\n\n    return -1;\n  }\n\n  add(value) {\n    this.strings.push(value);\n  }\n\n  get count() {\n    return this.strings.length;\n  }\n\n}\n\nexports.CFFStrings = CFFStrings;\n\nclass CFFIndex {\n  constructor() {\n    this.objects = [];\n    this.length = 0;\n  }\n\n  add(data) {\n    this.length += data.length;\n    this.objects.push(data);\n  }\n\n  set(index, data) {\n    this.length += data.length - this.objects[index].length;\n    this.objects[index] = data;\n  }\n\n  get(index) {\n    return this.objects[index];\n  }\n\n  get count() {\n    return this.objects.length;\n  }\n\n}\n\nexports.CFFIndex = CFFIndex;\n\nclass CFFDict {\n  constructor(tables, strings) {\n    this.keyToNameMap = tables.keyToNameMap;\n    this.nameToKeyMap = tables.nameToKeyMap;\n    this.defaults = tables.defaults;\n    this.types = tables.types;\n    this.opcodes = tables.opcodes;\n    this.order = tables.order;\n    this.strings = strings;\n    this.values = Object.create(null);\n  }\n\n  setByKey(key, value) {\n    if (!(key in this.keyToNameMap)) {\n      return false;\n    }\n\n    const valueLength = value.length;\n\n    if (valueLength === 0) {\n      return true;\n    }\n\n    for (let i = 0; i < valueLength; i++) {\n      if (isNaN(value[i])) {\n        (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n        return true;\n      }\n    }\n\n    const type = this.types[key];\n\n    if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n      value = value[0];\n    }\n\n    this.values[key] = value;\n    return true;\n  }\n\n  setByName(name, value) {\n    if (!(name in this.nameToKeyMap)) {\n      throw new _util.FormatError(`Invalid dictionary name \"${name}\"`);\n    }\n\n    this.values[this.nameToKeyMap[name]] = value;\n  }\n\n  hasName(name) {\n    return this.nameToKeyMap[name] in this.values;\n  }\n\n  getByName(name) {\n    if (!(name in this.nameToKeyMap)) {\n      throw new _util.FormatError(`Invalid dictionary name ${name}\"`);\n    }\n\n    const key = this.nameToKeyMap[name];\n\n    if (!(key in this.values)) {\n      return this.defaults[key];\n    }\n\n    return this.values[key];\n  }\n\n  removeByName(name) {\n    delete this.values[this.nameToKeyMap[name]];\n  }\n\n  static createTables(layout) {\n    const tables = {\n      keyToNameMap: {},\n      nameToKeyMap: {},\n      defaults: {},\n      types: {},\n      opcodes: {},\n      order: []\n    };\n\n    for (let i = 0, ii = layout.length; i < ii; ++i) {\n      const entry = layout[i];\n      const key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n      tables.keyToNameMap[key] = entry[1];\n      tables.nameToKeyMap[entry[1]] = key;\n      tables.types[key] = entry[2];\n      tables.defaults[key] = entry[3];\n      tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n      tables.order.push(key);\n    }\n\n    return tables;\n  }\n\n}\n\nconst CFFTopDictLayout = [[[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\"], [0.001, 0, 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]];\n\nclass CFFTopDict extends CFFDict {\n  static get tables() {\n    return (0, _util.shadow)(this, \"tables\", this.createTables(CFFTopDictLayout));\n  }\n\n  constructor(strings) {\n    super(CFFTopDict.tables, strings);\n    this.privateDict = null;\n  }\n\n}\n\nexports.CFFTopDict = CFFTopDict;\nconst CFFPrivateDictLayout = [[6, \"BlueValues\", \"delta\", null], [7, \"OtherBlues\", \"delta\", null], [8, \"FamilyBlues\", \"delta\", null], [9, \"FamilyOtherBlues\", \"delta\", null], [[12, 9], \"BlueScale\", \"num\", 0.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\", 0.06], [[12, 19], \"initialRandomSeed\", \"num\", 0], [20, \"defaultWidthX\", \"num\", 0], [21, \"nominalWidthX\", \"num\", 0], [19, \"Subrs\", \"offset\", null]];\n\nclass CFFPrivateDict extends CFFDict {\n  static get tables() {\n    return (0, _util.shadow)(this, \"tables\", this.createTables(CFFPrivateDictLayout));\n  }\n\n  constructor(strings) {\n    super(CFFPrivateDict.tables, strings);\n    this.subrsIndex = null;\n  }\n\n}\n\nexports.CFFPrivateDict = CFFPrivateDict;\nconst CFFCharsetPredefinedTypes = {\n  ISO_ADOBE: 0,\n  EXPERT: 1,\n  EXPERT_SUBSET: 2\n};\n\nclass CFFCharset {\n  constructor(predefined, format, charset, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.charset = charset;\n    this.raw = raw;\n  }\n\n}\n\nexports.CFFCharset = CFFCharset;\n\nclass CFFEncoding {\n  constructor(predefined, format, encoding, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.encoding = encoding;\n    this.raw = raw;\n  }\n\n}\n\nclass CFFFDSelect {\n  constructor(format, fdSelect) {\n    this.format = format;\n    this.fdSelect = fdSelect;\n  }\n\n  getFDIndex(glyphIndex) {\n    if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n      return -1;\n    }\n\n    return this.fdSelect[glyphIndex];\n  }\n\n}\n\nexports.CFFFDSelect = CFFFDSelect;\n\nclass CFFOffsetTracker {\n  constructor() {\n    this.offsets = Object.create(null);\n  }\n\n  isTracking(key) {\n    return key in this.offsets;\n  }\n\n  track(key, location) {\n    if (key in this.offsets) {\n      throw new _util.FormatError(`Already tracking location of ${key}`);\n    }\n\n    this.offsets[key] = location;\n  }\n\n  offset(value) {\n    for (const key in this.offsets) {\n      this.offsets[key] += value;\n    }\n  }\n\n  setEntryLocation(key, values, output) {\n    if (!(key in this.offsets)) {\n      throw new _util.FormatError(`Not tracking location of ${key}`);\n    }\n\n    const data = output.data;\n    const dataOffset = this.offsets[key];\n    const size = 5;\n\n    for (let i = 0, ii = values.length; i < ii; ++i) {\n      const offset0 = i * size + dataOffset;\n      const offset1 = offset0 + 1;\n      const offset2 = offset0 + 2;\n      const offset3 = offset0 + 3;\n      const offset4 = offset0 + 4;\n\n      if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n        throw new _util.FormatError(\"writing to an offset that is not empty\");\n      }\n\n      const value = values[i];\n      data[offset0] = 0x1d;\n      data[offset1] = value >> 24 & 0xff;\n      data[offset2] = value >> 16 & 0xff;\n      data[offset3] = value >> 8 & 0xff;\n      data[offset4] = value & 0xff;\n    }\n  }\n\n}\n\nclass CFFCompiler {\n  constructor(cff) {\n    this.cff = cff;\n  }\n\n  compile() {\n    const cff = this.cff;\n    const output = {\n      data: [],\n      length: 0,\n\n      add(data) {\n        this.data = this.data.concat(data);\n        this.length = this.data.length;\n      }\n\n    };\n    const header = this.compileHeader(cff.header);\n    output.add(header);\n    const nameIndex = this.compileNameIndex(cff.names);\n    output.add(nameIndex);\n\n    if (cff.isCIDFont) {\n      if (cff.topDict.hasName(\"FontMatrix\")) {\n        const base = cff.topDict.getByName(\"FontMatrix\");\n        cff.topDict.removeByName(\"FontMatrix\");\n\n        for (let i = 0, ii = cff.fdArray.length; i < ii; i++) {\n          const subDict = cff.fdArray[i];\n          let matrix = base.slice(0);\n\n          if (subDict.hasName(\"FontMatrix\")) {\n            matrix = _util.Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n          }\n\n          subDict.setByName(\"FontMatrix\", matrix);\n        }\n      }\n    }\n\n    const xuid = cff.topDict.getByName(\"XUID\");\n\n    if (xuid && xuid.length > 16) {\n      cff.topDict.removeByName(\"XUID\");\n    }\n\n    cff.topDict.setByName(\"charset\", 0);\n    let compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n    output.add(compiled.output);\n    const topDictTracker = compiled.trackers[0];\n    const stringIndex = this.compileStringIndex(cff.strings.strings);\n    output.add(stringIndex);\n    const globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n    output.add(globalSubrIndex);\n\n    if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n      if (cff.encoding.predefined) {\n        topDictTracker.setEntryLocation(\"Encoding\", [cff.encoding.format], output);\n      } else {\n        const encoding = this.compileEncoding(cff.encoding);\n        topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n        output.add(encoding);\n      }\n    }\n\n    const charset = this.compileCharset(cff.charset, cff.charStrings.count, cff.strings, cff.isCIDFont);\n    topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n    output.add(charset);\n    const charStrings = this.compileCharStrings(cff.charStrings);\n    topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n    output.add(charStrings);\n\n    if (cff.isCIDFont) {\n      topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n      const fdSelect = this.compileFDSelect(cff.fdSelect);\n      output.add(fdSelect);\n      compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n      topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n      output.add(compiled.output);\n      const fontDictTrackers = compiled.trackers;\n      this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n    }\n\n    this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n    output.add([0]);\n    return output.data;\n  }\n\n  encodeNumber(value) {\n    if (Number.isInteger(value)) {\n      return this.encodeInteger(value);\n    }\n\n    return this.encodeFloat(value);\n  }\n\n  static get EncodeFloatRegExp() {\n    return (0, _util.shadow)(this, \"EncodeFloatRegExp\", /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/);\n  }\n\n  encodeFloat(num) {\n    let value = num.toString();\n    const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n\n    if (m) {\n      const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n      value = (Math.round(num * epsilon) / epsilon).toString();\n    }\n\n    let nibbles = \"\";\n    let i, ii;\n\n    for (i = 0, ii = value.length; i < ii; ++i) {\n      const a = value[i];\n\n      if (a === \"e\") {\n        nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n      } else if (a === \".\") {\n        nibbles += \"a\";\n      } else if (a === \"-\") {\n        nibbles += \"e\";\n      } else {\n        nibbles += a;\n      }\n    }\n\n    nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n    const out = [30];\n\n    for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n      out.push(parseInt(nibbles.substring(i, i + 2), 16));\n    }\n\n    return out;\n  }\n\n  encodeInteger(value) {\n    let code;\n\n    if (value >= -107 && value <= 107) {\n      code = [value + 139];\n    } else if (value >= 108 && value <= 1131) {\n      value -= 108;\n      code = [(value >> 8) + 247, value & 0xff];\n    } else if (value >= -1131 && value <= -108) {\n      value = -value - 108;\n      code = [(value >> 8) + 251, value & 0xff];\n    } else if (value >= -32768 && value <= 32767) {\n      code = [0x1c, value >> 8 & 0xff, value & 0xff];\n    } else {\n      code = [0x1d, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff];\n    }\n\n    return code;\n  }\n\n  compileHeader(header) {\n    return [header.major, header.minor, 4, header.offSize];\n  }\n\n  compileNameIndex(names) {\n    const nameIndex = new CFFIndex();\n\n    for (let i = 0, ii = names.length; i < ii; ++i) {\n      const name = names[i];\n      const length = Math.min(name.length, 127);\n      let sanitizedName = new Array(length);\n\n      for (let j = 0; j < length; j++) {\n        let char = name[j];\n\n        if (char < \"!\" || char > \"~\" || char === \"[\" || char === \"]\" || char === \"(\" || char === \")\" || char === \"{\" || char === \"}\" || char === \"<\" || char === \">\" || char === \"/\" || char === \"%\") {\n          char = \"_\";\n        }\n\n        sanitizedName[j] = char;\n      }\n\n      sanitizedName = sanitizedName.join(\"\");\n\n      if (sanitizedName === \"\") {\n        sanitizedName = \"Bad_Font_Name\";\n      }\n\n      nameIndex.add((0, _util.stringToBytes)(sanitizedName));\n    }\n\n    return this.compileIndex(nameIndex);\n  }\n\n  compileTopDicts(dicts, length, removeCidKeys) {\n    const fontDictTrackers = [];\n    let fdArrayIndex = new CFFIndex();\n\n    for (let i = 0, ii = dicts.length; i < ii; ++i) {\n      const fontDict = dicts[i];\n\n      if (removeCidKeys) {\n        fontDict.removeByName(\"CIDFontVersion\");\n        fontDict.removeByName(\"CIDFontRevision\");\n        fontDict.removeByName(\"CIDFontType\");\n        fontDict.removeByName(\"CIDCount\");\n        fontDict.removeByName(\"UIDBase\");\n      }\n\n      const fontDictTracker = new CFFOffsetTracker();\n      const fontDictData = this.compileDict(fontDict, fontDictTracker);\n      fontDictTrackers.push(fontDictTracker);\n      fdArrayIndex.add(fontDictData);\n      fontDictTracker.offset(length);\n    }\n\n    fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n    return {\n      trackers: fontDictTrackers,\n      output: fdArrayIndex\n    };\n  }\n\n  compilePrivateDicts(dicts, trackers, output) {\n    for (let i = 0, ii = dicts.length; i < ii; ++i) {\n      const fontDict = dicts[i];\n      const privateDict = fontDict.privateDict;\n\n      if (!privateDict || !fontDict.hasName(\"Private\")) {\n        throw new _util.FormatError(\"There must be a private dictionary.\");\n      }\n\n      const privateDictTracker = new CFFOffsetTracker();\n      const privateDictData = this.compileDict(privateDict, privateDictTracker);\n      let outputLength = output.length;\n      privateDictTracker.offset(outputLength);\n\n      if (!privateDictData.length) {\n        outputLength = 0;\n      }\n\n      trackers[i].setEntryLocation(\"Private\", [privateDictData.length, outputLength], output);\n      output.add(privateDictData);\n\n      if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n        const subrs = this.compileIndex(privateDict.subrsIndex);\n        privateDictTracker.setEntryLocation(\"Subrs\", [privateDictData.length], output);\n        output.add(subrs);\n      }\n    }\n  }\n\n  compileDict(dict, offsetTracker) {\n    const out = [];\n\n    for (const key of dict.order) {\n      if (!(key in dict.values)) {\n        continue;\n      }\n\n      let values = dict.values[key];\n      let types = dict.types[key];\n\n      if (!Array.isArray(types)) {\n        types = [types];\n      }\n\n      if (!Array.isArray(values)) {\n        values = [values];\n      }\n\n      if (values.length === 0) {\n        continue;\n      }\n\n      for (let j = 0, jj = types.length; j < jj; ++j) {\n        const type = types[j];\n        const value = values[j];\n\n        switch (type) {\n          case \"num\":\n          case \"sid\":\n            out.push(...this.encodeNumber(value));\n            break;\n\n          case \"offset\":\n            const name = dict.keyToNameMap[key];\n\n            if (!offsetTracker.isTracking(name)) {\n              offsetTracker.track(name, out.length);\n            }\n\n            out.push(0x1d, 0, 0, 0, 0);\n            break;\n\n          case \"array\":\n          case \"delta\":\n            out.push(...this.encodeNumber(value));\n\n            for (let k = 1, kk = values.length; k < kk; ++k) {\n              out.push(...this.encodeNumber(values[k]));\n            }\n\n            break;\n\n          default:\n            throw new _util.FormatError(`Unknown data type of ${type}`);\n        }\n      }\n\n      out.push(...dict.opcodes[key]);\n    }\n\n    return out;\n  }\n\n  compileStringIndex(strings) {\n    const stringIndex = new CFFIndex();\n\n    for (let i = 0, ii = strings.length; i < ii; ++i) {\n      stringIndex.add((0, _util.stringToBytes)(strings[i]));\n    }\n\n    return this.compileIndex(stringIndex);\n  }\n\n  compileGlobalSubrIndex() {\n    const globalSubrIndex = this.cff.globalSubrIndex;\n    this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n  }\n\n  compileCharStrings(charStrings) {\n    const charStringsIndex = new CFFIndex();\n\n    for (let i = 0; i < charStrings.count; i++) {\n      const glyph = charStrings.get(i);\n\n      if (glyph.length === 0) {\n        charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n        continue;\n      }\n\n      charStringsIndex.add(glyph);\n    }\n\n    return this.compileIndex(charStringsIndex);\n  }\n\n  compileCharset(charset, numGlyphs, strings, isCIDFont) {\n    let out;\n    const numGlyphsLessNotDef = numGlyphs - 1;\n\n    if (isCIDFont) {\n      out = new Uint8Array([2, 0, 0, numGlyphsLessNotDef >> 8 & 0xff, numGlyphsLessNotDef & 0xff]);\n    } else {\n      const length = 1 + numGlyphsLessNotDef * 2;\n      out = new Uint8Array(length);\n      out[0] = 0;\n      let charsetIndex = 0;\n      const numCharsets = charset.charset.length;\n      let warned = false;\n\n      for (let i = 1; i < out.length; i += 2) {\n        let sid = 0;\n\n        if (charsetIndex < numCharsets) {\n          const name = charset.charset[charsetIndex++];\n          sid = strings.getSID(name);\n\n          if (sid === -1) {\n            sid = 0;\n\n            if (!warned) {\n              warned = true;\n              (0, _util.warn)(`Couldn't find ${name} in CFF strings`);\n            }\n          }\n        }\n\n        out[i] = sid >> 8 & 0xff;\n        out[i + 1] = sid & 0xff;\n      }\n    }\n\n    return this.compileTypedArray(out);\n  }\n\n  compileEncoding(encoding) {\n    return this.compileTypedArray(encoding.raw);\n  }\n\n  compileFDSelect(fdSelect) {\n    const format = fdSelect.format;\n    let out, i;\n\n    switch (format) {\n      case 0:\n        out = new Uint8Array(1 + fdSelect.fdSelect.length);\n        out[0] = format;\n\n        for (i = 0; i < fdSelect.fdSelect.length; i++) {\n          out[i + 1] = fdSelect.fdSelect[i];\n        }\n\n        break;\n\n      case 3:\n        const start = 0;\n        let lastFD = fdSelect.fdSelect[0];\n        const ranges = [format, 0, 0, start >> 8 & 0xff, start & 0xff, lastFD];\n\n        for (i = 1; i < fdSelect.fdSelect.length; i++) {\n          const currentFD = fdSelect.fdSelect[i];\n\n          if (currentFD !== lastFD) {\n            ranges.push(i >> 8 & 0xff, i & 0xff, currentFD);\n            lastFD = currentFD;\n          }\n        }\n\n        const numRanges = (ranges.length - 3) / 3;\n        ranges[1] = numRanges >> 8 & 0xff;\n        ranges[2] = numRanges & 0xff;\n        ranges.push(i >> 8 & 0xff, i & 0xff);\n        out = new Uint8Array(ranges);\n        break;\n    }\n\n    return this.compileTypedArray(out);\n  }\n\n  compileTypedArray(data) {\n    const out = [];\n\n    for (let i = 0, ii = data.length; i < ii; ++i) {\n      out[i] = data[i];\n    }\n\n    return out;\n  }\n\n  compileIndex(index, trackers = []) {\n    const objects = index.objects;\n    const count = objects.length;\n\n    if (count === 0) {\n      return [0, 0];\n    }\n\n    const data = [count >> 8 & 0xff, count & 0xff];\n    let lastOffset = 1,\n        i;\n\n    for (i = 0; i < count; ++i) {\n      lastOffset += objects[i].length;\n    }\n\n    let offsetSize;\n\n    if (lastOffset < 0x100) {\n      offsetSize = 1;\n    } else if (lastOffset < 0x10000) {\n      offsetSize = 2;\n    } else if (lastOffset < 0x1000000) {\n      offsetSize = 3;\n    } else {\n      offsetSize = 4;\n    }\n\n    data.push(offsetSize);\n    let relativeOffset = 1;\n\n    for (i = 0; i < count + 1; i++) {\n      if (offsetSize === 1) {\n        data.push(relativeOffset & 0xff);\n      } else if (offsetSize === 2) {\n        data.push(relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n      } else if (offsetSize === 3) {\n        data.push(relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n      } else {\n        data.push(relativeOffset >>> 24 & 0xff, relativeOffset >> 16 & 0xff, relativeOffset >> 8 & 0xff, relativeOffset & 0xff);\n      }\n\n      if (objects[i]) {\n        relativeOffset += objects[i].length;\n      }\n    }\n\n    for (i = 0; i < count; i++) {\n      if (trackers[i]) {\n        trackers[i].offset(data.length);\n      }\n\n      for (let j = 0, jj = objects[i].length; j < jj; j++) {\n        data.push(objects[i][j]);\n      }\n    }\n\n    return data;\n  }\n\n}\n\nexports.CFFCompiler = CFFCompiler;\n\n/***/ }),\n/* 36 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ISOAdobeCharset = exports.ExpertSubsetCharset = exports.ExpertCharset = void 0;\nconst 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\"];\nexports.ISOAdobeCharset = ISOAdobeCharset;\nconst 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\"];\nexports.ExpertCharset = ExpertCharset;\nconst 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\"];\nexports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n/***/ }),\n/* 37 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ZapfDingbatsEncoding = exports.WinAnsiEncoding = exports.SymbolSetEncoding = exports.StandardEncoding = exports.MacRomanEncoding = exports.ExpertEncoding = void 0;\nexports.getEncoding = getEncoding;\nconst 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\"];\nexports.ExpertEncoding = ExpertEncoding;\nconst 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\", \"\", \"\", \"\", \"\"];\nconst 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\"];\nexports.MacRomanEncoding = MacRomanEncoding;\nconst 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\", \"\", \"\", \"\", \"\"];\nexports.StandardEncoding = StandardEncoding;\nconst 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\"];\nexports.WinAnsiEncoding = WinAnsiEncoding;\nconst 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\", \"\"];\nexports.SymbolSetEncoding = SymbolSetEncoding;\nconst 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\", \"\"];\nexports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\n\nfunction getEncoding(encodingName) {\n  switch (encodingName) {\n    case \"WinAnsiEncoding\":\n      return WinAnsiEncoding;\n\n    case \"StandardEncoding\":\n      return StandardEncoding;\n\n    case \"MacRomanEncoding\":\n      return MacRomanEncoding;\n\n    case \"SymbolSetEncoding\":\n      return SymbolSetEncoding;\n\n    case \"ZapfDingbatsEncoding\":\n      return ZapfDingbatsEncoding;\n\n    case \"ExpertEncoding\":\n      return ExpertEncoding;\n\n    case \"MacExpertEncoding\":\n      return MacExpertEncoding;\n\n    default:\n      return null;\n  }\n}\n\n/***/ }),\n/* 38 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.SEAC_ANALYSIS_ENABLED = exports.MacStandardGlyphOrdering = exports.FontFlags = void 0;\nexports.getFontType = getFontType;\nexports.normalizeFontName = normalizeFontName;\nexports.recoverGlyphName = recoverGlyphName;\nexports.type1FontGlyphMapping = type1FontGlyphMapping;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _encodings = __w_pdfjs_require__(37);\n\nvar _glyphlist = __w_pdfjs_require__(39);\n\nvar _unicode = __w_pdfjs_require__(40);\n\nconst SEAC_ANALYSIS_ENABLED = true;\nexports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\nconst FontFlags = {\n  FixedPitch: 1,\n  Serif: 2,\n  Symbolic: 4,\n  Script: 8,\n  Nonsymbolic: 32,\n  Italic: 64,\n  AllCap: 65536,\n  SmallCap: 131072,\n  ForceBold: 262144\n};\nexports.FontFlags = FontFlags;\nconst 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\"];\nexports.MacStandardGlyphOrdering = MacStandardGlyphOrdering;\n\nfunction getFontType(type, subtype, isStandardFont = false) {\n  switch (type) {\n    case \"Type1\":\n      if (isStandardFont) {\n        return _util.FontType.TYPE1STANDARD;\n      }\n\n      return subtype === \"Type1C\" ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n\n    case \"CIDFontType0\":\n      return subtype === \"CIDFontType0C\" ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n\n    case \"OpenType\":\n      return _util.FontType.OPENTYPE;\n\n    case \"TrueType\":\n      return _util.FontType.TRUETYPE;\n\n    case \"CIDFontType2\":\n      return _util.FontType.CIDFONTTYPE2;\n\n    case \"MMType1\":\n      return _util.FontType.MMTYPE1;\n\n    case \"Type0\":\n      return _util.FontType.TYPE0;\n\n    default:\n      return _util.FontType.UNKNOWN;\n  }\n}\n\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n  if (glyphsUnicodeMap[name] !== undefined) {\n    return name;\n  }\n\n  const unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n\n  if (unicode !== -1) {\n    for (const key in glyphsUnicodeMap) {\n      if (glyphsUnicodeMap[key] === unicode) {\n        return key;\n      }\n    }\n  }\n\n  (0, _util.info)(\"Unable to recover a standard glyph name for: \" + name);\n  return name;\n}\n\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n  const charCodeToGlyphId = Object.create(null);\n  let glyphId, charCode, baseEncoding;\n  const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n  if (properties.isInternalFont) {\n    baseEncoding = builtInEncoding;\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  } else if (properties.baseEncodingName) {\n    baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  } else if (isSymbolicFont) {\n    for (charCode in builtInEncoding) {\n      charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n    }\n  } else {\n    baseEncoding = _encodings.StandardEncoding;\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  }\n\n  const differences = properties.differences;\n  let glyphsUnicodeMap;\n\n  if (differences) {\n    for (charCode in differences) {\n      const glyphName = differences[charCode];\n      glyphId = glyphNames.indexOf(glyphName);\n\n      if (glyphId === -1) {\n        if (!glyphsUnicodeMap) {\n          glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n        }\n\n        const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n\n        if (standardGlyphName !== glyphName) {\n          glyphId = glyphNames.indexOf(standardGlyphName);\n        }\n      }\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  }\n\n  return charCodeToGlyphId;\n}\n\nfunction normalizeFontName(name) {\n  return name.replace(/[,_]/g, \"-\").replace(/\\s/g, \"\");\n}\n\n/***/ }),\n/* 39 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__.r(__webpack_exports__);\n/* harmony export */ __w_pdfjs_require__.d(__webpack_exports__, {\n/* harmony export */   \"getDingbatsGlyphsUnicode\": () => (/* binding */ getDingbatsGlyphsUnicode),\n/* harmony export */   \"getGlyphsUnicode\": () => (/* binding */ getGlyphsUnicode)\n/* harmony export */ });\n/* harmony import */ var _core_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __w_pdfjs_require__(6);\n\nconst getGlyphsUnicode = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function () {\n return [\n  \"A\",\n  0x0041,\n  \"AE\",\n  0x00c6,\n  \"AEacute\",\n  0x01fc,\n  \"AEmacron\",\n  0x01e2,\n  \"AEsmall\",\n  0xf7e6,\n  \"Aacute\",\n  0x00c1,\n  \"Aacutesmall\",\n  0xf7e1,\n  \"Abreve\",\n  0x0102,\n  \"Abreveacute\",\n  0x1eae,\n  \"Abrevecyrillic\",\n  0x04d0,\n  \"Abrevedotbelow\",\n  0x1eb6,\n  \"Abrevegrave\",\n  0x1eb0,\n  \"Abrevehookabove\",\n  0x1eb2,\n  \"Abrevetilde\",\n  0x1eb4,\n  \"Acaron\",\n  0x01cd,\n  \"Acircle\",\n  0x24b6,\n  \"Acircumflex\",\n  0x00c2,\n  \"Acircumflexacute\",\n  0x1ea4,\n  \"Acircumflexdotbelow\",\n  0x1eac,\n  \"Acircumflexgrave\",\n  0x1ea6,\n  \"Acircumflexhookabove\",\n  0x1ea8,\n  \"Acircumflexsmall\",\n  0xf7e2,\n  \"Acircumflextilde\",\n  0x1eaa,\n  \"Acute\",\n  0xf6c9,\n  \"Acutesmall\",\n  0xf7b4,\n  \"Acyrillic\",\n  0x0410,\n  \"Adblgrave\",\n  0x0200,\n  \"Adieresis\",\n  0x00c4,\n  \"Adieresiscyrillic\",\n  0x04d2,\n  \"Adieresismacron\",\n  0x01de,\n  \"Adieresissmall\",\n  0xf7e4,\n  \"Adotbelow\",\n  0x1ea0,\n  \"Adotmacron\",\n  0x01e0,\n  \"Agrave\",\n  0x00c0,\n  \"Agravesmall\",\n  0xf7e0,\n  \"Ahookabove\",\n  0x1ea2,\n  \"Aiecyrillic\",\n  0x04d4,\n  \"Ainvertedbreve\",\n  0x0202,\n  \"Alpha\",\n  0x0391,\n  \"Alphatonos\",\n  0x0386,\n  \"Amacron\",\n  0x0100,\n  \"Amonospace\",\n  0xff21,\n  \"Aogonek\",\n  0x0104,\n  \"Aring\",\n  0x00c5,\n  \"Aringacute\",\n  0x01fa,\n  \"Aringbelow\",\n  0x1e00,\n  \"Aringsmall\",\n  0xf7e5,\n  \"Asmall\",\n  0xf761,\n  \"Atilde\",\n  0x00c3,\n  \"Atildesmall\",\n  0xf7e3,\n  \"Aybarmenian\",\n  0x0531,\n  \"B\",\n  0x0042,\n  \"Bcircle\",\n  0x24b7,\n  \"Bdotaccent\",\n  0x1e02,\n  \"Bdotbelow\",\n  0x1e04,\n  \"Becyrillic\",\n  0x0411,\n  \"Benarmenian\",\n  0x0532,\n  \"Beta\",\n  0x0392,\n  \"Bhook\",\n  0x0181,\n  \"Blinebelow\",\n  0x1e06,\n  \"Bmonospace\",\n  0xff22,\n  \"Brevesmall\",\n  0xf6f4,\n  \"Bsmall\",\n  0xf762,\n  \"Btopbar\",\n  0x0182,\n  \"C\",\n  0x0043,\n  \"Caarmenian\",\n  0x053e,\n  \"Cacute\",\n  0x0106,\n  \"Caron\",\n  0xf6ca,\n  \"Caronsmall\",\n  0xf6f5,\n  \"Ccaron\",\n  0x010c,\n  \"Ccedilla\",\n  0x00c7,\n  \"Ccedillaacute\",\n  0x1e08,\n  \"Ccedillasmall\",\n  0xf7e7,\n  \"Ccircle\",\n  0x24b8,\n  \"Ccircumflex\",\n  0x0108,\n  \"Cdot\",\n  0x010a,\n  \"Cdotaccent\",\n  0x010a,\n  \"Cedillasmall\",\n  0xf7b8,\n  \"Chaarmenian\",\n  0x0549,\n  \"Cheabkhasiancyrillic\",\n  0x04bc,\n  \"Checyrillic\",\n  0x0427,\n  \"Chedescenderabkhasiancyrillic\",\n  0x04be,\n  \"Chedescendercyrillic\",\n  0x04b6,\n  \"Chedieresiscyrillic\",\n  0x04f4,\n  \"Cheharmenian\",\n  0x0543,\n  \"Chekhakassiancyrillic\",\n  0x04cb,\n  \"Cheverticalstrokecyrillic\",\n  0x04b8,\n  \"Chi\",\n  0x03a7,\n  \"Chook\",\n  0x0187,\n  \"Circumflexsmall\",\n  0xf6f6,\n  \"Cmonospace\",\n  0xff23,\n  \"Coarmenian\",\n  0x0551,\n  \"Csmall\",\n  0xf763,\n  \"D\",\n  0x0044,\n  \"DZ\",\n  0x01f1,\n  \"DZcaron\",\n  0x01c4,\n  \"Daarmenian\",\n  0x0534,\n  \"Dafrican\",\n  0x0189,\n  \"Dcaron\",\n  0x010e,\n  \"Dcedilla\",\n  0x1e10,\n  \"Dcircle\",\n  0x24b9,\n  \"Dcircumflexbelow\",\n  0x1e12,\n  \"Dcroat\",\n  0x0110,\n  \"Ddotaccent\",\n  0x1e0a,\n  \"Ddotbelow\",\n  0x1e0c,\n  \"Decyrillic\",\n  0x0414,\n  \"Deicoptic\",\n  0x03ee,\n  \"Delta\",\n  0x2206,\n  \"Deltagreek\",\n  0x0394,\n  \"Dhook\",\n  0x018a,\n  \"Dieresis\",\n  0xf6cb,\n  \"DieresisAcute\",\n  0xf6cc,\n  \"DieresisGrave\",\n  0xf6cd,\n  \"Dieresissmall\",\n  0xf7a8,\n  \"Digammagreek\",\n  0x03dc,\n  \"Djecyrillic\",\n  0x0402,\n  \"Dlinebelow\",\n  0x1e0e,\n  \"Dmonospace\",\n  0xff24,\n  \"Dotaccentsmall\",\n  0xf6f7,\n  \"Dslash\",\n  0x0110,\n  \"Dsmall\",\n  0xf764,\n  \"Dtopbar\",\n  0x018b,\n  \"Dz\",\n  0x01f2,\n  \"Dzcaron\",\n  0x01c5,\n  \"Dzeabkhasiancyrillic\",\n  0x04e0,\n  \"Dzecyrillic\",\n  0x0405,\n  \"Dzhecyrillic\",\n  0x040f,\n  \"E\",\n  0x0045,\n  \"Eacute\",\n  0x00c9,\n  \"Eacutesmall\",\n  0xf7e9,\n  \"Ebreve\",\n  0x0114,\n  \"Ecaron\",\n  0x011a,\n  \"Ecedillabreve\",\n  0x1e1c,\n  \"Echarmenian\",\n  0x0535,\n  \"Ecircle\",\n  0x24ba,\n  \"Ecircumflex\",\n  0x00ca,\n  \"Ecircumflexacute\",\n  0x1ebe,\n  \"Ecircumflexbelow\",\n  0x1e18,\n  \"Ecircumflexdotbelow\",\n  0x1ec6,\n  \"Ecircumflexgrave\",\n  0x1ec0,\n  \"Ecircumflexhookabove\",\n  0x1ec2,\n  \"Ecircumflexsmall\",\n  0xf7ea,\n  \"Ecircumflextilde\",\n  0x1ec4,\n  \"Ecyrillic\",\n  0x0404,\n  \"Edblgrave\",\n  0x0204,\n  \"Edieresis\",\n  0x00cb,\n  \"Edieresissmall\",\n  0xf7eb,\n  \"Edot\",\n  0x0116,\n  \"Edotaccent\",\n  0x0116,\n  \"Edotbelow\",\n  0x1eb8,\n  \"Efcyrillic\",\n  0x0424,\n  \"Egrave\",\n  0x00c8,\n  \"Egravesmall\",\n  0xf7e8,\n  \"Eharmenian\",\n  0x0537,\n  \"Ehookabove\",\n  0x1eba,\n  \"Eightroman\",\n  0x2167,\n  \"Einvertedbreve\",\n  0x0206,\n  \"Eiotifiedcyrillic\",\n  0x0464,\n  \"Elcyrillic\",\n  0x041b,\n  \"Elevenroman\",\n  0x216a,\n  \"Emacron\",\n  0x0112,\n  \"Emacronacute\",\n  0x1e16,\n  \"Emacrongrave\",\n  0x1e14,\n  \"Emcyrillic\",\n  0x041c,\n  \"Emonospace\",\n  0xff25,\n  \"Encyrillic\",\n  0x041d,\n  \"Endescendercyrillic\",\n  0x04a2,\n  \"Eng\",\n  0x014a,\n  \"Enghecyrillic\",\n  0x04a4,\n  \"Enhookcyrillic\",\n  0x04c7,\n  \"Eogonek\",\n  0x0118,\n  \"Eopen\",\n  0x0190,\n  \"Epsilon\",\n  0x0395,\n  \"Epsilontonos\",\n  0x0388,\n  \"Ercyrillic\",\n  0x0420,\n  \"Ereversed\",\n  0x018e,\n  \"Ereversedcyrillic\",\n  0x042d,\n  \"Escyrillic\",\n  0x0421,\n  \"Esdescendercyrillic\",\n  0x04aa,\n  \"Esh\",\n  0x01a9,\n  \"Esmall\",\n  0xf765,\n  \"Eta\",\n  0x0397,\n  \"Etarmenian\",\n  0x0538,\n  \"Etatonos\",\n  0x0389,\n  \"Eth\",\n  0x00d0,\n  \"Ethsmall\",\n  0xf7f0,\n  \"Etilde\",\n  0x1ebc,\n  \"Etildebelow\",\n  0x1e1a,\n  \"Euro\",\n  0x20ac,\n  \"Ezh\",\n  0x01b7,\n  \"Ezhcaron\",\n  0x01ee,\n  \"Ezhreversed\",\n  0x01b8,\n  \"F\",\n  0x0046,\n  \"Fcircle\",\n  0x24bb,\n  \"Fdotaccent\",\n  0x1e1e,\n  \"Feharmenian\",\n  0x0556,\n  \"Feicoptic\",\n  0x03e4,\n  \"Fhook\",\n  0x0191,\n  \"Fitacyrillic\",\n  0x0472,\n  \"Fiveroman\",\n  0x2164,\n  \"Fmonospace\",\n  0xff26,\n  \"Fourroman\",\n  0x2163,\n  \"Fsmall\",\n  0xf766,\n  \"G\",\n  0x0047,\n  \"GBsquare\",\n  0x3387,\n  \"Gacute\",\n  0x01f4,\n  \"Gamma\",\n  0x0393,\n  \"Gammaafrican\",\n  0x0194,\n  \"Gangiacoptic\",\n  0x03ea,\n  \"Gbreve\",\n  0x011e,\n  \"Gcaron\",\n  0x01e6,\n  \"Gcedilla\",\n  0x0122,\n  \"Gcircle\",\n  0x24bc,\n  \"Gcircumflex\",\n  0x011c,\n  \"Gcommaaccent\",\n  0x0122,\n  \"Gdot\",\n  0x0120,\n  \"Gdotaccent\",\n  0x0120,\n  \"Gecyrillic\",\n  0x0413,\n  \"Ghadarmenian\",\n  0x0542,\n  \"Ghemiddlehookcyrillic\",\n  0x0494,\n  \"Ghestrokecyrillic\",\n  0x0492,\n  \"Gheupturncyrillic\",\n  0x0490,\n  \"Ghook\",\n  0x0193,\n  \"Gimarmenian\",\n  0x0533,\n  \"Gjecyrillic\",\n  0x0403,\n  \"Gmacron\",\n  0x1e20,\n  \"Gmonospace\",\n  0xff27,\n  \"Grave\",\n  0xf6ce,\n  \"Gravesmall\",\n  0xf760,\n  \"Gsmall\",\n  0xf767,\n  \"Gsmallhook\",\n  0x029b,\n  \"Gstroke\",\n  0x01e4,\n  \"H\",\n  0x0048,\n  \"H18533\",\n  0x25cf,\n  \"H18543\",\n  0x25aa,\n  \"H18551\",\n  0x25ab,\n  \"H22073\",\n  0x25a1,\n  \"HPsquare\",\n  0x33cb,\n  \"Haabkhasiancyrillic\",\n  0x04a8,\n  \"Hadescendercyrillic\",\n  0x04b2,\n  \"Hardsigncyrillic\",\n  0x042a,\n  \"Hbar\",\n  0x0126,\n  \"Hbrevebelow\",\n  0x1e2a,\n  \"Hcedilla\",\n  0x1e28,\n  \"Hcircle\",\n  0x24bd,\n  \"Hcircumflex\",\n  0x0124,\n  \"Hdieresis\",\n  0x1e26,\n  \"Hdotaccent\",\n  0x1e22,\n  \"Hdotbelow\",\n  0x1e24,\n  \"Hmonospace\",\n  0xff28,\n  \"Hoarmenian\",\n  0x0540,\n  \"Horicoptic\",\n  0x03e8,\n  \"Hsmall\",\n  0xf768,\n  \"Hungarumlaut\",\n  0xf6cf,\n  \"Hungarumlautsmall\",\n  0xf6f8,\n  \"Hzsquare\",\n  0x3390,\n  \"I\",\n  0x0049,\n  \"IAcyrillic\",\n  0x042f,\n  \"IJ\",\n  0x0132,\n  \"IUcyrillic\",\n  0x042e,\n  \"Iacute\",\n  0x00cd,\n  \"Iacutesmall\",\n  0xf7ed,\n  \"Ibreve\",\n  0x012c,\n  \"Icaron\",\n  0x01cf,\n  \"Icircle\",\n  0x24be,\n  \"Icircumflex\",\n  0x00ce,\n  \"Icircumflexsmall\",\n  0xf7ee,\n  \"Icyrillic\",\n  0x0406,\n  \"Idblgrave\",\n  0x0208,\n  \"Idieresis\",\n  0x00cf,\n  \"Idieresisacute\",\n  0x1e2e,\n  \"Idieresiscyrillic\",\n  0x04e4,\n  \"Idieresissmall\",\n  0xf7ef,\n  \"Idot\",\n  0x0130,\n  \"Idotaccent\",\n  0x0130,\n  \"Idotbelow\",\n  0x1eca,\n  \"Iebrevecyrillic\",\n  0x04d6,\n  \"Iecyrillic\",\n  0x0415,\n  \"Ifraktur\",\n  0x2111,\n  \"Igrave\",\n  0x00cc,\n  \"Igravesmall\",\n  0xf7ec,\n  \"Ihookabove\",\n  0x1ec8,\n  \"Iicyrillic\",\n  0x0418,\n  \"Iinvertedbreve\",\n  0x020a,\n  \"Iishortcyrillic\",\n  0x0419,\n  \"Imacron\",\n  0x012a,\n  \"Imacroncyrillic\",\n  0x04e2,\n  \"Imonospace\",\n  0xff29,\n  \"Iniarmenian\",\n  0x053b,\n  \"Iocyrillic\",\n  0x0401,\n  \"Iogonek\",\n  0x012e,\n  \"Iota\",\n  0x0399,\n  \"Iotaafrican\",\n  0x0196,\n  \"Iotadieresis\",\n  0x03aa,\n  \"Iotatonos\",\n  0x038a,\n  \"Ismall\",\n  0xf769,\n  \"Istroke\",\n  0x0197,\n  \"Itilde\",\n  0x0128,\n  \"Itildebelow\",\n  0x1e2c,\n  \"Izhitsacyrillic\",\n  0x0474,\n  \"Izhitsadblgravecyrillic\",\n  0x0476,\n  \"J\",\n  0x004a,\n  \"Jaarmenian\",\n  0x0541,\n  \"Jcircle\",\n  0x24bf,\n  \"Jcircumflex\",\n  0x0134,\n  \"Jecyrillic\",\n  0x0408,\n  \"Jheharmenian\",\n  0x054b,\n  \"Jmonospace\",\n  0xff2a,\n  \"Jsmall\",\n  0xf76a,\n  \"K\",\n  0x004b,\n  \"KBsquare\",\n  0x3385,\n  \"KKsquare\",\n  0x33cd,\n  \"Kabashkircyrillic\",\n  0x04a0,\n  \"Kacute\",\n  0x1e30,\n  \"Kacyrillic\",\n  0x041a,\n  \"Kadescendercyrillic\",\n  0x049a,\n  \"Kahookcyrillic\",\n  0x04c3,\n  \"Kappa\",\n  0x039a,\n  \"Kastrokecyrillic\",\n  0x049e,\n  \"Kaverticalstrokecyrillic\",\n  0x049c,\n  \"Kcaron\",\n  0x01e8,\n  \"Kcedilla\",\n  0x0136,\n  \"Kcircle\",\n  0x24c0,\n  \"Kcommaaccent\",\n  0x0136,\n  \"Kdotbelow\",\n  0x1e32,\n  \"Keharmenian\",\n  0x0554,\n  \"Kenarmenian\",\n  0x053f,\n  \"Khacyrillic\",\n  0x0425,\n  \"Kheicoptic\",\n  0x03e6,\n  \"Khook\",\n  0x0198,\n  \"Kjecyrillic\",\n  0x040c,\n  \"Klinebelow\",\n  0x1e34,\n  \"Kmonospace\",\n  0xff2b,\n  \"Koppacyrillic\",\n  0x0480,\n  \"Koppagreek\",\n  0x03de,\n  \"Ksicyrillic\",\n  0x046e,\n  \"Ksmall\",\n  0xf76b,\n  \"L\",\n  0x004c,\n  \"LJ\",\n  0x01c7,\n  \"LL\",\n  0xf6bf,\n  \"Lacute\",\n  0x0139,\n  \"Lambda\",\n  0x039b,\n  \"Lcaron\",\n  0x013d,\n  \"Lcedilla\",\n  0x013b,\n  \"Lcircle\",\n  0x24c1,\n  \"Lcircumflexbelow\",\n  0x1e3c,\n  \"Lcommaaccent\",\n  0x013b,\n  \"Ldot\",\n  0x013f,\n  \"Ldotaccent\",\n  0x013f,\n  \"Ldotbelow\",\n  0x1e36,\n  \"Ldotbelowmacron\",\n  0x1e38,\n  \"Liwnarmenian\",\n  0x053c,\n  \"Lj\",\n  0x01c8,\n  \"Ljecyrillic\",\n  0x0409,\n  \"Llinebelow\",\n  0x1e3a,\n  \"Lmonospace\",\n  0xff2c,\n  \"Lslash\",\n  0x0141,\n  \"Lslashsmall\",\n  0xf6f9,\n  \"Lsmall\",\n  0xf76c,\n  \"M\",\n  0x004d,\n  \"MBsquare\",\n  0x3386,\n  \"Macron\",\n  0xf6d0,\n  \"Macronsmall\",\n  0xf7af,\n  \"Macute\",\n  0x1e3e,\n  \"Mcircle\",\n  0x24c2,\n  \"Mdotaccent\",\n  0x1e40,\n  \"Mdotbelow\",\n  0x1e42,\n  \"Menarmenian\",\n  0x0544,\n  \"Mmonospace\",\n  0xff2d,\n  \"Msmall\",\n  0xf76d,\n  \"Mturned\",\n  0x019c,\n  \"Mu\",\n  0x039c,\n  \"N\",\n  0x004e,\n  \"NJ\",\n  0x01ca,\n  \"Nacute\",\n  0x0143,\n  \"Ncaron\",\n  0x0147,\n  \"Ncedilla\",\n  0x0145,\n  \"Ncircle\",\n  0x24c3,\n  \"Ncircumflexbelow\",\n  0x1e4a,\n  \"Ncommaaccent\",\n  0x0145,\n  \"Ndotaccent\",\n  0x1e44,\n  \"Ndotbelow\",\n  0x1e46,\n  \"Nhookleft\",\n  0x019d,\n  \"Nineroman\",\n  0x2168,\n  \"Nj\",\n  0x01cb,\n  \"Njecyrillic\",\n  0x040a,\n  \"Nlinebelow\",\n  0x1e48,\n  \"Nmonospace\",\n  0xff2e,\n  \"Nowarmenian\",\n  0x0546,\n  \"Nsmall\",\n  0xf76e,\n  \"Ntilde\",\n  0x00d1,\n  \"Ntildesmall\",\n  0xf7f1,\n  \"Nu\",\n  0x039d,\n  \"O\",\n  0x004f,\n  \"OE\",\n  0x0152,\n  \"OEsmall\",\n  0xf6fa,\n  \"Oacute\",\n  0x00d3,\n  \"Oacutesmall\",\n  0xf7f3,\n  \"Obarredcyrillic\",\n  0x04e8,\n  \"Obarreddieresiscyrillic\",\n  0x04ea,\n  \"Obreve\",\n  0x014e,\n  \"Ocaron\",\n  0x01d1,\n  \"Ocenteredtilde\",\n  0x019f,\n  \"Ocircle\",\n  0x24c4,\n  \"Ocircumflex\",\n  0x00d4,\n  \"Ocircumflexacute\",\n  0x1ed0,\n  \"Ocircumflexdotbelow\",\n  0x1ed8,\n  \"Ocircumflexgrave\",\n  0x1ed2,\n  \"Ocircumflexhookabove\",\n  0x1ed4,\n  \"Ocircumflexsmall\",\n  0xf7f4,\n  \"Ocircumflextilde\",\n  0x1ed6,\n  \"Ocyrillic\",\n  0x041e,\n  \"Odblacute\",\n  0x0150,\n  \"Odblgrave\",\n  0x020c,\n  \"Odieresis\",\n  0x00d6,\n  \"Odieresiscyrillic\",\n  0x04e6,\n  \"Odieresissmall\",\n  0xf7f6,\n  \"Odotbelow\",\n  0x1ecc,\n  \"Ogoneksmall\",\n  0xf6fb,\n  \"Ograve\",\n  0x00d2,\n  \"Ogravesmall\",\n  0xf7f2,\n  \"Oharmenian\",\n  0x0555,\n  \"Ohm\",\n  0x2126,\n  \"Ohookabove\",\n  0x1ece,\n  \"Ohorn\",\n  0x01a0,\n  \"Ohornacute\",\n  0x1eda,\n  \"Ohorndotbelow\",\n  0x1ee2,\n  \"Ohorngrave\",\n  0x1edc,\n  \"Ohornhookabove\",\n  0x1ede,\n  \"Ohorntilde\",\n  0x1ee0,\n  \"Ohungarumlaut\",\n  0x0150,\n  \"Oi\",\n  0x01a2,\n  \"Oinvertedbreve\",\n  0x020e,\n  \"Omacron\",\n  0x014c,\n  \"Omacronacute\",\n  0x1e52,\n  \"Omacrongrave\",\n  0x1e50,\n  \"Omega\",\n  0x2126,\n  \"Omegacyrillic\",\n  0x0460,\n  \"Omegagreek\",\n  0x03a9,\n  \"Omegaroundcyrillic\",\n  0x047a,\n  \"Omegatitlocyrillic\",\n  0x047c,\n  \"Omegatonos\",\n  0x038f,\n  \"Omicron\",\n  0x039f,\n  \"Omicrontonos\",\n  0x038c,\n  \"Omonospace\",\n  0xff2f,\n  \"Oneroman\",\n  0x2160,\n  \"Oogonek\",\n  0x01ea,\n  \"Oogonekmacron\",\n  0x01ec,\n  \"Oopen\",\n  0x0186,\n  \"Oslash\",\n  0x00d8,\n  \"Oslashacute\",\n  0x01fe,\n  \"Oslashsmall\",\n  0xf7f8,\n  \"Osmall\",\n  0xf76f,\n  \"Ostrokeacute\",\n  0x01fe,\n  \"Otcyrillic\",\n  0x047e,\n  \"Otilde\",\n  0x00d5,\n  \"Otildeacute\",\n  0x1e4c,\n  \"Otildedieresis\",\n  0x1e4e,\n  \"Otildesmall\",\n  0xf7f5,\n  \"P\",\n  0x0050,\n  \"Pacute\",\n  0x1e54,\n  \"Pcircle\",\n  0x24c5,\n  \"Pdotaccent\",\n  0x1e56,\n  \"Pecyrillic\",\n  0x041f,\n  \"Peharmenian\",\n  0x054a,\n  \"Pemiddlehookcyrillic\",\n  0x04a6,\n  \"Phi\",\n  0x03a6,\n  \"Phook\",\n  0x01a4,\n  \"Pi\",\n  0x03a0,\n  \"Piwrarmenian\",\n  0x0553,\n  \"Pmonospace\",\n  0xff30,\n  \"Psi\",\n  0x03a8,\n  \"Psicyrillic\",\n  0x0470,\n  \"Psmall\",\n  0xf770,\n  \"Q\",\n  0x0051,\n  \"Qcircle\",\n  0x24c6,\n  \"Qmonospace\",\n  0xff31,\n  \"Qsmall\",\n  0xf771,\n  \"R\",\n  0x0052,\n  \"Raarmenian\",\n  0x054c,\n  \"Racute\",\n  0x0154,\n  \"Rcaron\",\n  0x0158,\n  \"Rcedilla\",\n  0x0156,\n  \"Rcircle\",\n  0x24c7,\n  \"Rcommaaccent\",\n  0x0156,\n  \"Rdblgrave\",\n  0x0210,\n  \"Rdotaccent\",\n  0x1e58,\n  \"Rdotbelow\",\n  0x1e5a,\n  \"Rdotbelowmacron\",\n  0x1e5c,\n  \"Reharmenian\",\n  0x0550,\n  \"Rfraktur\",\n  0x211c,\n  \"Rho\",\n  0x03a1,\n  \"Ringsmall\",\n  0xf6fc,\n  \"Rinvertedbreve\",\n  0x0212,\n  \"Rlinebelow\",\n  0x1e5e,\n  \"Rmonospace\",\n  0xff32,\n  \"Rsmall\",\n  0xf772,\n  \"Rsmallinverted\",\n  0x0281,\n  \"Rsmallinvertedsuperior\",\n  0x02b6,\n  \"S\",\n  0x0053,\n  \"SF010000\",\n  0x250c,\n  \"SF020000\",\n  0x2514,\n  \"SF030000\",\n  0x2510,\n  \"SF040000\",\n  0x2518,\n  \"SF050000\",\n  0x253c,\n  \"SF060000\",\n  0x252c,\n  \"SF070000\",\n  0x2534,\n  \"SF080000\",\n  0x251c,\n  \"SF090000\",\n  0x2524,\n  \"SF100000\",\n  0x2500,\n  \"SF110000\",\n  0x2502,\n  \"SF190000\",\n  0x2561,\n  \"SF200000\",\n  0x2562,\n  \"SF210000\",\n  0x2556,\n  \"SF220000\",\n  0x2555,\n  \"SF230000\",\n  0x2563,\n  \"SF240000\",\n  0x2551,\n  \"SF250000\",\n  0x2557,\n  \"SF260000\",\n  0x255d,\n  \"SF270000\",\n  0x255c,\n  \"SF280000\",\n  0x255b,\n  \"SF360000\",\n  0x255e,\n  \"SF370000\",\n  0x255f,\n  \"SF380000\",\n  0x255a,\n  \"SF390000\",\n  0x2554,\n  \"SF400000\",\n  0x2569,\n  \"SF410000\",\n  0x2566,\n  \"SF420000\",\n  0x2560,\n  \"SF430000\",\n  0x2550,\n  \"SF440000\",\n  0x256c,\n  \"SF450000\",\n  0x2567,\n  \"SF460000\",\n  0x2568,\n  \"SF470000\",\n  0x2564,\n  \"SF480000\",\n  0x2565,\n  \"SF490000\",\n  0x2559,\n  \"SF500000\",\n  0x2558,\n  \"SF510000\",\n  0x2552,\n  \"SF520000\",\n  0x2553,\n  \"SF530000\",\n  0x256b,\n  \"SF540000\",\n  0x256a,\n  \"Sacute\",\n  0x015a,\n  \"Sacutedotaccent\",\n  0x1e64,\n  \"Sampigreek\",\n  0x03e0,\n  \"Scaron\",\n  0x0160,\n  \"Scarondotaccent\",\n  0x1e66,\n  \"Scaronsmall\",\n  0xf6fd,\n  \"Scedilla\",\n  0x015e,\n  \"Schwa\",\n  0x018f,\n  \"Schwacyrillic\",\n  0x04d8,\n  \"Schwadieresiscyrillic\",\n  0x04da,\n  \"Scircle\",\n  0x24c8,\n  \"Scircumflex\",\n  0x015c,\n  \"Scommaaccent\",\n  0x0218,\n  \"Sdotaccent\",\n  0x1e60,\n  \"Sdotbelow\",\n  0x1e62,\n  \"Sdotbelowdotaccent\",\n  0x1e68,\n  \"Seharmenian\",\n  0x054d,\n  \"Sevenroman\",\n  0x2166,\n  \"Shaarmenian\",\n  0x0547,\n  \"Shacyrillic\",\n  0x0428,\n  \"Shchacyrillic\",\n  0x0429,\n  \"Sheicoptic\",\n  0x03e2,\n  \"Shhacyrillic\",\n  0x04ba,\n  \"Shimacoptic\",\n  0x03ec,\n  \"Sigma\",\n  0x03a3,\n  \"Sixroman\",\n  0x2165,\n  \"Smonospace\",\n  0xff33,\n  \"Softsigncyrillic\",\n  0x042c,\n  \"Ssmall\",\n  0xf773,\n  \"Stigmagreek\",\n  0x03da,\n  \"T\",\n  0x0054,\n  \"Tau\",\n  0x03a4,\n  \"Tbar\",\n  0x0166,\n  \"Tcaron\",\n  0x0164,\n  \"Tcedilla\",\n  0x0162,\n  \"Tcircle\",\n  0x24c9,\n  \"Tcircumflexbelow\",\n  0x1e70,\n  \"Tcommaaccent\",\n  0x0162,\n  \"Tdotaccent\",\n  0x1e6a,\n  \"Tdotbelow\",\n  0x1e6c,\n  \"Tecyrillic\",\n  0x0422,\n  \"Tedescendercyrillic\",\n  0x04ac,\n  \"Tenroman\",\n  0x2169,\n  \"Tetsecyrillic\",\n  0x04b4,\n  \"Theta\",\n  0x0398,\n  \"Thook\",\n  0x01ac,\n  \"Thorn\",\n  0x00de,\n  \"Thornsmall\",\n  0xf7fe,\n  \"Threeroman\",\n  0x2162,\n  \"Tildesmall\",\n  0xf6fe,\n  \"Tiwnarmenian\",\n  0x054f,\n  \"Tlinebelow\",\n  0x1e6e,\n  \"Tmonospace\",\n  0xff34,\n  \"Toarmenian\",\n  0x0539,\n  \"Tonefive\",\n  0x01bc,\n  \"Tonesix\",\n  0x0184,\n  \"Tonetwo\",\n  0x01a7,\n  \"Tretroflexhook\",\n  0x01ae,\n  \"Tsecyrillic\",\n  0x0426,\n  \"Tshecyrillic\",\n  0x040b,\n  \"Tsmall\",\n  0xf774,\n  \"Twelveroman\",\n  0x216b,\n  \"Tworoman\",\n  0x2161,\n  \"U\",\n  0x0055,\n  \"Uacute\",\n  0x00da,\n  \"Uacutesmall\",\n  0xf7fa,\n  \"Ubreve\",\n  0x016c,\n  \"Ucaron\",\n  0x01d3,\n  \"Ucircle\",\n  0x24ca,\n  \"Ucircumflex\",\n  0x00db,\n  \"Ucircumflexbelow\",\n  0x1e76,\n  \"Ucircumflexsmall\",\n  0xf7fb,\n  \"Ucyrillic\",\n  0x0423,\n  \"Udblacute\",\n  0x0170,\n  \"Udblgrave\",\n  0x0214,\n  \"Udieresis\",\n  0x00dc,\n  \"Udieresisacute\",\n  0x01d7,\n  \"Udieresisbelow\",\n  0x1e72,\n  \"Udieresiscaron\",\n  0x01d9,\n  \"Udieresiscyrillic\",\n  0x04f0,\n  \"Udieresisgrave\",\n  0x01db,\n  \"Udieresismacron\",\n  0x01d5,\n  \"Udieresissmall\",\n  0xf7fc,\n  \"Udotbelow\",\n  0x1ee4,\n  \"Ugrave\",\n  0x00d9,\n  \"Ugravesmall\",\n  0xf7f9,\n  \"Uhookabove\",\n  0x1ee6,\n  \"Uhorn\",\n  0x01af,\n  \"Uhornacute\",\n  0x1ee8,\n  \"Uhorndotbelow\",\n  0x1ef0,\n  \"Uhorngrave\",\n  0x1eea,\n  \"Uhornhookabove\",\n  0x1eec,\n  \"Uhorntilde\",\n  0x1eee,\n  \"Uhungarumlaut\",\n  0x0170,\n  \"Uhungarumlautcyrillic\",\n  0x04f2,\n  \"Uinvertedbreve\",\n  0x0216,\n  \"Ukcyrillic\",\n  0x0478,\n  \"Umacron\",\n  0x016a,\n  \"Umacroncyrillic\",\n  0x04ee,\n  \"Umacrondieresis\",\n  0x1e7a,\n  \"Umonospace\",\n  0xff35,\n  \"Uogonek\",\n  0x0172,\n  \"Upsilon\",\n  0x03a5,\n  \"Upsilon1\",\n  0x03d2,\n  \"Upsilonacutehooksymbolgreek\",\n  0x03d3,\n  \"Upsilonafrican\",\n  0x01b1,\n  \"Upsilondieresis\",\n  0x03ab,\n  \"Upsilondieresishooksymbolgreek\",\n  0x03d4,\n  \"Upsilonhooksymbol\",\n  0x03d2,\n  \"Upsilontonos\",\n  0x038e,\n  \"Uring\",\n  0x016e,\n  \"Ushortcyrillic\",\n  0x040e,\n  \"Usmall\",\n  0xf775,\n  \"Ustraightcyrillic\",\n  0x04ae,\n  \"Ustraightstrokecyrillic\",\n  0x04b0,\n  \"Utilde\",\n  0x0168,\n  \"Utildeacute\",\n  0x1e78,\n  \"Utildebelow\",\n  0x1e74,\n  \"V\",\n  0x0056,\n  \"Vcircle\",\n  0x24cb,\n  \"Vdotbelow\",\n  0x1e7e,\n  \"Vecyrillic\",\n  0x0412,\n  \"Vewarmenian\",\n  0x054e,\n  \"Vhook\",\n  0x01b2,\n  \"Vmonospace\",\n  0xff36,\n  \"Voarmenian\",\n  0x0548,\n  \"Vsmall\",\n  0xf776,\n  \"Vtilde\",\n  0x1e7c,\n  \"W\",\n  0x0057,\n  \"Wacute\",\n  0x1e82,\n  \"Wcircle\",\n  0x24cc,\n  \"Wcircumflex\",\n  0x0174,\n  \"Wdieresis\",\n  0x1e84,\n  \"Wdotaccent\",\n  0x1e86,\n  \"Wdotbelow\",\n  0x1e88,\n  \"Wgrave\",\n  0x1e80,\n  \"Wmonospace\",\n  0xff37,\n  \"Wsmall\",\n  0xf777,\n  \"X\",\n  0x0058,\n  \"Xcircle\",\n  0x24cd,\n  \"Xdieresis\",\n  0x1e8c,\n  \"Xdotaccent\",\n  0x1e8a,\n  \"Xeharmenian\",\n  0x053d,\n  \"Xi\",\n  0x039e,\n  \"Xmonospace\",\n  0xff38,\n  \"Xsmall\",\n  0xf778,\n  \"Y\",\n  0x0059,\n  \"Yacute\",\n  0x00dd,\n  \"Yacutesmall\",\n  0xf7fd,\n  \"Yatcyrillic\",\n  0x0462,\n  \"Ycircle\",\n  0x24ce,\n  \"Ycircumflex\",\n  0x0176,\n  \"Ydieresis\",\n  0x0178,\n  \"Ydieresissmall\",\n  0xf7ff,\n  \"Ydotaccent\",\n  0x1e8e,\n  \"Ydotbelow\",\n  0x1ef4,\n  \"Yericyrillic\",\n  0x042b,\n  \"Yerudieresiscyrillic\",\n  0x04f8,\n  \"Ygrave\",\n  0x1ef2,\n  \"Yhook\",\n  0x01b3,\n  \"Yhookabove\",\n  0x1ef6,\n  \"Yiarmenian\",\n  0x0545,\n  \"Yicyrillic\",\n  0x0407,\n  \"Yiwnarmenian\",\n  0x0552,\n  \"Ymonospace\",\n  0xff39,\n  \"Ysmall\",\n  0xf779,\n  \"Ytilde\",\n  0x1ef8,\n  \"Yusbigcyrillic\",\n  0x046a,\n  \"Yusbigiotifiedcyrillic\",\n  0x046c,\n  \"Yuslittlecyrillic\",\n  0x0466,\n  \"Yuslittleiotifiedcyrillic\",\n  0x0468,\n  \"Z\",\n  0x005a,\n  \"Zaarmenian\",\n  0x0536,\n  \"Zacute\",\n  0x0179,\n  \"Zcaron\",\n  0x017d,\n  \"Zcaronsmall\",\n  0xf6ff,\n  \"Zcircle\",\n  0x24cf,\n  \"Zcircumflex\",\n  0x1e90,\n  \"Zdot\",\n  0x017b,\n  \"Zdotaccent\",\n  0x017b,\n  \"Zdotbelow\",\n  0x1e92,\n  \"Zecyrillic\",\n  0x0417,\n  \"Zedescendercyrillic\",\n  0x0498,\n  \"Zedieresiscyrillic\",\n  0x04de,\n  \"Zeta\",\n  0x0396,\n  \"Zhearmenian\",\n  0x053a,\n  \"Zhebrevecyrillic\",\n  0x04c1,\n  \"Zhecyrillic\",\n  0x0416,\n  \"Zhedescendercyrillic\",\n  0x0496,\n  \"Zhedieresiscyrillic\",\n  0x04dc,\n  \"Zlinebelow\",\n  0x1e94,\n  \"Zmonospace\",\n  0xff3a,\n  \"Zsmall\",\n  0xf77a,\n  \"Zstroke\",\n  0x01b5,\n  \"a\",\n  0x0061,\n  \"aabengali\",\n  0x0986,\n  \"aacute\",\n  0x00e1,\n  \"aadeva\",\n  0x0906,\n  \"aagujarati\",\n  0x0a86,\n  \"aagurmukhi\",\n  0x0a06,\n  \"aamatragurmukhi\",\n  0x0a3e,\n  \"aarusquare\",\n  0x3303,\n  \"aavowelsignbengali\",\n  0x09be,\n  \"aavowelsigndeva\",\n  0x093e,\n  \"aavowelsigngujarati\",\n  0x0abe,\n  \"abbreviationmarkarmenian\",\n  0x055f,\n  \"abbreviationsigndeva\",\n  0x0970,\n  \"abengali\",\n  0x0985,\n  \"abopomofo\",\n  0x311a,\n  \"abreve\",\n  0x0103,\n  \"abreveacute\",\n  0x1eaf,\n  \"abrevecyrillic\",\n  0x04d1,\n  \"abrevedotbelow\",\n  0x1eb7,\n  \"abrevegrave\",\n  0x1eb1,\n  \"abrevehookabove\",\n  0x1eb3,\n  \"abrevetilde\",\n  0x1eb5,\n  \"acaron\",\n  0x01ce,\n  \"acircle\",\n  0x24d0,\n  \"acircumflex\",\n  0x00e2,\n  \"acircumflexacute\",\n  0x1ea5,\n  \"acircumflexdotbelow\",\n  0x1ead,\n  \"acircumflexgrave\",\n  0x1ea7,\n  \"acircumflexhookabove\",\n  0x1ea9,\n  \"acircumflextilde\",\n  0x1eab,\n  \"acute\",\n  0x00b4,\n  \"acutebelowcmb\",\n  0x0317,\n  \"acutecmb\",\n  0x0301,\n  \"acutecomb\",\n  0x0301,\n  \"acutedeva\",\n  0x0954,\n  \"acutelowmod\",\n  0x02cf,\n  \"acutetonecmb\",\n  0x0341,\n  \"acyrillic\",\n  0x0430,\n  \"adblgrave\",\n  0x0201,\n  \"addakgurmukhi\",\n  0x0a71,\n  \"adeva\",\n  0x0905,\n  \"adieresis\",\n  0x00e4,\n  \"adieresiscyrillic\",\n  0x04d3,\n  \"adieresismacron\",\n  0x01df,\n  \"adotbelow\",\n  0x1ea1,\n  \"adotmacron\",\n  0x01e1,\n  \"ae\",\n  0x00e6,\n  \"aeacute\",\n  0x01fd,\n  \"aekorean\",\n  0x3150,\n  \"aemacron\",\n  0x01e3,\n  \"afii00208\",\n  0x2015,\n  \"afii08941\",\n  0x20a4,\n  \"afii10017\",\n  0x0410,\n  \"afii10018\",\n  0x0411,\n  \"afii10019\",\n  0x0412,\n  \"afii10020\",\n  0x0413,\n  \"afii10021\",\n  0x0414,\n  \"afii10022\",\n  0x0415,\n  \"afii10023\",\n  0x0401,\n  \"afii10024\",\n  0x0416,\n  \"afii10025\",\n  0x0417,\n  \"afii10026\",\n  0x0418,\n  \"afii10027\",\n  0x0419,\n  \"afii10028\",\n  0x041a,\n  \"afii10029\",\n  0x041b,\n  \"afii10030\",\n  0x041c,\n  \"afii10031\",\n  0x041d,\n  \"afii10032\",\n  0x041e,\n  \"afii10033\",\n  0x041f,\n  \"afii10034\",\n  0x0420,\n  \"afii10035\",\n  0x0421,\n  \"afii10036\",\n  0x0422,\n  \"afii10037\",\n  0x0423,\n  \"afii10038\",\n  0x0424,\n  \"afii10039\",\n  0x0425,\n  \"afii10040\",\n  0x0426,\n  \"afii10041\",\n  0x0427,\n  \"afii10042\",\n  0x0428,\n  \"afii10043\",\n  0x0429,\n  \"afii10044\",\n  0x042a,\n  \"afii10045\",\n  0x042b,\n  \"afii10046\",\n  0x042c,\n  \"afii10047\",\n  0x042d,\n  \"afii10048\",\n  0x042e,\n  \"afii10049\",\n  0x042f,\n  \"afii10050\",\n  0x0490,\n  \"afii10051\",\n  0x0402,\n  \"afii10052\",\n  0x0403,\n  \"afii10053\",\n  0x0404,\n  \"afii10054\",\n  0x0405,\n  \"afii10055\",\n  0x0406,\n  \"afii10056\",\n  0x0407,\n  \"afii10057\",\n  0x0408,\n  \"afii10058\",\n  0x0409,\n  \"afii10059\",\n  0x040a,\n  \"afii10060\",\n  0x040b,\n  \"afii10061\",\n  0x040c,\n  \"afii10062\",\n  0x040e,\n  \"afii10063\",\n  0xf6c4,\n  \"afii10064\",\n  0xf6c5,\n  \"afii10065\",\n  0x0430,\n  \"afii10066\",\n  0x0431,\n  \"afii10067\",\n  0x0432,\n  \"afii10068\",\n  0x0433,\n  \"afii10069\",\n  0x0434,\n  \"afii10070\",\n  0x0435,\n  \"afii10071\",\n  0x0451,\n  \"afii10072\",\n  0x0436,\n  \"afii10073\",\n  0x0437,\n  \"afii10074\",\n  0x0438,\n  \"afii10075\",\n  0x0439,\n  \"afii10076\",\n  0x043a,\n  \"afii10077\",\n  0x043b,\n  \"afii10078\",\n  0x043c,\n  \"afii10079\",\n  0x043d,\n  \"afii10080\",\n  0x043e,\n  \"afii10081\",\n  0x043f,\n  \"afii10082\",\n  0x0440,\n  \"afii10083\",\n  0x0441,\n  \"afii10084\",\n  0x0442,\n  \"afii10085\",\n  0x0443,\n  \"afii10086\",\n  0x0444,\n  \"afii10087\",\n  0x0445,\n  \"afii10088\",\n  0x0446,\n  \"afii10089\",\n  0x0447,\n  \"afii10090\",\n  0x0448,\n  \"afii10091\",\n  0x0449,\n  \"afii10092\",\n  0x044a,\n  \"afii10093\",\n  0x044b,\n  \"afii10094\",\n  0x044c,\n  \"afii10095\",\n  0x044d,\n  \"afii10096\",\n  0x044e,\n  \"afii10097\",\n  0x044f,\n  \"afii10098\",\n  0x0491,\n  \"afii10099\",\n  0x0452,\n  \"afii10100\",\n  0x0453,\n  \"afii10101\",\n  0x0454,\n  \"afii10102\",\n  0x0455,\n  \"afii10103\",\n  0x0456,\n  \"afii10104\",\n  0x0457,\n  \"afii10105\",\n  0x0458,\n  \"afii10106\",\n  0x0459,\n  \"afii10107\",\n  0x045a,\n  \"afii10108\",\n  0x045b,\n  \"afii10109\",\n  0x045c,\n  \"afii10110\",\n  0x045e,\n  \"afii10145\",\n  0x040f,\n  \"afii10146\",\n  0x0462,\n  \"afii10147\",\n  0x0472,\n  \"afii10148\",\n  0x0474,\n  \"afii10192\",\n  0xf6c6,\n  \"afii10193\",\n  0x045f,\n  \"afii10194\",\n  0x0463,\n  \"afii10195\",\n  0x0473,\n  \"afii10196\",\n  0x0475,\n  \"afii10831\",\n  0xf6c7,\n  \"afii10832\",\n  0xf6c8,\n  \"afii10846\",\n  0x04d9,\n  \"afii299\",\n  0x200e,\n  \"afii300\",\n  0x200f,\n  \"afii301\",\n  0x200d,\n  \"afii57381\",\n  0x066a,\n  \"afii57388\",\n  0x060c,\n  \"afii57392\",\n  0x0660,\n  \"afii57393\",\n  0x0661,\n  \"afii57394\",\n  0x0662,\n  \"afii57395\",\n  0x0663,\n  \"afii57396\",\n  0x0664,\n  \"afii57397\",\n  0x0665,\n  \"afii57398\",\n  0x0666,\n  \"afii57399\",\n  0x0667,\n  \"afii57400\",\n  0x0668,\n  \"afii57401\",\n  0x0669,\n  \"afii57403\",\n  0x061b,\n  \"afii57407\",\n  0x061f,\n  \"afii57409\",\n  0x0621,\n  \"afii57410\",\n  0x0622,\n  \"afii57411\",\n  0x0623,\n  \"afii57412\",\n  0x0624,\n  \"afii57413\",\n  0x0625,\n  \"afii57414\",\n  0x0626,\n  \"afii57415\",\n  0x0627,\n  \"afii57416\",\n  0x0628,\n  \"afii57417\",\n  0x0629,\n  \"afii57418\",\n  0x062a,\n  \"afii57419\",\n  0x062b,\n  \"afii57420\",\n  0x062c,\n  \"afii57421\",\n  0x062d,\n  \"afii57422\",\n  0x062e,\n  \"afii57423\",\n  0x062f,\n  \"afii57424\",\n  0x0630,\n  \"afii57425\",\n  0x0631,\n  \"afii57426\",\n  0x0632,\n  \"afii57427\",\n  0x0633,\n  \"afii57428\",\n  0x0634,\n  \"afii57429\",\n  0x0635,\n  \"afii57430\",\n  0x0636,\n  \"afii57431\",\n  0x0637,\n  \"afii57432\",\n  0x0638,\n  \"afii57433\",\n  0x0639,\n  \"afii57434\",\n  0x063a,\n  \"afii57440\",\n  0x0640,\n  \"afii57441\",\n  0x0641,\n  \"afii57442\",\n  0x0642,\n  \"afii57443\",\n  0x0643,\n  \"afii57444\",\n  0x0644,\n  \"afii57445\",\n  0x0645,\n  \"afii57446\",\n  0x0646,\n  \"afii57448\",\n  0x0648,\n  \"afii57449\",\n  0x0649,\n  \"afii57450\",\n  0x064a,\n  \"afii57451\",\n  0x064b,\n  \"afii57452\",\n  0x064c,\n  \"afii57453\",\n  0x064d,\n  \"afii57454\",\n  0x064e,\n  \"afii57455\",\n  0x064f,\n  \"afii57456\",\n  0x0650,\n  \"afii57457\",\n  0x0651,\n  \"afii57458\",\n  0x0652,\n  \"afii57470\",\n  0x0647,\n  \"afii57505\",\n  0x06a4,\n  \"afii57506\",\n  0x067e,\n  \"afii57507\",\n  0x0686,\n  \"afii57508\",\n  0x0698,\n  \"afii57509\",\n  0x06af,\n  \"afii57511\",\n  0x0679,\n  \"afii57512\",\n  0x0688,\n  \"afii57513\",\n  0x0691,\n  \"afii57514\",\n  0x06ba,\n  \"afii57519\",\n  0x06d2,\n  \"afii57534\",\n  0x06d5,\n  \"afii57636\",\n  0x20aa,\n  \"afii57645\",\n  0x05be,\n  \"afii57658\",\n  0x05c3,\n  \"afii57664\",\n  0x05d0,\n  \"afii57665\",\n  0x05d1,\n  \"afii57666\",\n  0x05d2,\n  \"afii57667\",\n  0x05d3,\n  \"afii57668\",\n  0x05d4,\n  \"afii57669\",\n  0x05d5,\n  \"afii57670\",\n  0x05d6,\n  \"afii57671\",\n  0x05d7,\n  \"afii57672\",\n  0x05d8,\n  \"afii57673\",\n  0x05d9,\n  \"afii57674\",\n  0x05da,\n  \"afii57675\",\n  0x05db,\n  \"afii57676\",\n  0x05dc,\n  \"afii57677\",\n  0x05dd,\n  \"afii57678\",\n  0x05de,\n  \"afii57679\",\n  0x05df,\n  \"afii57680\",\n  0x05e0,\n  \"afii57681\",\n  0x05e1,\n  \"afii57682\",\n  0x05e2,\n  \"afii57683\",\n  0x05e3,\n  \"afii57684\",\n  0x05e4,\n  \"afii57685\",\n  0x05e5,\n  \"afii57686\",\n  0x05e6,\n  \"afii57687\",\n  0x05e7,\n  \"afii57688\",\n  0x05e8,\n  \"afii57689\",\n  0x05e9,\n  \"afii57690\",\n  0x05ea,\n  \"afii57694\",\n  0xfb2a,\n  \"afii57695\",\n  0xfb2b,\n  \"afii57700\",\n  0xfb4b,\n  \"afii57705\",\n  0xfb1f,\n  \"afii57716\",\n  0x05f0,\n  \"afii57717\",\n  0x05f1,\n  \"afii57718\",\n  0x05f2,\n  \"afii57723\",\n  0xfb35,\n  \"afii57793\",\n  0x05b4,\n  \"afii57794\",\n  0x05b5,\n  \"afii57795\",\n  0x05b6,\n  \"afii57796\",\n  0x05bb,\n  \"afii57797\",\n  0x05b8,\n  \"afii57798\",\n  0x05b7,\n  \"afii57799\",\n  0x05b0,\n  \"afii57800\",\n  0x05b2,\n  \"afii57801\",\n  0x05b1,\n  \"afii57802\",\n  0x05b3,\n  \"afii57803\",\n  0x05c2,\n  \"afii57804\",\n  0x05c1,\n  \"afii57806\",\n  0x05b9,\n  \"afii57807\",\n  0x05bc,\n  \"afii57839\",\n  0x05bd,\n  \"afii57841\",\n  0x05bf,\n  \"afii57842\",\n  0x05c0,\n  \"afii57929\",\n  0x02bc,\n  \"afii61248\",\n  0x2105,\n  \"afii61289\",\n  0x2113,\n  \"afii61352\",\n  0x2116,\n  \"afii61573\",\n  0x202c,\n  \"afii61574\",\n  0x202d,\n  \"afii61575\",\n  0x202e,\n  \"afii61664\",\n  0x200c,\n  \"afii63167\",\n  0x066d,\n  \"afii64937\",\n  0x02bd,\n  \"agrave\",\n  0x00e0,\n  \"agujarati\",\n  0x0a85,\n  \"agurmukhi\",\n  0x0a05,\n  \"ahiragana\",\n  0x3042,\n  \"ahookabove\",\n  0x1ea3,\n  \"aibengali\",\n  0x0990,\n  \"aibopomofo\",\n  0x311e,\n  \"aideva\",\n  0x0910,\n  \"aiecyrillic\",\n  0x04d5,\n  \"aigujarati\",\n  0x0a90,\n  \"aigurmukhi\",\n  0x0a10,\n  \"aimatragurmukhi\",\n  0x0a48,\n  \"ainarabic\",\n  0x0639,\n  \"ainfinalarabic\",\n  0xfeca,\n  \"aininitialarabic\",\n  0xfecb,\n  \"ainmedialarabic\",\n  0xfecc,\n  \"ainvertedbreve\",\n  0x0203,\n  \"aivowelsignbengali\",\n  0x09c8,\n  \"aivowelsigndeva\",\n  0x0948,\n  \"aivowelsigngujarati\",\n  0x0ac8,\n  \"akatakana\",\n  0x30a2,\n  \"akatakanahalfwidth\",\n  0xff71,\n  \"akorean\",\n  0x314f,\n  \"alef\",\n  0x05d0,\n  \"alefarabic\",\n  0x0627,\n  \"alefdageshhebrew\",\n  0xfb30,\n  \"aleffinalarabic\",\n  0xfe8e,\n  \"alefhamzaabovearabic\",\n  0x0623,\n  \"alefhamzaabovefinalarabic\",\n  0xfe84,\n  \"alefhamzabelowarabic\",\n  0x0625,\n  \"alefhamzabelowfinalarabic\",\n  0xfe88,\n  \"alefhebrew\",\n  0x05d0,\n  \"aleflamedhebrew\",\n  0xfb4f,\n  \"alefmaddaabovearabic\",\n  0x0622,\n  \"alefmaddaabovefinalarabic\",\n  0xfe82,\n  \"alefmaksuraarabic\",\n  0x0649,\n  \"alefmaksurafinalarabic\",\n  0xfef0,\n  \"alefmaksurainitialarabic\",\n  0xfef3,\n  \"alefmaksuramedialarabic\",\n  0xfef4,\n  \"alefpatahhebrew\",\n  0xfb2e,\n  \"alefqamatshebrew\",\n  0xfb2f,\n  \"aleph\",\n  0x2135,\n  \"allequal\",\n  0x224c,\n  \"alpha\",\n  0x03b1,\n  \"alphatonos\",\n  0x03ac,\n  \"amacron\",\n  0x0101,\n  \"amonospace\",\n  0xff41,\n  \"ampersand\",\n  0x0026,\n  \"ampersandmonospace\",\n  0xff06,\n  \"ampersandsmall\",\n  0xf726,\n  \"amsquare\",\n  0x33c2,\n  \"anbopomofo\",\n  0x3122,\n  \"angbopomofo\",\n  0x3124,\n  \"angbracketleft\",\n  0x3008,\n  \"angbracketright\",\n  0x3009,\n  \"angkhankhuthai\",\n  0x0e5a,\n  \"angle\",\n  0x2220,\n  \"anglebracketleft\",\n  0x3008,\n  \"anglebracketleftvertical\",\n  0xfe3f,\n  \"anglebracketright\",\n  0x3009,\n  \"anglebracketrightvertical\",\n  0xfe40,\n  \"angleleft\",\n  0x2329,\n  \"angleright\",\n  0x232a,\n  \"angstrom\",\n  0x212b,\n  \"anoteleia\",\n  0x0387,\n  \"anudattadeva\",\n  0x0952,\n  \"anusvarabengali\",\n  0x0982,\n  \"anusvaradeva\",\n  0x0902,\n  \"anusvaragujarati\",\n  0x0a82,\n  \"aogonek\",\n  0x0105,\n  \"apaatosquare\",\n  0x3300,\n  \"aparen\",\n  0x249c,\n  \"apostrophearmenian\",\n  0x055a,\n  \"apostrophemod\",\n  0x02bc,\n  \"apple\",\n  0xf8ff,\n  \"approaches\",\n  0x2250,\n  \"approxequal\",\n  0x2248,\n  \"approxequalorimage\",\n  0x2252,\n  \"approximatelyequal\",\n  0x2245,\n  \"araeaekorean\",\n  0x318e,\n  \"araeakorean\",\n  0x318d,\n  \"arc\",\n  0x2312,\n  \"arighthalfring\",\n  0x1e9a,\n  \"aring\",\n  0x00e5,\n  \"aringacute\",\n  0x01fb,\n  \"aringbelow\",\n  0x1e01,\n  \"arrowboth\",\n  0x2194,\n  \"arrowdashdown\",\n  0x21e3,\n  \"arrowdashleft\",\n  0x21e0,\n  \"arrowdashright\",\n  0x21e2,\n  \"arrowdashup\",\n  0x21e1,\n  \"arrowdblboth\",\n  0x21d4,\n  \"arrowdbldown\",\n  0x21d3,\n  \"arrowdblleft\",\n  0x21d0,\n  \"arrowdblright\",\n  0x21d2,\n  \"arrowdblup\",\n  0x21d1,\n  \"arrowdown\",\n  0x2193,\n  \"arrowdownleft\",\n  0x2199,\n  \"arrowdownright\",\n  0x2198,\n  \"arrowdownwhite\",\n  0x21e9,\n  \"arrowheaddownmod\",\n  0x02c5,\n  \"arrowheadleftmod\",\n  0x02c2,\n  \"arrowheadrightmod\",\n  0x02c3,\n  \"arrowheadupmod\",\n  0x02c4,\n  \"arrowhorizex\",\n  0xf8e7,\n  \"arrowleft\",\n  0x2190,\n  \"arrowleftdbl\",\n  0x21d0,\n  \"arrowleftdblstroke\",\n  0x21cd,\n  \"arrowleftoverright\",\n  0x21c6,\n  \"arrowleftwhite\",\n  0x21e6,\n  \"arrowright\",\n  0x2192,\n  \"arrowrightdblstroke\",\n  0x21cf,\n  \"arrowrightheavy\",\n  0x279e,\n  \"arrowrightoverleft\",\n  0x21c4,\n  \"arrowrightwhite\",\n  0x21e8,\n  \"arrowtableft\",\n  0x21e4,\n  \"arrowtabright\",\n  0x21e5,\n  \"arrowup\",\n  0x2191,\n  \"arrowupdn\",\n  0x2195,\n  \"arrowupdnbse\",\n  0x21a8,\n  \"arrowupdownbase\",\n  0x21a8,\n  \"arrowupleft\",\n  0x2196,\n  \"arrowupleftofdown\",\n  0x21c5,\n  \"arrowupright\",\n  0x2197,\n  \"arrowupwhite\",\n  0x21e7,\n  \"arrowvertex\",\n  0xf8e6,\n  \"asciicircum\",\n  0x005e,\n  \"asciicircummonospace\",\n  0xff3e,\n  \"asciitilde\",\n  0x007e,\n  \"asciitildemonospace\",\n  0xff5e,\n  \"ascript\",\n  0x0251,\n  \"ascriptturned\",\n  0x0252,\n  \"asmallhiragana\",\n  0x3041,\n  \"asmallkatakana\",\n  0x30a1,\n  \"asmallkatakanahalfwidth\",\n  0xff67,\n  \"asterisk\",\n  0x002a,\n  \"asteriskaltonearabic\",\n  0x066d,\n  \"asteriskarabic\",\n  0x066d,\n  \"asteriskmath\",\n  0x2217,\n  \"asteriskmonospace\",\n  0xff0a,\n  \"asterisksmall\",\n  0xfe61,\n  \"asterism\",\n  0x2042,\n  \"asuperior\",\n  0xf6e9,\n  \"asymptoticallyequal\",\n  0x2243,\n  \"at\",\n  0x0040,\n  \"atilde\",\n  0x00e3,\n  \"atmonospace\",\n  0xff20,\n  \"atsmall\",\n  0xfe6b,\n  \"aturned\",\n  0x0250,\n  \"aubengali\",\n  0x0994,\n  \"aubopomofo\",\n  0x3120,\n  \"audeva\",\n  0x0914,\n  \"augujarati\",\n  0x0a94,\n  \"augurmukhi\",\n  0x0a14,\n  \"aulengthmarkbengali\",\n  0x09d7,\n  \"aumatragurmukhi\",\n  0x0a4c,\n  \"auvowelsignbengali\",\n  0x09cc,\n  \"auvowelsigndeva\",\n  0x094c,\n  \"auvowelsigngujarati\",\n  0x0acc,\n  \"avagrahadeva\",\n  0x093d,\n  \"aybarmenian\",\n  0x0561,\n  \"ayin\",\n  0x05e2,\n  \"ayinaltonehebrew\",\n  0xfb20,\n  \"ayinhebrew\",\n  0x05e2,\n  \"b\",\n  0x0062,\n  \"babengali\",\n  0x09ac,\n  \"backslash\",\n  0x005c,\n  \"backslashmonospace\",\n  0xff3c,\n  \"badeva\",\n  0x092c,\n  \"bagujarati\",\n  0x0aac,\n  \"bagurmukhi\",\n  0x0a2c,\n  \"bahiragana\",\n  0x3070,\n  \"bahtthai\",\n  0x0e3f,\n  \"bakatakana\",\n  0x30d0,\n  \"bar\",\n  0x007c,\n  \"barmonospace\",\n  0xff5c,\n  \"bbopomofo\",\n  0x3105,\n  \"bcircle\",\n  0x24d1,\n  \"bdotaccent\",\n  0x1e03,\n  \"bdotbelow\",\n  0x1e05,\n  \"beamedsixteenthnotes\",\n  0x266c,\n  \"because\",\n  0x2235,\n  \"becyrillic\",\n  0x0431,\n  \"beharabic\",\n  0x0628,\n  \"behfinalarabic\",\n  0xfe90,\n  \"behinitialarabic\",\n  0xfe91,\n  \"behiragana\",\n  0x3079,\n  \"behmedialarabic\",\n  0xfe92,\n  \"behmeeminitialarabic\",\n  0xfc9f,\n  \"behmeemisolatedarabic\",\n  0xfc08,\n  \"behnoonfinalarabic\",\n  0xfc6d,\n  \"bekatakana\",\n  0x30d9,\n  \"benarmenian\",\n  0x0562,\n  \"bet\",\n  0x05d1,\n  \"beta\",\n  0x03b2,\n  \"betasymbolgreek\",\n  0x03d0,\n  \"betdagesh\",\n  0xfb31,\n  \"betdageshhebrew\",\n  0xfb31,\n  \"bethebrew\",\n  0x05d1,\n  \"betrafehebrew\",\n  0xfb4c,\n  \"bhabengali\",\n  0x09ad,\n  \"bhadeva\",\n  0x092d,\n  \"bhagujarati\",\n  0x0aad,\n  \"bhagurmukhi\",\n  0x0a2d,\n  \"bhook\",\n  0x0253,\n  \"bihiragana\",\n  0x3073,\n  \"bikatakana\",\n  0x30d3,\n  \"bilabialclick\",\n  0x0298,\n  \"bindigurmukhi\",\n  0x0a02,\n  \"birusquare\",\n  0x3331,\n  \"blackcircle\",\n  0x25cf,\n  \"blackdiamond\",\n  0x25c6,\n  \"blackdownpointingtriangle\",\n  0x25bc,\n  \"blackleftpointingpointer\",\n  0x25c4,\n  \"blackleftpointingtriangle\",\n  0x25c0,\n  \"blacklenticularbracketleft\",\n  0x3010,\n  \"blacklenticularbracketleftvertical\",\n  0xfe3b,\n  \"blacklenticularbracketright\",\n  0x3011,\n  \"blacklenticularbracketrightvertical\",\n  0xfe3c,\n  \"blacklowerlefttriangle\",\n  0x25e3,\n  \"blacklowerrighttriangle\",\n  0x25e2,\n  \"blackrectangle\",\n  0x25ac,\n  \"blackrightpointingpointer\",\n  0x25ba,\n  \"blackrightpointingtriangle\",\n  0x25b6,\n  \"blacksmallsquare\",\n  0x25aa,\n  \"blacksmilingface\",\n  0x263b,\n  \"blacksquare\",\n  0x25a0,\n  \"blackstar\",\n  0x2605,\n  \"blackupperlefttriangle\",\n  0x25e4,\n  \"blackupperrighttriangle\",\n  0x25e5,\n  \"blackuppointingsmalltriangle\",\n  0x25b4,\n  \"blackuppointingtriangle\",\n  0x25b2,\n  \"blank\",\n  0x2423,\n  \"blinebelow\",\n  0x1e07,\n  \"block\",\n  0x2588,\n  \"bmonospace\",\n  0xff42,\n  \"bobaimaithai\",\n  0x0e1a,\n  \"bohiragana\",\n  0x307c,\n  \"bokatakana\",\n  0x30dc,\n  \"bparen\",\n  0x249d,\n  \"bqsquare\",\n  0x33c3,\n  \"braceex\",\n  0xf8f4,\n  \"braceleft\",\n  0x007b,\n  \"braceleftbt\",\n  0xf8f3,\n  \"braceleftmid\",\n  0xf8f2,\n  \"braceleftmonospace\",\n  0xff5b,\n  \"braceleftsmall\",\n  0xfe5b,\n  \"bracelefttp\",\n  0xf8f1,\n  \"braceleftvertical\",\n  0xfe37,\n  \"braceright\",\n  0x007d,\n  \"bracerightbt\",\n  0xf8fe,\n  \"bracerightmid\",\n  0xf8fd,\n  \"bracerightmonospace\",\n  0xff5d,\n  \"bracerightsmall\",\n  0xfe5c,\n  \"bracerighttp\",\n  0xf8fc,\n  \"bracerightvertical\",\n  0xfe38,\n  \"bracketleft\",\n  0x005b,\n  \"bracketleftbt\",\n  0xf8f0,\n  \"bracketleftex\",\n  0xf8ef,\n  \"bracketleftmonospace\",\n  0xff3b,\n  \"bracketlefttp\",\n  0xf8ee,\n  \"bracketright\",\n  0x005d,\n  \"bracketrightbt\",\n  0xf8fb,\n  \"bracketrightex\",\n  0xf8fa,\n  \"bracketrightmonospace\",\n  0xff3d,\n  \"bracketrighttp\",\n  0xf8f9,\n  \"breve\",\n  0x02d8,\n  \"brevebelowcmb\",\n  0x032e,\n  \"brevecmb\",\n  0x0306,\n  \"breveinvertedbelowcmb\",\n  0x032f,\n  \"breveinvertedcmb\",\n  0x0311,\n  \"breveinverteddoublecmb\",\n  0x0361,\n  \"bridgebelowcmb\",\n  0x032a,\n  \"bridgeinvertedbelowcmb\",\n  0x033a,\n  \"brokenbar\",\n  0x00a6,\n  \"bstroke\",\n  0x0180,\n  \"bsuperior\",\n  0xf6ea,\n  \"btopbar\",\n  0x0183,\n  \"buhiragana\",\n  0x3076,\n  \"bukatakana\",\n  0x30d6,\n  \"bullet\",\n  0x2022,\n  \"bulletinverse\",\n  0x25d8,\n  \"bulletoperator\",\n  0x2219,\n  \"bullseye\",\n  0x25ce,\n  \"c\",\n  0x0063,\n  \"caarmenian\",\n  0x056e,\n  \"cabengali\",\n  0x099a,\n  \"cacute\",\n  0x0107,\n  \"cadeva\",\n  0x091a,\n  \"cagujarati\",\n  0x0a9a,\n  \"cagurmukhi\",\n  0x0a1a,\n  \"calsquare\",\n  0x3388,\n  \"candrabindubengali\",\n  0x0981,\n  \"candrabinducmb\",\n  0x0310,\n  \"candrabindudeva\",\n  0x0901,\n  \"candrabindugujarati\",\n  0x0a81,\n  \"capslock\",\n  0x21ea,\n  \"careof\",\n  0x2105,\n  \"caron\",\n  0x02c7,\n  \"caronbelowcmb\",\n  0x032c,\n  \"caroncmb\",\n  0x030c,\n  \"carriagereturn\",\n  0x21b5,\n  \"cbopomofo\",\n  0x3118,\n  \"ccaron\",\n  0x010d,\n  \"ccedilla\",\n  0x00e7,\n  \"ccedillaacute\",\n  0x1e09,\n  \"ccircle\",\n  0x24d2,\n  \"ccircumflex\",\n  0x0109,\n  \"ccurl\",\n  0x0255,\n  \"cdot\",\n  0x010b,\n  \"cdotaccent\",\n  0x010b,\n  \"cdsquare\",\n  0x33c5,\n  \"cedilla\",\n  0x00b8,\n  \"cedillacmb\",\n  0x0327,\n  \"cent\",\n  0x00a2,\n  \"centigrade\",\n  0x2103,\n  \"centinferior\",\n  0xf6df,\n  \"centmonospace\",\n  0xffe0,\n  \"centoldstyle\",\n  0xf7a2,\n  \"centsuperior\",\n  0xf6e0,\n  \"chaarmenian\",\n  0x0579,\n  \"chabengali\",\n  0x099b,\n  \"chadeva\",\n  0x091b,\n  \"chagujarati\",\n  0x0a9b,\n  \"chagurmukhi\",\n  0x0a1b,\n  \"chbopomofo\",\n  0x3114,\n  \"cheabkhasiancyrillic\",\n  0x04bd,\n  \"checkmark\",\n  0x2713,\n  \"checyrillic\",\n  0x0447,\n  \"chedescenderabkhasiancyrillic\",\n  0x04bf,\n  \"chedescendercyrillic\",\n  0x04b7,\n  \"chedieresiscyrillic\",\n  0x04f5,\n  \"cheharmenian\",\n  0x0573,\n  \"chekhakassiancyrillic\",\n  0x04cc,\n  \"cheverticalstrokecyrillic\",\n  0x04b9,\n  \"chi\",\n  0x03c7,\n  \"chieuchacirclekorean\",\n  0x3277,\n  \"chieuchaparenkorean\",\n  0x3217,\n  \"chieuchcirclekorean\",\n  0x3269,\n  \"chieuchkorean\",\n  0x314a,\n  \"chieuchparenkorean\",\n  0x3209,\n  \"chochangthai\",\n  0x0e0a,\n  \"chochanthai\",\n  0x0e08,\n  \"chochingthai\",\n  0x0e09,\n  \"chochoethai\",\n  0x0e0c,\n  \"chook\",\n  0x0188,\n  \"cieucacirclekorean\",\n  0x3276,\n  \"cieucaparenkorean\",\n  0x3216,\n  \"cieuccirclekorean\",\n  0x3268,\n  \"cieuckorean\",\n  0x3148,\n  \"cieucparenkorean\",\n  0x3208,\n  \"cieucuparenkorean\",\n  0x321c,\n  \"circle\",\n  0x25cb,\n  \"circlecopyrt\",\n  0x00a9,\n  \"circlemultiply\",\n  0x2297,\n  \"circleot\",\n  0x2299,\n  \"circleplus\",\n  0x2295,\n  \"circlepostalmark\",\n  0x3036,\n  \"circlewithlefthalfblack\",\n  0x25d0,\n  \"circlewithrighthalfblack\",\n  0x25d1,\n  \"circumflex\",\n  0x02c6,\n  \"circumflexbelowcmb\",\n  0x032d,\n  \"circumflexcmb\",\n  0x0302,\n  \"clear\",\n  0x2327,\n  \"clickalveolar\",\n  0x01c2,\n  \"clickdental\",\n  0x01c0,\n  \"clicklateral\",\n  0x01c1,\n  \"clickretroflex\",\n  0x01c3,\n  \"club\",\n  0x2663,\n  \"clubsuitblack\",\n  0x2663,\n  \"clubsuitwhite\",\n  0x2667,\n  \"cmcubedsquare\",\n  0x33a4,\n  \"cmonospace\",\n  0xff43,\n  \"cmsquaredsquare\",\n  0x33a0,\n  \"coarmenian\",\n  0x0581,\n  \"colon\",\n  0x003a,\n  \"colonmonetary\",\n  0x20a1,\n  \"colonmonospace\",\n  0xff1a,\n  \"colonsign\",\n  0x20a1,\n  \"colonsmall\",\n  0xfe55,\n  \"colontriangularhalfmod\",\n  0x02d1,\n  \"colontriangularmod\",\n  0x02d0,\n  \"comma\",\n  0x002c,\n  \"commaabovecmb\",\n  0x0313,\n  \"commaaboverightcmb\",\n  0x0315,\n  \"commaaccent\",\n  0xf6c3,\n  \"commaarabic\",\n  0x060c,\n  \"commaarmenian\",\n  0x055d,\n  \"commainferior\",\n  0xf6e1,\n  \"commamonospace\",\n  0xff0c,\n  \"commareversedabovecmb\",\n  0x0314,\n  \"commareversedmod\",\n  0x02bd,\n  \"commasmall\",\n  0xfe50,\n  \"commasuperior\",\n  0xf6e2,\n  \"commaturnedabovecmb\",\n  0x0312,\n  \"commaturnedmod\",\n  0x02bb,\n  \"compass\",\n  0x263c,\n  \"congruent\",\n  0x2245,\n  \"contourintegral\",\n  0x222e,\n  \"control\",\n  0x2303,\n  \"controlACK\",\n  0x0006,\n  \"controlBEL\",\n  0x0007,\n  \"controlBS\",\n  0x0008,\n  \"controlCAN\",\n  0x0018,\n  \"controlCR\",\n  0x000d,\n  \"controlDC1\",\n  0x0011,\n  \"controlDC2\",\n  0x0012,\n  \"controlDC3\",\n  0x0013,\n  \"controlDC4\",\n  0x0014,\n  \"controlDEL\",\n  0x007f,\n  \"controlDLE\",\n  0x0010,\n  \"controlEM\",\n  0x0019,\n  \"controlENQ\",\n  0x0005,\n  \"controlEOT\",\n  0x0004,\n  \"controlESC\",\n  0x001b,\n  \"controlETB\",\n  0x0017,\n  \"controlETX\",\n  0x0003,\n  \"controlFF\",\n  0x000c,\n  \"controlFS\",\n  0x001c,\n  \"controlGS\",\n  0x001d,\n  \"controlHT\",\n  0x0009,\n  \"controlLF\",\n  0x000a,\n  \"controlNAK\",\n  0x0015,\n  \"controlNULL\",\n  0x0000,\n  \"controlRS\",\n  0x001e,\n  \"controlSI\",\n  0x000f,\n  \"controlSO\",\n  0x000e,\n  \"controlSOT\",\n  0x0002,\n  \"controlSTX\",\n  0x0001,\n  \"controlSUB\",\n  0x001a,\n  \"controlSYN\",\n  0x0016,\n  \"controlUS\",\n  0x001f,\n  \"controlVT\",\n  0x000b,\n  \"copyright\",\n  0x00a9,\n  \"copyrightsans\",\n  0xf8e9,\n  \"copyrightserif\",\n  0xf6d9,\n  \"cornerbracketleft\",\n  0x300c,\n  \"cornerbracketlefthalfwidth\",\n  0xff62,\n  \"cornerbracketleftvertical\",\n  0xfe41,\n  \"cornerbracketright\",\n  0x300d,\n  \"cornerbracketrighthalfwidth\",\n  0xff63,\n  \"cornerbracketrightvertical\",\n  0xfe42,\n  \"corporationsquare\",\n  0x337f,\n  \"cosquare\",\n  0x33c7,\n  \"coverkgsquare\",\n  0x33c6,\n  \"cparen\",\n  0x249e,\n  \"cruzeiro\",\n  0x20a2,\n  \"cstretched\",\n  0x0297,\n  \"curlyand\",\n  0x22cf,\n  \"curlyor\",\n  0x22ce,\n  \"currency\",\n  0x00a4,\n  \"cyrBreve\",\n  0xf6d1,\n  \"cyrFlex\",\n  0xf6d2,\n  \"cyrbreve\",\n  0xf6d4,\n  \"cyrflex\",\n  0xf6d5,\n  \"d\",\n  0x0064,\n  \"daarmenian\",\n  0x0564,\n  \"dabengali\",\n  0x09a6,\n  \"dadarabic\",\n  0x0636,\n  \"dadeva\",\n  0x0926,\n  \"dadfinalarabic\",\n  0xfebe,\n  \"dadinitialarabic\",\n  0xfebf,\n  \"dadmedialarabic\",\n  0xfec0,\n  \"dagesh\",\n  0x05bc,\n  \"dageshhebrew\",\n  0x05bc,\n  \"dagger\",\n  0x2020,\n  \"daggerdbl\",\n  0x2021,\n  \"dagujarati\",\n  0x0aa6,\n  \"dagurmukhi\",\n  0x0a26,\n  \"dahiragana\",\n  0x3060,\n  \"dakatakana\",\n  0x30c0,\n  \"dalarabic\",\n  0x062f,\n  \"dalet\",\n  0x05d3,\n  \"daletdagesh\",\n  0xfb33,\n  \"daletdageshhebrew\",\n  0xfb33,\n  \"dalethebrew\",\n  0x05d3,\n  \"dalfinalarabic\",\n  0xfeaa,\n  \"dammaarabic\",\n  0x064f,\n  \"dammalowarabic\",\n  0x064f,\n  \"dammatanaltonearabic\",\n  0x064c,\n  \"dammatanarabic\",\n  0x064c,\n  \"danda\",\n  0x0964,\n  \"dargahebrew\",\n  0x05a7,\n  \"dargalefthebrew\",\n  0x05a7,\n  \"dasiapneumatacyrilliccmb\",\n  0x0485,\n  \"dblGrave\",\n  0xf6d3,\n  \"dblanglebracketleft\",\n  0x300a,\n  \"dblanglebracketleftvertical\",\n  0xfe3d,\n  \"dblanglebracketright\",\n  0x300b,\n  \"dblanglebracketrightvertical\",\n  0xfe3e,\n  \"dblarchinvertedbelowcmb\",\n  0x032b,\n  \"dblarrowleft\",\n  0x21d4,\n  \"dblarrowright\",\n  0x21d2,\n  \"dbldanda\",\n  0x0965,\n  \"dblgrave\",\n  0xf6d6,\n  \"dblgravecmb\",\n  0x030f,\n  \"dblintegral\",\n  0x222c,\n  \"dbllowline\",\n  0x2017,\n  \"dbllowlinecmb\",\n  0x0333,\n  \"dbloverlinecmb\",\n  0x033f,\n  \"dblprimemod\",\n  0x02ba,\n  \"dblverticalbar\",\n  0x2016,\n  \"dblverticallineabovecmb\",\n  0x030e,\n  \"dbopomofo\",\n  0x3109,\n  \"dbsquare\",\n  0x33c8,\n  \"dcaron\",\n  0x010f,\n  \"dcedilla\",\n  0x1e11,\n  \"dcircle\",\n  0x24d3,\n  \"dcircumflexbelow\",\n  0x1e13,\n  \"dcroat\",\n  0x0111,\n  \"ddabengali\",\n  0x09a1,\n  \"ddadeva\",\n  0x0921,\n  \"ddagujarati\",\n  0x0aa1,\n  \"ddagurmukhi\",\n  0x0a21,\n  \"ddalarabic\",\n  0x0688,\n  \"ddalfinalarabic\",\n  0xfb89,\n  \"dddhadeva\",\n  0x095c,\n  \"ddhabengali\",\n  0x09a2,\n  \"ddhadeva\",\n  0x0922,\n  \"ddhagujarati\",\n  0x0aa2,\n  \"ddhagurmukhi\",\n  0x0a22,\n  \"ddotaccent\",\n  0x1e0b,\n  \"ddotbelow\",\n  0x1e0d,\n  \"decimalseparatorarabic\",\n  0x066b,\n  \"decimalseparatorpersian\",\n  0x066b,\n  \"decyrillic\",\n  0x0434,\n  \"degree\",\n  0x00b0,\n  \"dehihebrew\",\n  0x05ad,\n  \"dehiragana\",\n  0x3067,\n  \"deicoptic\",\n  0x03ef,\n  \"dekatakana\",\n  0x30c7,\n  \"deleteleft\",\n  0x232b,\n  \"deleteright\",\n  0x2326,\n  \"delta\",\n  0x03b4,\n  \"deltaturned\",\n  0x018d,\n  \"denominatorminusonenumeratorbengali\",\n  0x09f8,\n  \"dezh\",\n  0x02a4,\n  \"dhabengali\",\n  0x09a7,\n  \"dhadeva\",\n  0x0927,\n  \"dhagujarati\",\n  0x0aa7,\n  \"dhagurmukhi\",\n  0x0a27,\n  \"dhook\",\n  0x0257,\n  \"dialytikatonos\",\n  0x0385,\n  \"dialytikatonoscmb\",\n  0x0344,\n  \"diamond\",\n  0x2666,\n  \"diamondsuitwhite\",\n  0x2662,\n  \"dieresis\",\n  0x00a8,\n  \"dieresisacute\",\n  0xf6d7,\n  \"dieresisbelowcmb\",\n  0x0324,\n  \"dieresiscmb\",\n  0x0308,\n  \"dieresisgrave\",\n  0xf6d8,\n  \"dieresistonos\",\n  0x0385,\n  \"dihiragana\",\n  0x3062,\n  \"dikatakana\",\n  0x30c2,\n  \"dittomark\",\n  0x3003,\n  \"divide\",\n  0x00f7,\n  \"divides\",\n  0x2223,\n  \"divisionslash\",\n  0x2215,\n  \"djecyrillic\",\n  0x0452,\n  \"dkshade\",\n  0x2593,\n  \"dlinebelow\",\n  0x1e0f,\n  \"dlsquare\",\n  0x3397,\n  \"dmacron\",\n  0x0111,\n  \"dmonospace\",\n  0xff44,\n  \"dnblock\",\n  0x2584,\n  \"dochadathai\",\n  0x0e0e,\n  \"dodekthai\",\n  0x0e14,\n  \"dohiragana\",\n  0x3069,\n  \"dokatakana\",\n  0x30c9,\n  \"dollar\",\n  0x0024,\n  \"dollarinferior\",\n  0xf6e3,\n  \"dollarmonospace\",\n  0xff04,\n  \"dollaroldstyle\",\n  0xf724,\n  \"dollarsmall\",\n  0xfe69,\n  \"dollarsuperior\",\n  0xf6e4,\n  \"dong\",\n  0x20ab,\n  \"dorusquare\",\n  0x3326,\n  \"dotaccent\",\n  0x02d9,\n  \"dotaccentcmb\",\n  0x0307,\n  \"dotbelowcmb\",\n  0x0323,\n  \"dotbelowcomb\",\n  0x0323,\n  \"dotkatakana\",\n  0x30fb,\n  \"dotlessi\",\n  0x0131,\n  \"dotlessj\",\n  0xf6be,\n  \"dotlessjstrokehook\",\n  0x0284,\n  \"dotmath\",\n  0x22c5,\n  \"dottedcircle\",\n  0x25cc,\n  \"doubleyodpatah\",\n  0xfb1f,\n  \"doubleyodpatahhebrew\",\n  0xfb1f,\n  \"downtackbelowcmb\",\n  0x031e,\n  \"downtackmod\",\n  0x02d5,\n  \"dparen\",\n  0x249f,\n  \"dsuperior\",\n  0xf6eb,\n  \"dtail\",\n  0x0256,\n  \"dtopbar\",\n  0x018c,\n  \"duhiragana\",\n  0x3065,\n  \"dukatakana\",\n  0x30c5,\n  \"dz\",\n  0x01f3,\n  \"dzaltone\",\n  0x02a3,\n  \"dzcaron\",\n  0x01c6,\n  \"dzcurl\",\n  0x02a5,\n  \"dzeabkhasiancyrillic\",\n  0x04e1,\n  \"dzecyrillic\",\n  0x0455,\n  \"dzhecyrillic\",\n  0x045f,\n  \"e\",\n  0x0065,\n  \"eacute\",\n  0x00e9,\n  \"earth\",\n  0x2641,\n  \"ebengali\",\n  0x098f,\n  \"ebopomofo\",\n  0x311c,\n  \"ebreve\",\n  0x0115,\n  \"ecandradeva\",\n  0x090d,\n  \"ecandragujarati\",\n  0x0a8d,\n  \"ecandravowelsigndeva\",\n  0x0945,\n  \"ecandravowelsigngujarati\",\n  0x0ac5,\n  \"ecaron\",\n  0x011b,\n  \"ecedillabreve\",\n  0x1e1d,\n  \"echarmenian\",\n  0x0565,\n  \"echyiwnarmenian\",\n  0x0587,\n  \"ecircle\",\n  0x24d4,\n  \"ecircumflex\",\n  0x00ea,\n  \"ecircumflexacute\",\n  0x1ebf,\n  \"ecircumflexbelow\",\n  0x1e19,\n  \"ecircumflexdotbelow\",\n  0x1ec7,\n  \"ecircumflexgrave\",\n  0x1ec1,\n  \"ecircumflexhookabove\",\n  0x1ec3,\n  \"ecircumflextilde\",\n  0x1ec5,\n  \"ecyrillic\",\n  0x0454,\n  \"edblgrave\",\n  0x0205,\n  \"edeva\",\n  0x090f,\n  \"edieresis\",\n  0x00eb,\n  \"edot\",\n  0x0117,\n  \"edotaccent\",\n  0x0117,\n  \"edotbelow\",\n  0x1eb9,\n  \"eegurmukhi\",\n  0x0a0f,\n  \"eematragurmukhi\",\n  0x0a47,\n  \"efcyrillic\",\n  0x0444,\n  \"egrave\",\n  0x00e8,\n  \"egujarati\",\n  0x0a8f,\n  \"eharmenian\",\n  0x0567,\n  \"ehbopomofo\",\n  0x311d,\n  \"ehiragana\",\n  0x3048,\n  \"ehookabove\",\n  0x1ebb,\n  \"eibopomofo\",\n  0x311f,\n  \"eight\",\n  0x0038,\n  \"eightarabic\",\n  0x0668,\n  \"eightbengali\",\n  0x09ee,\n  \"eightcircle\",\n  0x2467,\n  \"eightcircleinversesansserif\",\n  0x2791,\n  \"eightdeva\",\n  0x096e,\n  \"eighteencircle\",\n  0x2471,\n  \"eighteenparen\",\n  0x2485,\n  \"eighteenperiod\",\n  0x2499,\n  \"eightgujarati\",\n  0x0aee,\n  \"eightgurmukhi\",\n  0x0a6e,\n  \"eighthackarabic\",\n  0x0668,\n  \"eighthangzhou\",\n  0x3028,\n  \"eighthnotebeamed\",\n  0x266b,\n  \"eightideographicparen\",\n  0x3227,\n  \"eightinferior\",\n  0x2088,\n  \"eightmonospace\",\n  0xff18,\n  \"eightoldstyle\",\n  0xf738,\n  \"eightparen\",\n  0x247b,\n  \"eightperiod\",\n  0x248f,\n  \"eightpersian\",\n  0x06f8,\n  \"eightroman\",\n  0x2177,\n  \"eightsuperior\",\n  0x2078,\n  \"eightthai\",\n  0x0e58,\n  \"einvertedbreve\",\n  0x0207,\n  \"eiotifiedcyrillic\",\n  0x0465,\n  \"ekatakana\",\n  0x30a8,\n  \"ekatakanahalfwidth\",\n  0xff74,\n  \"ekonkargurmukhi\",\n  0x0a74,\n  \"ekorean\",\n  0x3154,\n  \"elcyrillic\",\n  0x043b,\n  \"element\",\n  0x2208,\n  \"elevencircle\",\n  0x246a,\n  \"elevenparen\",\n  0x247e,\n  \"elevenperiod\",\n  0x2492,\n  \"elevenroman\",\n  0x217a,\n  \"ellipsis\",\n  0x2026,\n  \"ellipsisvertical\",\n  0x22ee,\n  \"emacron\",\n  0x0113,\n  \"emacronacute\",\n  0x1e17,\n  \"emacrongrave\",\n  0x1e15,\n  \"emcyrillic\",\n  0x043c,\n  \"emdash\",\n  0x2014,\n  \"emdashvertical\",\n  0xfe31,\n  \"emonospace\",\n  0xff45,\n  \"emphasismarkarmenian\",\n  0x055b,\n  \"emptyset\",\n  0x2205,\n  \"enbopomofo\",\n  0x3123,\n  \"encyrillic\",\n  0x043d,\n  \"endash\",\n  0x2013,\n  \"endashvertical\",\n  0xfe32,\n  \"endescendercyrillic\",\n  0x04a3,\n  \"eng\",\n  0x014b,\n  \"engbopomofo\",\n  0x3125,\n  \"enghecyrillic\",\n  0x04a5,\n  \"enhookcyrillic\",\n  0x04c8,\n  \"enspace\",\n  0x2002,\n  \"eogonek\",\n  0x0119,\n  \"eokorean\",\n  0x3153,\n  \"eopen\",\n  0x025b,\n  \"eopenclosed\",\n  0x029a,\n  \"eopenreversed\",\n  0x025c,\n  \"eopenreversedclosed\",\n  0x025e,\n  \"eopenreversedhook\",\n  0x025d,\n  \"eparen\",\n  0x24a0,\n  \"epsilon\",\n  0x03b5,\n  \"epsilontonos\",\n  0x03ad,\n  \"equal\",\n  0x003d,\n  \"equalmonospace\",\n  0xff1d,\n  \"equalsmall\",\n  0xfe66,\n  \"equalsuperior\",\n  0x207c,\n  \"equivalence\",\n  0x2261,\n  \"erbopomofo\",\n  0x3126,\n  \"ercyrillic\",\n  0x0440,\n  \"ereversed\",\n  0x0258,\n  \"ereversedcyrillic\",\n  0x044d,\n  \"escyrillic\",\n  0x0441,\n  \"esdescendercyrillic\",\n  0x04ab,\n  \"esh\",\n  0x0283,\n  \"eshcurl\",\n  0x0286,\n  \"eshortdeva\",\n  0x090e,\n  \"eshortvowelsigndeva\",\n  0x0946,\n  \"eshreversedloop\",\n  0x01aa,\n  \"eshsquatreversed\",\n  0x0285,\n  \"esmallhiragana\",\n  0x3047,\n  \"esmallkatakana\",\n  0x30a7,\n  \"esmallkatakanahalfwidth\",\n  0xff6a,\n  \"estimated\",\n  0x212e,\n  \"esuperior\",\n  0xf6ec,\n  \"eta\",\n  0x03b7,\n  \"etarmenian\",\n  0x0568,\n  \"etatonos\",\n  0x03ae,\n  \"eth\",\n  0x00f0,\n  \"etilde\",\n  0x1ebd,\n  \"etildebelow\",\n  0x1e1b,\n  \"etnahtafoukhhebrew\",\n  0x0591,\n  \"etnahtafoukhlefthebrew\",\n  0x0591,\n  \"etnahtahebrew\",\n  0x0591,\n  \"etnahtalefthebrew\",\n  0x0591,\n  \"eturned\",\n  0x01dd,\n  \"eukorean\",\n  0x3161,\n  \"euro\",\n  0x20ac,\n  \"evowelsignbengali\",\n  0x09c7,\n  \"evowelsigndeva\",\n  0x0947,\n  \"evowelsigngujarati\",\n  0x0ac7,\n  \"exclam\",\n  0x0021,\n  \"exclamarmenian\",\n  0x055c,\n  \"exclamdbl\",\n  0x203c,\n  \"exclamdown\",\n  0x00a1,\n  \"exclamdownsmall\",\n  0xf7a1,\n  \"exclammonospace\",\n  0xff01,\n  \"exclamsmall\",\n  0xf721,\n  \"existential\",\n  0x2203,\n  \"ezh\",\n  0x0292,\n  \"ezhcaron\",\n  0x01ef,\n  \"ezhcurl\",\n  0x0293,\n  \"ezhreversed\",\n  0x01b9,\n  \"ezhtail\",\n  0x01ba,\n  \"f\",\n  0x0066,\n  \"fadeva\",\n  0x095e,\n  \"fagurmukhi\",\n  0x0a5e,\n  \"fahrenheit\",\n  0x2109,\n  \"fathaarabic\",\n  0x064e,\n  \"fathalowarabic\",\n  0x064e,\n  \"fathatanarabic\",\n  0x064b,\n  \"fbopomofo\",\n  0x3108,\n  \"fcircle\",\n  0x24d5,\n  \"fdotaccent\",\n  0x1e1f,\n  \"feharabic\",\n  0x0641,\n  \"feharmenian\",\n  0x0586,\n  \"fehfinalarabic\",\n  0xfed2,\n  \"fehinitialarabic\",\n  0xfed3,\n  \"fehmedialarabic\",\n  0xfed4,\n  \"feicoptic\",\n  0x03e5,\n  \"female\",\n  0x2640,\n  \"ff\",\n  0xfb00,\n  \"f_f\",\n  0xfb00,\n  \"ffi\",\n  0xfb03,\n  \"ffl\",\n  0xfb04,\n  \"fi\",\n  0xfb01,\n  \"fifteencircle\",\n  0x246e,\n  \"fifteenparen\",\n  0x2482,\n  \"fifteenperiod\",\n  0x2496,\n  \"figuredash\",\n  0x2012,\n  \"filledbox\",\n  0x25a0,\n  \"filledrect\",\n  0x25ac,\n  \"finalkaf\",\n  0x05da,\n  \"finalkafdagesh\",\n  0xfb3a,\n  \"finalkafdageshhebrew\",\n  0xfb3a,\n  \"finalkafhebrew\",\n  0x05da,\n  \"finalmem\",\n  0x05dd,\n  \"finalmemhebrew\",\n  0x05dd,\n  \"finalnun\",\n  0x05df,\n  \"finalnunhebrew\",\n  0x05df,\n  \"finalpe\",\n  0x05e3,\n  \"finalpehebrew\",\n  0x05e3,\n  \"finaltsadi\",\n  0x05e5,\n  \"finaltsadihebrew\",\n  0x05e5,\n  \"firsttonechinese\",\n  0x02c9,\n  \"fisheye\",\n  0x25c9,\n  \"fitacyrillic\",\n  0x0473,\n  \"five\",\n  0x0035,\n  \"fivearabic\",\n  0x0665,\n  \"fivebengali\",\n  0x09eb,\n  \"fivecircle\",\n  0x2464,\n  \"fivecircleinversesansserif\",\n  0x278e,\n  \"fivedeva\",\n  0x096b,\n  \"fiveeighths\",\n  0x215d,\n  \"fivegujarati\",\n  0x0aeb,\n  \"fivegurmukhi\",\n  0x0a6b,\n  \"fivehackarabic\",\n  0x0665,\n  \"fivehangzhou\",\n  0x3025,\n  \"fiveideographicparen\",\n  0x3224,\n  \"fiveinferior\",\n  0x2085,\n  \"fivemonospace\",\n  0xff15,\n  \"fiveoldstyle\",\n  0xf735,\n  \"fiveparen\",\n  0x2478,\n  \"fiveperiod\",\n  0x248c,\n  \"fivepersian\",\n  0x06f5,\n  \"fiveroman\",\n  0x2174,\n  \"fivesuperior\",\n  0x2075,\n  \"fivethai\",\n  0x0e55,\n  \"fl\",\n  0xfb02,\n  \"florin\",\n  0x0192,\n  \"fmonospace\",\n  0xff46,\n  \"fmsquare\",\n  0x3399,\n  \"fofanthai\",\n  0x0e1f,\n  \"fofathai\",\n  0x0e1d,\n  \"fongmanthai\",\n  0x0e4f,\n  \"forall\",\n  0x2200,\n  \"four\",\n  0x0034,\n  \"fourarabic\",\n  0x0664,\n  \"fourbengali\",\n  0x09ea,\n  \"fourcircle\",\n  0x2463,\n  \"fourcircleinversesansserif\",\n  0x278d,\n  \"fourdeva\",\n  0x096a,\n  \"fourgujarati\",\n  0x0aea,\n  \"fourgurmukhi\",\n  0x0a6a,\n  \"fourhackarabic\",\n  0x0664,\n  \"fourhangzhou\",\n  0x3024,\n  \"fourideographicparen\",\n  0x3223,\n  \"fourinferior\",\n  0x2084,\n  \"fourmonospace\",\n  0xff14,\n  \"fournumeratorbengali\",\n  0x09f7,\n  \"fouroldstyle\",\n  0xf734,\n  \"fourparen\",\n  0x2477,\n  \"fourperiod\",\n  0x248b,\n  \"fourpersian\",\n  0x06f4,\n  \"fourroman\",\n  0x2173,\n  \"foursuperior\",\n  0x2074,\n  \"fourteencircle\",\n  0x246d,\n  \"fourteenparen\",\n  0x2481,\n  \"fourteenperiod\",\n  0x2495,\n  \"fourthai\",\n  0x0e54,\n  \"fourthtonechinese\",\n  0x02cb,\n  \"fparen\",\n  0x24a1,\n  \"fraction\",\n  0x2044,\n  \"franc\",\n  0x20a3,\n  \"g\",\n  0x0067,\n  \"gabengali\",\n  0x0997,\n  \"gacute\",\n  0x01f5,\n  \"gadeva\",\n  0x0917,\n  \"gafarabic\",\n  0x06af,\n  \"gaffinalarabic\",\n  0xfb93,\n  \"gafinitialarabic\",\n  0xfb94,\n  \"gafmedialarabic\",\n  0xfb95,\n  \"gagujarati\",\n  0x0a97,\n  \"gagurmukhi\",\n  0x0a17,\n  \"gahiragana\",\n  0x304c,\n  \"gakatakana\",\n  0x30ac,\n  \"gamma\",\n  0x03b3,\n  \"gammalatinsmall\",\n  0x0263,\n  \"gammasuperior\",\n  0x02e0,\n  \"gangiacoptic\",\n  0x03eb,\n  \"gbopomofo\",\n  0x310d,\n  \"gbreve\",\n  0x011f,\n  \"gcaron\",\n  0x01e7,\n  \"gcedilla\",\n  0x0123,\n  \"gcircle\",\n  0x24d6,\n  \"gcircumflex\",\n  0x011d,\n  \"gcommaaccent\",\n  0x0123,\n  \"gdot\",\n  0x0121,\n  \"gdotaccent\",\n  0x0121,\n  \"gecyrillic\",\n  0x0433,\n  \"gehiragana\",\n  0x3052,\n  \"gekatakana\",\n  0x30b2,\n  \"geometricallyequal\",\n  0x2251,\n  \"gereshaccenthebrew\",\n  0x059c,\n  \"gereshhebrew\",\n  0x05f3,\n  \"gereshmuqdamhebrew\",\n  0x059d,\n  \"germandbls\",\n  0x00df,\n  \"gershayimaccenthebrew\",\n  0x059e,\n  \"gershayimhebrew\",\n  0x05f4,\n  \"getamark\",\n  0x3013,\n  \"ghabengali\",\n  0x0998,\n  \"ghadarmenian\",\n  0x0572,\n  \"ghadeva\",\n  0x0918,\n  \"ghagujarati\",\n  0x0a98,\n  \"ghagurmukhi\",\n  0x0a18,\n  \"ghainarabic\",\n  0x063a,\n  \"ghainfinalarabic\",\n  0xfece,\n  \"ghaininitialarabic\",\n  0xfecf,\n  \"ghainmedialarabic\",\n  0xfed0,\n  \"ghemiddlehookcyrillic\",\n  0x0495,\n  \"ghestrokecyrillic\",\n  0x0493,\n  \"gheupturncyrillic\",\n  0x0491,\n  \"ghhadeva\",\n  0x095a,\n  \"ghhagurmukhi\",\n  0x0a5a,\n  \"ghook\",\n  0x0260,\n  \"ghzsquare\",\n  0x3393,\n  \"gihiragana\",\n  0x304e,\n  \"gikatakana\",\n  0x30ae,\n  \"gimarmenian\",\n  0x0563,\n  \"gimel\",\n  0x05d2,\n  \"gimeldagesh\",\n  0xfb32,\n  \"gimeldageshhebrew\",\n  0xfb32,\n  \"gimelhebrew\",\n  0x05d2,\n  \"gjecyrillic\",\n  0x0453,\n  \"glottalinvertedstroke\",\n  0x01be,\n  \"glottalstop\",\n  0x0294,\n  \"glottalstopinverted\",\n  0x0296,\n  \"glottalstopmod\",\n  0x02c0,\n  \"glottalstopreversed\",\n  0x0295,\n  \"glottalstopreversedmod\",\n  0x02c1,\n  \"glottalstopreversedsuperior\",\n  0x02e4,\n  \"glottalstopstroke\",\n  0x02a1,\n  \"glottalstopstrokereversed\",\n  0x02a2,\n  \"gmacron\",\n  0x1e21,\n  \"gmonospace\",\n  0xff47,\n  \"gohiragana\",\n  0x3054,\n  \"gokatakana\",\n  0x30b4,\n  \"gparen\",\n  0x24a2,\n  \"gpasquare\",\n  0x33ac,\n  \"gradient\",\n  0x2207,\n  \"grave\",\n  0x0060,\n  \"gravebelowcmb\",\n  0x0316,\n  \"gravecmb\",\n  0x0300,\n  \"gravecomb\",\n  0x0300,\n  \"gravedeva\",\n  0x0953,\n  \"gravelowmod\",\n  0x02ce,\n  \"gravemonospace\",\n  0xff40,\n  \"gravetonecmb\",\n  0x0340,\n  \"greater\",\n  0x003e,\n  \"greaterequal\",\n  0x2265,\n  \"greaterequalorless\",\n  0x22db,\n  \"greatermonospace\",\n  0xff1e,\n  \"greaterorequivalent\",\n  0x2273,\n  \"greaterorless\",\n  0x2277,\n  \"greateroverequal\",\n  0x2267,\n  \"greatersmall\",\n  0xfe65,\n  \"gscript\",\n  0x0261,\n  \"gstroke\",\n  0x01e5,\n  \"guhiragana\",\n  0x3050,\n  \"guillemotleft\",\n  0x00ab,\n  \"guillemotright\",\n  0x00bb,\n  \"guilsinglleft\",\n  0x2039,\n  \"guilsinglright\",\n  0x203a,\n  \"gukatakana\",\n  0x30b0,\n  \"guramusquare\",\n  0x3318,\n  \"gysquare\",\n  0x33c9,\n  \"h\",\n  0x0068,\n  \"haabkhasiancyrillic\",\n  0x04a9,\n  \"haaltonearabic\",\n  0x06c1,\n  \"habengali\",\n  0x09b9,\n  \"hadescendercyrillic\",\n  0x04b3,\n  \"hadeva\",\n  0x0939,\n  \"hagujarati\",\n  0x0ab9,\n  \"hagurmukhi\",\n  0x0a39,\n  \"haharabic\",\n  0x062d,\n  \"hahfinalarabic\",\n  0xfea2,\n  \"hahinitialarabic\",\n  0xfea3,\n  \"hahiragana\",\n  0x306f,\n  \"hahmedialarabic\",\n  0xfea4,\n  \"haitusquare\",\n  0x332a,\n  \"hakatakana\",\n  0x30cf,\n  \"hakatakanahalfwidth\",\n  0xff8a,\n  \"halantgurmukhi\",\n  0x0a4d,\n  \"hamzaarabic\",\n  0x0621,\n  \"hamzalowarabic\",\n  0x0621,\n  \"hangulfiller\",\n  0x3164,\n  \"hardsigncyrillic\",\n  0x044a,\n  \"harpoonleftbarbup\",\n  0x21bc,\n  \"harpoonrightbarbup\",\n  0x21c0,\n  \"hasquare\",\n  0x33ca,\n  \"hatafpatah\",\n  0x05b2,\n  \"hatafpatah16\",\n  0x05b2,\n  \"hatafpatah23\",\n  0x05b2,\n  \"hatafpatah2f\",\n  0x05b2,\n  \"hatafpatahhebrew\",\n  0x05b2,\n  \"hatafpatahnarrowhebrew\",\n  0x05b2,\n  \"hatafpatahquarterhebrew\",\n  0x05b2,\n  \"hatafpatahwidehebrew\",\n  0x05b2,\n  \"hatafqamats\",\n  0x05b3,\n  \"hatafqamats1b\",\n  0x05b3,\n  \"hatafqamats28\",\n  0x05b3,\n  \"hatafqamats34\",\n  0x05b3,\n  \"hatafqamatshebrew\",\n  0x05b3,\n  \"hatafqamatsnarrowhebrew\",\n  0x05b3,\n  \"hatafqamatsquarterhebrew\",\n  0x05b3,\n  \"hatafqamatswidehebrew\",\n  0x05b3,\n  \"hatafsegol\",\n  0x05b1,\n  \"hatafsegol17\",\n  0x05b1,\n  \"hatafsegol24\",\n  0x05b1,\n  \"hatafsegol30\",\n  0x05b1,\n  \"hatafsegolhebrew\",\n  0x05b1,\n  \"hatafsegolnarrowhebrew\",\n  0x05b1,\n  \"hatafsegolquarterhebrew\",\n  0x05b1,\n  \"hatafsegolwidehebrew\",\n  0x05b1,\n  \"hbar\",\n  0x0127,\n  \"hbopomofo\",\n  0x310f,\n  \"hbrevebelow\",\n  0x1e2b,\n  \"hcedilla\",\n  0x1e29,\n  \"hcircle\",\n  0x24d7,\n  \"hcircumflex\",\n  0x0125,\n  \"hdieresis\",\n  0x1e27,\n  \"hdotaccent\",\n  0x1e23,\n  \"hdotbelow\",\n  0x1e25,\n  \"he\",\n  0x05d4,\n  \"heart\",\n  0x2665,\n  \"heartsuitblack\",\n  0x2665,\n  \"heartsuitwhite\",\n  0x2661,\n  \"hedagesh\",\n  0xfb34,\n  \"hedageshhebrew\",\n  0xfb34,\n  \"hehaltonearabic\",\n  0x06c1,\n  \"heharabic\",\n  0x0647,\n  \"hehebrew\",\n  0x05d4,\n  \"hehfinalaltonearabic\",\n  0xfba7,\n  \"hehfinalalttwoarabic\",\n  0xfeea,\n  \"hehfinalarabic\",\n  0xfeea,\n  \"hehhamzaabovefinalarabic\",\n  0xfba5,\n  \"hehhamzaaboveisolatedarabic\",\n  0xfba4,\n  \"hehinitialaltonearabic\",\n  0xfba8,\n  \"hehinitialarabic\",\n  0xfeeb,\n  \"hehiragana\",\n  0x3078,\n  \"hehmedialaltonearabic\",\n  0xfba9,\n  \"hehmedialarabic\",\n  0xfeec,\n  \"heiseierasquare\",\n  0x337b,\n  \"hekatakana\",\n  0x30d8,\n  \"hekatakanahalfwidth\",\n  0xff8d,\n  \"hekutaarusquare\",\n  0x3336,\n  \"henghook\",\n  0x0267,\n  \"herutusquare\",\n  0x3339,\n  \"het\",\n  0x05d7,\n  \"hethebrew\",\n  0x05d7,\n  \"hhook\",\n  0x0266,\n  \"hhooksuperior\",\n  0x02b1,\n  \"hieuhacirclekorean\",\n  0x327b,\n  \"hieuhaparenkorean\",\n  0x321b,\n  \"hieuhcirclekorean\",\n  0x326d,\n  \"hieuhkorean\",\n  0x314e,\n  \"hieuhparenkorean\",\n  0x320d,\n  \"hihiragana\",\n  0x3072,\n  \"hikatakana\",\n  0x30d2,\n  \"hikatakanahalfwidth\",\n  0xff8b,\n  \"hiriq\",\n  0x05b4,\n  \"hiriq14\",\n  0x05b4,\n  \"hiriq21\",\n  0x05b4,\n  \"hiriq2d\",\n  0x05b4,\n  \"hiriqhebrew\",\n  0x05b4,\n  \"hiriqnarrowhebrew\",\n  0x05b4,\n  \"hiriqquarterhebrew\",\n  0x05b4,\n  \"hiriqwidehebrew\",\n  0x05b4,\n  \"hlinebelow\",\n  0x1e96,\n  \"hmonospace\",\n  0xff48,\n  \"hoarmenian\",\n  0x0570,\n  \"hohipthai\",\n  0x0e2b,\n  \"hohiragana\",\n  0x307b,\n  \"hokatakana\",\n  0x30db,\n  \"hokatakanahalfwidth\",\n  0xff8e,\n  \"holam\",\n  0x05b9,\n  \"holam19\",\n  0x05b9,\n  \"holam26\",\n  0x05b9,\n  \"holam32\",\n  0x05b9,\n  \"holamhebrew\",\n  0x05b9,\n  \"holamnarrowhebrew\",\n  0x05b9,\n  \"holamquarterhebrew\",\n  0x05b9,\n  \"holamwidehebrew\",\n  0x05b9,\n  \"honokhukthai\",\n  0x0e2e,\n  \"hookabovecomb\",\n  0x0309,\n  \"hookcmb\",\n  0x0309,\n  \"hookpalatalizedbelowcmb\",\n  0x0321,\n  \"hookretroflexbelowcmb\",\n  0x0322,\n  \"hoonsquare\",\n  0x3342,\n  \"horicoptic\",\n  0x03e9,\n  \"horizontalbar\",\n  0x2015,\n  \"horncmb\",\n  0x031b,\n  \"hotsprings\",\n  0x2668,\n  \"house\",\n  0x2302,\n  \"hparen\",\n  0x24a3,\n  \"hsuperior\",\n  0x02b0,\n  \"hturned\",\n  0x0265,\n  \"huhiragana\",\n  0x3075,\n  \"huiitosquare\",\n  0x3333,\n  \"hukatakana\",\n  0x30d5,\n  \"hukatakanahalfwidth\",\n  0xff8c,\n  \"hungarumlaut\",\n  0x02dd,\n  \"hungarumlautcmb\",\n  0x030b,\n  \"hv\",\n  0x0195,\n  \"hyphen\",\n  0x002d,\n  \"hypheninferior\",\n  0xf6e5,\n  \"hyphenmonospace\",\n  0xff0d,\n  \"hyphensmall\",\n  0xfe63,\n  \"hyphensuperior\",\n  0xf6e6,\n  \"hyphentwo\",\n  0x2010,\n  \"i\",\n  0x0069,\n  \"iacute\",\n  0x00ed,\n  \"iacyrillic\",\n  0x044f,\n  \"ibengali\",\n  0x0987,\n  \"ibopomofo\",\n  0x3127,\n  \"ibreve\",\n  0x012d,\n  \"icaron\",\n  0x01d0,\n  \"icircle\",\n  0x24d8,\n  \"icircumflex\",\n  0x00ee,\n  \"icyrillic\",\n  0x0456,\n  \"idblgrave\",\n  0x0209,\n  \"ideographearthcircle\",\n  0x328f,\n  \"ideographfirecircle\",\n  0x328b,\n  \"ideographicallianceparen\",\n  0x323f,\n  \"ideographiccallparen\",\n  0x323a,\n  \"ideographiccentrecircle\",\n  0x32a5,\n  \"ideographicclose\",\n  0x3006,\n  \"ideographiccomma\",\n  0x3001,\n  \"ideographiccommaleft\",\n  0xff64,\n  \"ideographiccongratulationparen\",\n  0x3237,\n  \"ideographiccorrectcircle\",\n  0x32a3,\n  \"ideographicearthparen\",\n  0x322f,\n  \"ideographicenterpriseparen\",\n  0x323d,\n  \"ideographicexcellentcircle\",\n  0x329d,\n  \"ideographicfestivalparen\",\n  0x3240,\n  \"ideographicfinancialcircle\",\n  0x3296,\n  \"ideographicfinancialparen\",\n  0x3236,\n  \"ideographicfireparen\",\n  0x322b,\n  \"ideographichaveparen\",\n  0x3232,\n  \"ideographichighcircle\",\n  0x32a4,\n  \"ideographiciterationmark\",\n  0x3005,\n  \"ideographiclaborcircle\",\n  0x3298,\n  \"ideographiclaborparen\",\n  0x3238,\n  \"ideographicleftcircle\",\n  0x32a7,\n  \"ideographiclowcircle\",\n  0x32a6,\n  \"ideographicmedicinecircle\",\n  0x32a9,\n  \"ideographicmetalparen\",\n  0x322e,\n  \"ideographicmoonparen\",\n  0x322a,\n  \"ideographicnameparen\",\n  0x3234,\n  \"ideographicperiod\",\n  0x3002,\n  \"ideographicprintcircle\",\n  0x329e,\n  \"ideographicreachparen\",\n  0x3243,\n  \"ideographicrepresentparen\",\n  0x3239,\n  \"ideographicresourceparen\",\n  0x323e,\n  \"ideographicrightcircle\",\n  0x32a8,\n  \"ideographicsecretcircle\",\n  0x3299,\n  \"ideographicselfparen\",\n  0x3242,\n  \"ideographicsocietyparen\",\n  0x3233,\n  \"ideographicspace\",\n  0x3000,\n  \"ideographicspecialparen\",\n  0x3235,\n  \"ideographicstockparen\",\n  0x3231,\n  \"ideographicstudyparen\",\n  0x323b,\n  \"ideographicsunparen\",\n  0x3230,\n  \"ideographicsuperviseparen\",\n  0x323c,\n  \"ideographicwaterparen\",\n  0x322c,\n  \"ideographicwoodparen\",\n  0x322d,\n  \"ideographiczero\",\n  0x3007,\n  \"ideographmetalcircle\",\n  0x328e,\n  \"ideographmooncircle\",\n  0x328a,\n  \"ideographnamecircle\",\n  0x3294,\n  \"ideographsuncircle\",\n  0x3290,\n  \"ideographwatercircle\",\n  0x328c,\n  \"ideographwoodcircle\",\n  0x328d,\n  \"ideva\",\n  0x0907,\n  \"idieresis\",\n  0x00ef,\n  \"idieresisacute\",\n  0x1e2f,\n  \"idieresiscyrillic\",\n  0x04e5,\n  \"idotbelow\",\n  0x1ecb,\n  \"iebrevecyrillic\",\n  0x04d7,\n  \"iecyrillic\",\n  0x0435,\n  \"ieungacirclekorean\",\n  0x3275,\n  \"ieungaparenkorean\",\n  0x3215,\n  \"ieungcirclekorean\",\n  0x3267,\n  \"ieungkorean\",\n  0x3147,\n  \"ieungparenkorean\",\n  0x3207,\n  \"igrave\",\n  0x00ec,\n  \"igujarati\",\n  0x0a87,\n  \"igurmukhi\",\n  0x0a07,\n  \"ihiragana\",\n  0x3044,\n  \"ihookabove\",\n  0x1ec9,\n  \"iibengali\",\n  0x0988,\n  \"iicyrillic\",\n  0x0438,\n  \"iideva\",\n  0x0908,\n  \"iigujarati\",\n  0x0a88,\n  \"iigurmukhi\",\n  0x0a08,\n  \"iimatragurmukhi\",\n  0x0a40,\n  \"iinvertedbreve\",\n  0x020b,\n  \"iishortcyrillic\",\n  0x0439,\n  \"iivowelsignbengali\",\n  0x09c0,\n  \"iivowelsigndeva\",\n  0x0940,\n  \"iivowelsigngujarati\",\n  0x0ac0,\n  \"ij\",\n  0x0133,\n  \"ikatakana\",\n  0x30a4,\n  \"ikatakanahalfwidth\",\n  0xff72,\n  \"ikorean\",\n  0x3163,\n  \"ilde\",\n  0x02dc,\n  \"iluyhebrew\",\n  0x05ac,\n  \"imacron\",\n  0x012b,\n  \"imacroncyrillic\",\n  0x04e3,\n  \"imageorapproximatelyequal\",\n  0x2253,\n  \"imatragurmukhi\",\n  0x0a3f,\n  \"imonospace\",\n  0xff49,\n  \"increment\",\n  0x2206,\n  \"infinity\",\n  0x221e,\n  \"iniarmenian\",\n  0x056b,\n  \"integral\",\n  0x222b,\n  \"integralbottom\",\n  0x2321,\n  \"integralbt\",\n  0x2321,\n  \"integralex\",\n  0xf8f5,\n  \"integraltop\",\n  0x2320,\n  \"integraltp\",\n  0x2320,\n  \"intersection\",\n  0x2229,\n  \"intisquare\",\n  0x3305,\n  \"invbullet\",\n  0x25d8,\n  \"invcircle\",\n  0x25d9,\n  \"invsmileface\",\n  0x263b,\n  \"iocyrillic\",\n  0x0451,\n  \"iogonek\",\n  0x012f,\n  \"iota\",\n  0x03b9,\n  \"iotadieresis\",\n  0x03ca,\n  \"iotadieresistonos\",\n  0x0390,\n  \"iotalatin\",\n  0x0269,\n  \"iotatonos\",\n  0x03af,\n  \"iparen\",\n  0x24a4,\n  \"irigurmukhi\",\n  0x0a72,\n  \"ismallhiragana\",\n  0x3043,\n  \"ismallkatakana\",\n  0x30a3,\n  \"ismallkatakanahalfwidth\",\n  0xff68,\n  \"issharbengali\",\n  0x09fa,\n  \"istroke\",\n  0x0268,\n  \"isuperior\",\n  0xf6ed,\n  \"iterationhiragana\",\n  0x309d,\n  \"iterationkatakana\",\n  0x30fd,\n  \"itilde\",\n  0x0129,\n  \"itildebelow\",\n  0x1e2d,\n  \"iubopomofo\",\n  0x3129,\n  \"iucyrillic\",\n  0x044e,\n  \"ivowelsignbengali\",\n  0x09bf,\n  \"ivowelsigndeva\",\n  0x093f,\n  \"ivowelsigngujarati\",\n  0x0abf,\n  \"izhitsacyrillic\",\n  0x0475,\n  \"izhitsadblgravecyrillic\",\n  0x0477,\n  \"j\",\n  0x006a,\n  \"jaarmenian\",\n  0x0571,\n  \"jabengali\",\n  0x099c,\n  \"jadeva\",\n  0x091c,\n  \"jagujarati\",\n  0x0a9c,\n  \"jagurmukhi\",\n  0x0a1c,\n  \"jbopomofo\",\n  0x3110,\n  \"jcaron\",\n  0x01f0,\n  \"jcircle\",\n  0x24d9,\n  \"jcircumflex\",\n  0x0135,\n  \"jcrossedtail\",\n  0x029d,\n  \"jdotlessstroke\",\n  0x025f,\n  \"jecyrillic\",\n  0x0458,\n  \"jeemarabic\",\n  0x062c,\n  \"jeemfinalarabic\",\n  0xfe9e,\n  \"jeeminitialarabic\",\n  0xfe9f,\n  \"jeemmedialarabic\",\n  0xfea0,\n  \"jeharabic\",\n  0x0698,\n  \"jehfinalarabic\",\n  0xfb8b,\n  \"jhabengali\",\n  0x099d,\n  \"jhadeva\",\n  0x091d,\n  \"jhagujarati\",\n  0x0a9d,\n  \"jhagurmukhi\",\n  0x0a1d,\n  \"jheharmenian\",\n  0x057b,\n  \"jis\",\n  0x3004,\n  \"jmonospace\",\n  0xff4a,\n  \"jparen\",\n  0x24a5,\n  \"jsuperior\",\n  0x02b2,\n  \"k\",\n  0x006b,\n  \"kabashkircyrillic\",\n  0x04a1,\n  \"kabengali\",\n  0x0995,\n  \"kacute\",\n  0x1e31,\n  \"kacyrillic\",\n  0x043a,\n  \"kadescendercyrillic\",\n  0x049b,\n  \"kadeva\",\n  0x0915,\n  \"kaf\",\n  0x05db,\n  \"kafarabic\",\n  0x0643,\n  \"kafdagesh\",\n  0xfb3b,\n  \"kafdageshhebrew\",\n  0xfb3b,\n  \"kaffinalarabic\",\n  0xfeda,\n  \"kafhebrew\",\n  0x05db,\n  \"kafinitialarabic\",\n  0xfedb,\n  \"kafmedialarabic\",\n  0xfedc,\n  \"kafrafehebrew\",\n  0xfb4d,\n  \"kagujarati\",\n  0x0a95,\n  \"kagurmukhi\",\n  0x0a15,\n  \"kahiragana\",\n  0x304b,\n  \"kahookcyrillic\",\n  0x04c4,\n  \"kakatakana\",\n  0x30ab,\n  \"kakatakanahalfwidth\",\n  0xff76,\n  \"kappa\",\n  0x03ba,\n  \"kappasymbolgreek\",\n  0x03f0,\n  \"kapyeounmieumkorean\",\n  0x3171,\n  \"kapyeounphieuphkorean\",\n  0x3184,\n  \"kapyeounpieupkorean\",\n  0x3178,\n  \"kapyeounssangpieupkorean\",\n  0x3179,\n  \"karoriisquare\",\n  0x330d,\n  \"kashidaautoarabic\",\n  0x0640,\n  \"kashidaautonosidebearingarabic\",\n  0x0640,\n  \"kasmallkatakana\",\n  0x30f5,\n  \"kasquare\",\n  0x3384,\n  \"kasraarabic\",\n  0x0650,\n  \"kasratanarabic\",\n  0x064d,\n  \"kastrokecyrillic\",\n  0x049f,\n  \"katahiraprolongmarkhalfwidth\",\n  0xff70,\n  \"kaverticalstrokecyrillic\",\n  0x049d,\n  \"kbopomofo\",\n  0x310e,\n  \"kcalsquare\",\n  0x3389,\n  \"kcaron\",\n  0x01e9,\n  \"kcedilla\",\n  0x0137,\n  \"kcircle\",\n  0x24da,\n  \"kcommaaccent\",\n  0x0137,\n  \"kdotbelow\",\n  0x1e33,\n  \"keharmenian\",\n  0x0584,\n  \"kehiragana\",\n  0x3051,\n  \"kekatakana\",\n  0x30b1,\n  \"kekatakanahalfwidth\",\n  0xff79,\n  \"kenarmenian\",\n  0x056f,\n  \"kesmallkatakana\",\n  0x30f6,\n  \"kgreenlandic\",\n  0x0138,\n  \"khabengali\",\n  0x0996,\n  \"khacyrillic\",\n  0x0445,\n  \"khadeva\",\n  0x0916,\n  \"khagujarati\",\n  0x0a96,\n  \"khagurmukhi\",\n  0x0a16,\n  \"khaharabic\",\n  0x062e,\n  \"khahfinalarabic\",\n  0xfea6,\n  \"khahinitialarabic\",\n  0xfea7,\n  \"khahmedialarabic\",\n  0xfea8,\n  \"kheicoptic\",\n  0x03e7,\n  \"khhadeva\",\n  0x0959,\n  \"khhagurmukhi\",\n  0x0a59,\n  \"khieukhacirclekorean\",\n  0x3278,\n  \"khieukhaparenkorean\",\n  0x3218,\n  \"khieukhcirclekorean\",\n  0x326a,\n  \"khieukhkorean\",\n  0x314b,\n  \"khieukhparenkorean\",\n  0x320a,\n  \"khokhaithai\",\n  0x0e02,\n  \"khokhonthai\",\n  0x0e05,\n  \"khokhuatthai\",\n  0x0e03,\n  \"khokhwaithai\",\n  0x0e04,\n  \"khomutthai\",\n  0x0e5b,\n  \"khook\",\n  0x0199,\n  \"khorakhangthai\",\n  0x0e06,\n  \"khzsquare\",\n  0x3391,\n  \"kihiragana\",\n  0x304d,\n  \"kikatakana\",\n  0x30ad,\n  \"kikatakanahalfwidth\",\n  0xff77,\n  \"kiroguramusquare\",\n  0x3315,\n  \"kiromeetorusquare\",\n  0x3316,\n  \"kirosquare\",\n  0x3314,\n  \"kiyeokacirclekorean\",\n  0x326e,\n  \"kiyeokaparenkorean\",\n  0x320e,\n  \"kiyeokcirclekorean\",\n  0x3260,\n  \"kiyeokkorean\",\n  0x3131,\n  \"kiyeokparenkorean\",\n  0x3200,\n  \"kiyeoksioskorean\",\n  0x3133,\n  \"kjecyrillic\",\n  0x045c,\n  \"klinebelow\",\n  0x1e35,\n  \"klsquare\",\n  0x3398,\n  \"kmcubedsquare\",\n  0x33a6,\n  \"kmonospace\",\n  0xff4b,\n  \"kmsquaredsquare\",\n  0x33a2,\n  \"kohiragana\",\n  0x3053,\n  \"kohmsquare\",\n  0x33c0,\n  \"kokaithai\",\n  0x0e01,\n  \"kokatakana\",\n  0x30b3,\n  \"kokatakanahalfwidth\",\n  0xff7a,\n  \"kooposquare\",\n  0x331e,\n  \"koppacyrillic\",\n  0x0481,\n  \"koreanstandardsymbol\",\n  0x327f,\n  \"koroniscmb\",\n  0x0343,\n  \"kparen\",\n  0x24a6,\n  \"kpasquare\",\n  0x33aa,\n  \"ksicyrillic\",\n  0x046f,\n  \"ktsquare\",\n  0x33cf,\n  \"kturned\",\n  0x029e,\n  \"kuhiragana\",\n  0x304f,\n  \"kukatakana\",\n  0x30af,\n  \"kukatakanahalfwidth\",\n  0xff78,\n  \"kvsquare\",\n  0x33b8,\n  \"kwsquare\",\n  0x33be,\n  \"l\",\n  0x006c,\n  \"labengali\",\n  0x09b2,\n  \"lacute\",\n  0x013a,\n  \"ladeva\",\n  0x0932,\n  \"lagujarati\",\n  0x0ab2,\n  \"lagurmukhi\",\n  0x0a32,\n  \"lakkhangyaothai\",\n  0x0e45,\n  \"lamaleffinalarabic\",\n  0xfefc,\n  \"lamalefhamzaabovefinalarabic\",\n  0xfef8,\n  \"lamalefhamzaaboveisolatedarabic\",\n  0xfef7,\n  \"lamalefhamzabelowfinalarabic\",\n  0xfefa,\n  \"lamalefhamzabelowisolatedarabic\",\n  0xfef9,\n  \"lamalefisolatedarabic\",\n  0xfefb,\n  \"lamalefmaddaabovefinalarabic\",\n  0xfef6,\n  \"lamalefmaddaaboveisolatedarabic\",\n  0xfef5,\n  \"lamarabic\",\n  0x0644,\n  \"lambda\",\n  0x03bb,\n  \"lambdastroke\",\n  0x019b,\n  \"lamed\",\n  0x05dc,\n  \"lameddagesh\",\n  0xfb3c,\n  \"lameddageshhebrew\",\n  0xfb3c,\n  \"lamedhebrew\",\n  0x05dc,\n  \"lamfinalarabic\",\n  0xfede,\n  \"lamhahinitialarabic\",\n  0xfcca,\n  \"laminitialarabic\",\n  0xfedf,\n  \"lamjeeminitialarabic\",\n  0xfcc9,\n  \"lamkhahinitialarabic\",\n  0xfccb,\n  \"lamlamhehisolatedarabic\",\n  0xfdf2,\n  \"lammedialarabic\",\n  0xfee0,\n  \"lammeemhahinitialarabic\",\n  0xfd88,\n  \"lammeeminitialarabic\",\n  0xfccc,\n  \"largecircle\",\n  0x25ef,\n  \"lbar\",\n  0x019a,\n  \"lbelt\",\n  0x026c,\n  \"lbopomofo\",\n  0x310c,\n  \"lcaron\",\n  0x013e,\n  \"lcedilla\",\n  0x013c,\n  \"lcircle\",\n  0x24db,\n  \"lcircumflexbelow\",\n  0x1e3d,\n  \"lcommaaccent\",\n  0x013c,\n  \"ldot\",\n  0x0140,\n  \"ldotaccent\",\n  0x0140,\n  \"ldotbelow\",\n  0x1e37,\n  \"ldotbelowmacron\",\n  0x1e39,\n  \"leftangleabovecmb\",\n  0x031a,\n  \"lefttackbelowcmb\",\n  0x0318,\n  \"less\",\n  0x003c,\n  \"lessequal\",\n  0x2264,\n  \"lessequalorgreater\",\n  0x22da,\n  \"lessmonospace\",\n  0xff1c,\n  \"lessorequivalent\",\n  0x2272,\n  \"lessorgreater\",\n  0x2276,\n  \"lessoverequal\",\n  0x2266,\n  \"lesssmall\",\n  0xfe64,\n  \"lezh\",\n  0x026e,\n  \"lfblock\",\n  0x258c,\n  \"lhookretroflex\",\n  0x026d,\n  \"lira\",\n  0x20a4,\n  \"liwnarmenian\",\n  0x056c,\n  \"lj\",\n  0x01c9,\n  \"ljecyrillic\",\n  0x0459,\n  \"ll\",\n  0xf6c0,\n  \"lladeva\",\n  0x0933,\n  \"llagujarati\",\n  0x0ab3,\n  \"llinebelow\",\n  0x1e3b,\n  \"llladeva\",\n  0x0934,\n  \"llvocalicbengali\",\n  0x09e1,\n  \"llvocalicdeva\",\n  0x0961,\n  \"llvocalicvowelsignbengali\",\n  0x09e3,\n  \"llvocalicvowelsigndeva\",\n  0x0963,\n  \"lmiddletilde\",\n  0x026b,\n  \"lmonospace\",\n  0xff4c,\n  \"lmsquare\",\n  0x33d0,\n  \"lochulathai\",\n  0x0e2c,\n  \"logicaland\",\n  0x2227,\n  \"logicalnot\",\n  0x00ac,\n  \"logicalnotreversed\",\n  0x2310,\n  \"logicalor\",\n  0x2228,\n  \"lolingthai\",\n  0x0e25,\n  \"longs\",\n  0x017f,\n  \"lowlinecenterline\",\n  0xfe4e,\n  \"lowlinecmb\",\n  0x0332,\n  \"lowlinedashed\",\n  0xfe4d,\n  \"lozenge\",\n  0x25ca,\n  \"lparen\",\n  0x24a7,\n  \"lslash\",\n  0x0142,\n  \"lsquare\",\n  0x2113,\n  \"lsuperior\",\n  0xf6ee,\n  \"ltshade\",\n  0x2591,\n  \"luthai\",\n  0x0e26,\n  \"lvocalicbengali\",\n  0x098c,\n  \"lvocalicdeva\",\n  0x090c,\n  \"lvocalicvowelsignbengali\",\n  0x09e2,\n  \"lvocalicvowelsigndeva\",\n  0x0962,\n  \"lxsquare\",\n  0x33d3,\n  \"m\",\n  0x006d,\n  \"mabengali\",\n  0x09ae,\n  \"macron\",\n  0x00af,\n  \"macronbelowcmb\",\n  0x0331,\n  \"macroncmb\",\n  0x0304,\n  \"macronlowmod\",\n  0x02cd,\n  \"macronmonospace\",\n  0xffe3,\n  \"macute\",\n  0x1e3f,\n  \"madeva\",\n  0x092e,\n  \"magujarati\",\n  0x0aae,\n  \"magurmukhi\",\n  0x0a2e,\n  \"mahapakhhebrew\",\n  0x05a4,\n  \"mahapakhlefthebrew\",\n  0x05a4,\n  \"mahiragana\",\n  0x307e,\n  \"maichattawalowleftthai\",\n  0xf895,\n  \"maichattawalowrightthai\",\n  0xf894,\n  \"maichattawathai\",\n  0x0e4b,\n  \"maichattawaupperleftthai\",\n  0xf893,\n  \"maieklowleftthai\",\n  0xf88c,\n  \"maieklowrightthai\",\n  0xf88b,\n  \"maiekthai\",\n  0x0e48,\n  \"maiekupperleftthai\",\n  0xf88a,\n  \"maihanakatleftthai\",\n  0xf884,\n  \"maihanakatthai\",\n  0x0e31,\n  \"maitaikhuleftthai\",\n  0xf889,\n  \"maitaikhuthai\",\n  0x0e47,\n  \"maitholowleftthai\",\n  0xf88f,\n  \"maitholowrightthai\",\n  0xf88e,\n  \"maithothai\",\n  0x0e49,\n  \"maithoupperleftthai\",\n  0xf88d,\n  \"maitrilowleftthai\",\n  0xf892,\n  \"maitrilowrightthai\",\n  0xf891,\n  \"maitrithai\",\n  0x0e4a,\n  \"maitriupperleftthai\",\n  0xf890,\n  \"maiyamokthai\",\n  0x0e46,\n  \"makatakana\",\n  0x30de,\n  \"makatakanahalfwidth\",\n  0xff8f,\n  \"male\",\n  0x2642,\n  \"mansyonsquare\",\n  0x3347,\n  \"maqafhebrew\",\n  0x05be,\n  \"mars\",\n  0x2642,\n  \"masoracirclehebrew\",\n  0x05af,\n  \"masquare\",\n  0x3383,\n  \"mbopomofo\",\n  0x3107,\n  \"mbsquare\",\n  0x33d4,\n  \"mcircle\",\n  0x24dc,\n  \"mcubedsquare\",\n  0x33a5,\n  \"mdotaccent\",\n  0x1e41,\n  \"mdotbelow\",\n  0x1e43,\n  \"meemarabic\",\n  0x0645,\n  \"meemfinalarabic\",\n  0xfee2,\n  \"meeminitialarabic\",\n  0xfee3,\n  \"meemmedialarabic\",\n  0xfee4,\n  \"meemmeeminitialarabic\",\n  0xfcd1,\n  \"meemmeemisolatedarabic\",\n  0xfc48,\n  \"meetorusquare\",\n  0x334d,\n  \"mehiragana\",\n  0x3081,\n  \"meizierasquare\",\n  0x337e,\n  \"mekatakana\",\n  0x30e1,\n  \"mekatakanahalfwidth\",\n  0xff92,\n  \"mem\",\n  0x05de,\n  \"memdagesh\",\n  0xfb3e,\n  \"memdageshhebrew\",\n  0xfb3e,\n  \"memhebrew\",\n  0x05de,\n  \"menarmenian\",\n  0x0574,\n  \"merkhahebrew\",\n  0x05a5,\n  \"merkhakefulahebrew\",\n  0x05a6,\n  \"merkhakefulalefthebrew\",\n  0x05a6,\n  \"merkhalefthebrew\",\n  0x05a5,\n  \"mhook\",\n  0x0271,\n  \"mhzsquare\",\n  0x3392,\n  \"middledotkatakanahalfwidth\",\n  0xff65,\n  \"middot\",\n  0x00b7,\n  \"mieumacirclekorean\",\n  0x3272,\n  \"mieumaparenkorean\",\n  0x3212,\n  \"mieumcirclekorean\",\n  0x3264,\n  \"mieumkorean\",\n  0x3141,\n  \"mieumpansioskorean\",\n  0x3170,\n  \"mieumparenkorean\",\n  0x3204,\n  \"mieumpieupkorean\",\n  0x316e,\n  \"mieumsioskorean\",\n  0x316f,\n  \"mihiragana\",\n  0x307f,\n  \"mikatakana\",\n  0x30df,\n  \"mikatakanahalfwidth\",\n  0xff90,\n  \"minus\",\n  0x2212,\n  \"minusbelowcmb\",\n  0x0320,\n  \"minuscircle\",\n  0x2296,\n  \"minusmod\",\n  0x02d7,\n  \"minusplus\",\n  0x2213,\n  \"minute\",\n  0x2032,\n  \"miribaarusquare\",\n  0x334a,\n  \"mirisquare\",\n  0x3349,\n  \"mlonglegturned\",\n  0x0270,\n  \"mlsquare\",\n  0x3396,\n  \"mmcubedsquare\",\n  0x33a3,\n  \"mmonospace\",\n  0xff4d,\n  \"mmsquaredsquare\",\n  0x339f,\n  \"mohiragana\",\n  0x3082,\n  \"mohmsquare\",\n  0x33c1,\n  \"mokatakana\",\n  0x30e2,\n  \"mokatakanahalfwidth\",\n  0xff93,\n  \"molsquare\",\n  0x33d6,\n  \"momathai\",\n  0x0e21,\n  \"moverssquare\",\n  0x33a7,\n  \"moverssquaredsquare\",\n  0x33a8,\n  \"mparen\",\n  0x24a8,\n  \"mpasquare\",\n  0x33ab,\n  \"mssquare\",\n  0x33b3,\n  \"msuperior\",\n  0xf6ef,\n  \"mturned\",\n  0x026f,\n  \"mu\",\n  0x00b5,\n  \"mu1\",\n  0x00b5,\n  \"muasquare\",\n  0x3382,\n  \"muchgreater\",\n  0x226b,\n  \"muchless\",\n  0x226a,\n  \"mufsquare\",\n  0x338c,\n  \"mugreek\",\n  0x03bc,\n  \"mugsquare\",\n  0x338d,\n  \"muhiragana\",\n  0x3080,\n  \"mukatakana\",\n  0x30e0,\n  \"mukatakanahalfwidth\",\n  0xff91,\n  \"mulsquare\",\n  0x3395,\n  \"multiply\",\n  0x00d7,\n  \"mumsquare\",\n  0x339b,\n  \"munahhebrew\",\n  0x05a3,\n  \"munahlefthebrew\",\n  0x05a3,\n  \"musicalnote\",\n  0x266a,\n  \"musicalnotedbl\",\n  0x266b,\n  \"musicflatsign\",\n  0x266d,\n  \"musicsharpsign\",\n  0x266f,\n  \"mussquare\",\n  0x33b2,\n  \"muvsquare\",\n  0x33b6,\n  \"muwsquare\",\n  0x33bc,\n  \"mvmegasquare\",\n  0x33b9,\n  \"mvsquare\",\n  0x33b7,\n  \"mwmegasquare\",\n  0x33bf,\n  \"mwsquare\",\n  0x33bd,\n  \"n\",\n  0x006e,\n  \"nabengali\",\n  0x09a8,\n  \"nabla\",\n  0x2207,\n  \"nacute\",\n  0x0144,\n  \"nadeva\",\n  0x0928,\n  \"nagujarati\",\n  0x0aa8,\n  \"nagurmukhi\",\n  0x0a28,\n  \"nahiragana\",\n  0x306a,\n  \"nakatakana\",\n  0x30ca,\n  \"nakatakanahalfwidth\",\n  0xff85,\n  \"napostrophe\",\n  0x0149,\n  \"nasquare\",\n  0x3381,\n  \"nbopomofo\",\n  0x310b,\n  \"nbspace\",\n  0x00a0,\n  \"ncaron\",\n  0x0148,\n  \"ncedilla\",\n  0x0146,\n  \"ncircle\",\n  0x24dd,\n  \"ncircumflexbelow\",\n  0x1e4b,\n  \"ncommaaccent\",\n  0x0146,\n  \"ndotaccent\",\n  0x1e45,\n  \"ndotbelow\",\n  0x1e47,\n  \"nehiragana\",\n  0x306d,\n  \"nekatakana\",\n  0x30cd,\n  \"nekatakanahalfwidth\",\n  0xff88,\n  \"newsheqelsign\",\n  0x20aa,\n  \"nfsquare\",\n  0x338b,\n  \"ngabengali\",\n  0x0999,\n  \"ngadeva\",\n  0x0919,\n  \"ngagujarati\",\n  0x0a99,\n  \"ngagurmukhi\",\n  0x0a19,\n  \"ngonguthai\",\n  0x0e07,\n  \"nhiragana\",\n  0x3093,\n  \"nhookleft\",\n  0x0272,\n  \"nhookretroflex\",\n  0x0273,\n  \"nieunacirclekorean\",\n  0x326f,\n  \"nieunaparenkorean\",\n  0x320f,\n  \"nieuncieuckorean\",\n  0x3135,\n  \"nieuncirclekorean\",\n  0x3261,\n  \"nieunhieuhkorean\",\n  0x3136,\n  \"nieunkorean\",\n  0x3134,\n  \"nieunpansioskorean\",\n  0x3168,\n  \"nieunparenkorean\",\n  0x3201,\n  \"nieunsioskorean\",\n  0x3167,\n  \"nieuntikeutkorean\",\n  0x3166,\n  \"nihiragana\",\n  0x306b,\n  \"nikatakana\",\n  0x30cb,\n  \"nikatakanahalfwidth\",\n  0xff86,\n  \"nikhahitleftthai\",\n  0xf899,\n  \"nikhahitthai\",\n  0x0e4d,\n  \"nine\",\n  0x0039,\n  \"ninearabic\",\n  0x0669,\n  \"ninebengali\",\n  0x09ef,\n  \"ninecircle\",\n  0x2468,\n  \"ninecircleinversesansserif\",\n  0x2792,\n  \"ninedeva\",\n  0x096f,\n  \"ninegujarati\",\n  0x0aef,\n  \"ninegurmukhi\",\n  0x0a6f,\n  \"ninehackarabic\",\n  0x0669,\n  \"ninehangzhou\",\n  0x3029,\n  \"nineideographicparen\",\n  0x3228,\n  \"nineinferior\",\n  0x2089,\n  \"ninemonospace\",\n  0xff19,\n  \"nineoldstyle\",\n  0xf739,\n  \"nineparen\",\n  0x247c,\n  \"nineperiod\",\n  0x2490,\n  \"ninepersian\",\n  0x06f9,\n  \"nineroman\",\n  0x2178,\n  \"ninesuperior\",\n  0x2079,\n  \"nineteencircle\",\n  0x2472,\n  \"nineteenparen\",\n  0x2486,\n  \"nineteenperiod\",\n  0x249a,\n  \"ninethai\",\n  0x0e59,\n  \"nj\",\n  0x01cc,\n  \"njecyrillic\",\n  0x045a,\n  \"nkatakana\",\n  0x30f3,\n  \"nkatakanahalfwidth\",\n  0xff9d,\n  \"nlegrightlong\",\n  0x019e,\n  \"nlinebelow\",\n  0x1e49,\n  \"nmonospace\",\n  0xff4e,\n  \"nmsquare\",\n  0x339a,\n  \"nnabengali\",\n  0x09a3,\n  \"nnadeva\",\n  0x0923,\n  \"nnagujarati\",\n  0x0aa3,\n  \"nnagurmukhi\",\n  0x0a23,\n  \"nnnadeva\",\n  0x0929,\n  \"nohiragana\",\n  0x306e,\n  \"nokatakana\",\n  0x30ce,\n  \"nokatakanahalfwidth\",\n  0xff89,\n  \"nonbreakingspace\",\n  0x00a0,\n  \"nonenthai\",\n  0x0e13,\n  \"nonuthai\",\n  0x0e19,\n  \"noonarabic\",\n  0x0646,\n  \"noonfinalarabic\",\n  0xfee6,\n  \"noonghunnaarabic\",\n  0x06ba,\n  \"noonghunnafinalarabic\",\n  0xfb9f,\n  \"nooninitialarabic\",\n  0xfee7,\n  \"noonjeeminitialarabic\",\n  0xfcd2,\n  \"noonjeemisolatedarabic\",\n  0xfc4b,\n  \"noonmedialarabic\",\n  0xfee8,\n  \"noonmeeminitialarabic\",\n  0xfcd5,\n  \"noonmeemisolatedarabic\",\n  0xfc4e,\n  \"noonnoonfinalarabic\",\n  0xfc8d,\n  \"notcontains\",\n  0x220c,\n  \"notelement\",\n  0x2209,\n  \"notelementof\",\n  0x2209,\n  \"notequal\",\n  0x2260,\n  \"notgreater\",\n  0x226f,\n  \"notgreaternorequal\",\n  0x2271,\n  \"notgreaternorless\",\n  0x2279,\n  \"notidentical\",\n  0x2262,\n  \"notless\",\n  0x226e,\n  \"notlessnorequal\",\n  0x2270,\n  \"notparallel\",\n  0x2226,\n  \"notprecedes\",\n  0x2280,\n  \"notsubset\",\n  0x2284,\n  \"notsucceeds\",\n  0x2281,\n  \"notsuperset\",\n  0x2285,\n  \"nowarmenian\",\n  0x0576,\n  \"nparen\",\n  0x24a9,\n  \"nssquare\",\n  0x33b1,\n  \"nsuperior\",\n  0x207f,\n  \"ntilde\",\n  0x00f1,\n  \"nu\",\n  0x03bd,\n  \"nuhiragana\",\n  0x306c,\n  \"nukatakana\",\n  0x30cc,\n  \"nukatakanahalfwidth\",\n  0xff87,\n  \"nuktabengali\",\n  0x09bc,\n  \"nuktadeva\",\n  0x093c,\n  \"nuktagujarati\",\n  0x0abc,\n  \"nuktagurmukhi\",\n  0x0a3c,\n  \"numbersign\",\n  0x0023,\n  \"numbersignmonospace\",\n  0xff03,\n  \"numbersignsmall\",\n  0xfe5f,\n  \"numeralsigngreek\",\n  0x0374,\n  \"numeralsignlowergreek\",\n  0x0375,\n  \"numero\",\n  0x2116,\n  \"nun\",\n  0x05e0,\n  \"nundagesh\",\n  0xfb40,\n  \"nundageshhebrew\",\n  0xfb40,\n  \"nunhebrew\",\n  0x05e0,\n  \"nvsquare\",\n  0x33b5,\n  \"nwsquare\",\n  0x33bb,\n  \"nyabengali\",\n  0x099e,\n  \"nyadeva\",\n  0x091e,\n  \"nyagujarati\",\n  0x0a9e,\n  \"nyagurmukhi\",\n  0x0a1e,\n  \"o\",\n  0x006f,\n  \"oacute\",\n  0x00f3,\n  \"oangthai\",\n  0x0e2d,\n  \"obarred\",\n  0x0275,\n  \"obarredcyrillic\",\n  0x04e9,\n  \"obarreddieresiscyrillic\",\n  0x04eb,\n  \"obengali\",\n  0x0993,\n  \"obopomofo\",\n  0x311b,\n  \"obreve\",\n  0x014f,\n  \"ocandradeva\",\n  0x0911,\n  \"ocandragujarati\",\n  0x0a91,\n  \"ocandravowelsigndeva\",\n  0x0949,\n  \"ocandravowelsigngujarati\",\n  0x0ac9,\n  \"ocaron\",\n  0x01d2,\n  \"ocircle\",\n  0x24de,\n  \"ocircumflex\",\n  0x00f4,\n  \"ocircumflexacute\",\n  0x1ed1,\n  \"ocircumflexdotbelow\",\n  0x1ed9,\n  \"ocircumflexgrave\",\n  0x1ed3,\n  \"ocircumflexhookabove\",\n  0x1ed5,\n  \"ocircumflextilde\",\n  0x1ed7,\n  \"ocyrillic\",\n  0x043e,\n  \"odblacute\",\n  0x0151,\n  \"odblgrave\",\n  0x020d,\n  \"odeva\",\n  0x0913,\n  \"odieresis\",\n  0x00f6,\n  \"odieresiscyrillic\",\n  0x04e7,\n  \"odotbelow\",\n  0x1ecd,\n  \"oe\",\n  0x0153,\n  \"oekorean\",\n  0x315a,\n  \"ogonek\",\n  0x02db,\n  \"ogonekcmb\",\n  0x0328,\n  \"ograve\",\n  0x00f2,\n  \"ogujarati\",\n  0x0a93,\n  \"oharmenian\",\n  0x0585,\n  \"ohiragana\",\n  0x304a,\n  \"ohookabove\",\n  0x1ecf,\n  \"ohorn\",\n  0x01a1,\n  \"ohornacute\",\n  0x1edb,\n  \"ohorndotbelow\",\n  0x1ee3,\n  \"ohorngrave\",\n  0x1edd,\n  \"ohornhookabove\",\n  0x1edf,\n  \"ohorntilde\",\n  0x1ee1,\n  \"ohungarumlaut\",\n  0x0151,\n  \"oi\",\n  0x01a3,\n  \"oinvertedbreve\",\n  0x020f,\n  \"okatakana\",\n  0x30aa,\n  \"okatakanahalfwidth\",\n  0xff75,\n  \"okorean\",\n  0x3157,\n  \"olehebrew\",\n  0x05ab,\n  \"omacron\",\n  0x014d,\n  \"omacronacute\",\n  0x1e53,\n  \"omacrongrave\",\n  0x1e51,\n  \"omdeva\",\n  0x0950,\n  \"omega\",\n  0x03c9,\n  \"omega1\",\n  0x03d6,\n  \"omegacyrillic\",\n  0x0461,\n  \"omegalatinclosed\",\n  0x0277,\n  \"omegaroundcyrillic\",\n  0x047b,\n  \"omegatitlocyrillic\",\n  0x047d,\n  \"omegatonos\",\n  0x03ce,\n  \"omgujarati\",\n  0x0ad0,\n  \"omicron\",\n  0x03bf,\n  \"omicrontonos\",\n  0x03cc,\n  \"omonospace\",\n  0xff4f,\n  \"one\",\n  0x0031,\n  \"onearabic\",\n  0x0661,\n  \"onebengali\",\n  0x09e7,\n  \"onecircle\",\n  0x2460,\n  \"onecircleinversesansserif\",\n  0x278a,\n  \"onedeva\",\n  0x0967,\n  \"onedotenleader\",\n  0x2024,\n  \"oneeighth\",\n  0x215b,\n  \"onefitted\",\n  0xf6dc,\n  \"onegujarati\",\n  0x0ae7,\n  \"onegurmukhi\",\n  0x0a67,\n  \"onehackarabic\",\n  0x0661,\n  \"onehalf\",\n  0x00bd,\n  \"onehangzhou\",\n  0x3021,\n  \"oneideographicparen\",\n  0x3220,\n  \"oneinferior\",\n  0x2081,\n  \"onemonospace\",\n  0xff11,\n  \"onenumeratorbengali\",\n  0x09f4,\n  \"oneoldstyle\",\n  0xf731,\n  \"oneparen\",\n  0x2474,\n  \"oneperiod\",\n  0x2488,\n  \"onepersian\",\n  0x06f1,\n  \"onequarter\",\n  0x00bc,\n  \"oneroman\",\n  0x2170,\n  \"onesuperior\",\n  0x00b9,\n  \"onethai\",\n  0x0e51,\n  \"onethird\",\n  0x2153,\n  \"oogonek\",\n  0x01eb,\n  \"oogonekmacron\",\n  0x01ed,\n  \"oogurmukhi\",\n  0x0a13,\n  \"oomatragurmukhi\",\n  0x0a4b,\n  \"oopen\",\n  0x0254,\n  \"oparen\",\n  0x24aa,\n  \"openbullet\",\n  0x25e6,\n  \"option\",\n  0x2325,\n  \"ordfeminine\",\n  0x00aa,\n  \"ordmasculine\",\n  0x00ba,\n  \"orthogonal\",\n  0x221f,\n  \"oshortdeva\",\n  0x0912,\n  \"oshortvowelsigndeva\",\n  0x094a,\n  \"oslash\",\n  0x00f8,\n  \"oslashacute\",\n  0x01ff,\n  \"osmallhiragana\",\n  0x3049,\n  \"osmallkatakana\",\n  0x30a9,\n  \"osmallkatakanahalfwidth\",\n  0xff6b,\n  \"ostrokeacute\",\n  0x01ff,\n  \"osuperior\",\n  0xf6f0,\n  \"otcyrillic\",\n  0x047f,\n  \"otilde\",\n  0x00f5,\n  \"otildeacute\",\n  0x1e4d,\n  \"otildedieresis\",\n  0x1e4f,\n  \"oubopomofo\",\n  0x3121,\n  \"overline\",\n  0x203e,\n  \"overlinecenterline\",\n  0xfe4a,\n  \"overlinecmb\",\n  0x0305,\n  \"overlinedashed\",\n  0xfe49,\n  \"overlinedblwavy\",\n  0xfe4c,\n  \"overlinewavy\",\n  0xfe4b,\n  \"overscore\",\n  0x00af,\n  \"ovowelsignbengali\",\n  0x09cb,\n  \"ovowelsigndeva\",\n  0x094b,\n  \"ovowelsigngujarati\",\n  0x0acb,\n  \"p\",\n  0x0070,\n  \"paampssquare\",\n  0x3380,\n  \"paasentosquare\",\n  0x332b,\n  \"pabengali\",\n  0x09aa,\n  \"pacute\",\n  0x1e55,\n  \"padeva\",\n  0x092a,\n  \"pagedown\",\n  0x21df,\n  \"pageup\",\n  0x21de,\n  \"pagujarati\",\n  0x0aaa,\n  \"pagurmukhi\",\n  0x0a2a,\n  \"pahiragana\",\n  0x3071,\n  \"paiyannoithai\",\n  0x0e2f,\n  \"pakatakana\",\n  0x30d1,\n  \"palatalizationcyrilliccmb\",\n  0x0484,\n  \"palochkacyrillic\",\n  0x04c0,\n  \"pansioskorean\",\n  0x317f,\n  \"paragraph\",\n  0x00b6,\n  \"parallel\",\n  0x2225,\n  \"parenleft\",\n  0x0028,\n  \"parenleftaltonearabic\",\n  0xfd3e,\n  \"parenleftbt\",\n  0xf8ed,\n  \"parenleftex\",\n  0xf8ec,\n  \"parenleftinferior\",\n  0x208d,\n  \"parenleftmonospace\",\n  0xff08,\n  \"parenleftsmall\",\n  0xfe59,\n  \"parenleftsuperior\",\n  0x207d,\n  \"parenlefttp\",\n  0xf8eb,\n  \"parenleftvertical\",\n  0xfe35,\n  \"parenright\",\n  0x0029,\n  \"parenrightaltonearabic\",\n  0xfd3f,\n  \"parenrightbt\",\n  0xf8f8,\n  \"parenrightex\",\n  0xf8f7,\n  \"parenrightinferior\",\n  0x208e,\n  \"parenrightmonospace\",\n  0xff09,\n  \"parenrightsmall\",\n  0xfe5a,\n  \"parenrightsuperior\",\n  0x207e,\n  \"parenrighttp\",\n  0xf8f6,\n  \"parenrightvertical\",\n  0xfe36,\n  \"partialdiff\",\n  0x2202,\n  \"paseqhebrew\",\n  0x05c0,\n  \"pashtahebrew\",\n  0x0599,\n  \"pasquare\",\n  0x33a9,\n  \"patah\",\n  0x05b7,\n  \"patah11\",\n  0x05b7,\n  \"patah1d\",\n  0x05b7,\n  \"patah2a\",\n  0x05b7,\n  \"patahhebrew\",\n  0x05b7,\n  \"patahnarrowhebrew\",\n  0x05b7,\n  \"patahquarterhebrew\",\n  0x05b7,\n  \"patahwidehebrew\",\n  0x05b7,\n  \"pazerhebrew\",\n  0x05a1,\n  \"pbopomofo\",\n  0x3106,\n  \"pcircle\",\n  0x24df,\n  \"pdotaccent\",\n  0x1e57,\n  \"pe\",\n  0x05e4,\n  \"pecyrillic\",\n  0x043f,\n  \"pedagesh\",\n  0xfb44,\n  \"pedageshhebrew\",\n  0xfb44,\n  \"peezisquare\",\n  0x333b,\n  \"pefinaldageshhebrew\",\n  0xfb43,\n  \"peharabic\",\n  0x067e,\n  \"peharmenian\",\n  0x057a,\n  \"pehebrew\",\n  0x05e4,\n  \"pehfinalarabic\",\n  0xfb57,\n  \"pehinitialarabic\",\n  0xfb58,\n  \"pehiragana\",\n  0x307a,\n  \"pehmedialarabic\",\n  0xfb59,\n  \"pekatakana\",\n  0x30da,\n  \"pemiddlehookcyrillic\",\n  0x04a7,\n  \"perafehebrew\",\n  0xfb4e,\n  \"percent\",\n  0x0025,\n  \"percentarabic\",\n  0x066a,\n  \"percentmonospace\",\n  0xff05,\n  \"percentsmall\",\n  0xfe6a,\n  \"period\",\n  0x002e,\n  \"periodarmenian\",\n  0x0589,\n  \"periodcentered\",\n  0x00b7,\n  \"periodhalfwidth\",\n  0xff61,\n  \"periodinferior\",\n  0xf6e7,\n  \"periodmonospace\",\n  0xff0e,\n  \"periodsmall\",\n  0xfe52,\n  \"periodsuperior\",\n  0xf6e8,\n  \"perispomenigreekcmb\",\n  0x0342,\n  \"perpendicular\",\n  0x22a5,\n  \"perthousand\",\n  0x2030,\n  \"peseta\",\n  0x20a7,\n  \"pfsquare\",\n  0x338a,\n  \"phabengali\",\n  0x09ab,\n  \"phadeva\",\n  0x092b,\n  \"phagujarati\",\n  0x0aab,\n  \"phagurmukhi\",\n  0x0a2b,\n  \"phi\",\n  0x03c6,\n  \"phi1\",\n  0x03d5,\n  \"phieuphacirclekorean\",\n  0x327a,\n  \"phieuphaparenkorean\",\n  0x321a,\n  \"phieuphcirclekorean\",\n  0x326c,\n  \"phieuphkorean\",\n  0x314d,\n  \"phieuphparenkorean\",\n  0x320c,\n  \"philatin\",\n  0x0278,\n  \"phinthuthai\",\n  0x0e3a,\n  \"phisymbolgreek\",\n  0x03d5,\n  \"phook\",\n  0x01a5,\n  \"phophanthai\",\n  0x0e1e,\n  \"phophungthai\",\n  0x0e1c,\n  \"phosamphaothai\",\n  0x0e20,\n  \"pi\",\n  0x03c0,\n  \"pieupacirclekorean\",\n  0x3273,\n  \"pieupaparenkorean\",\n  0x3213,\n  \"pieupcieuckorean\",\n  0x3176,\n  \"pieupcirclekorean\",\n  0x3265,\n  \"pieupkiyeokkorean\",\n  0x3172,\n  \"pieupkorean\",\n  0x3142,\n  \"pieupparenkorean\",\n  0x3205,\n  \"pieupsioskiyeokkorean\",\n  0x3174,\n  \"pieupsioskorean\",\n  0x3144,\n  \"pieupsiostikeutkorean\",\n  0x3175,\n  \"pieupthieuthkorean\",\n  0x3177,\n  \"pieuptikeutkorean\",\n  0x3173,\n  \"pihiragana\",\n  0x3074,\n  \"pikatakana\",\n  0x30d4,\n  \"pisymbolgreek\",\n  0x03d6,\n  \"piwrarmenian\",\n  0x0583,\n  \"plus\",\n  0x002b,\n  \"plusbelowcmb\",\n  0x031f,\n  \"pluscircle\",\n  0x2295,\n  \"plusminus\",\n  0x00b1,\n  \"plusmod\",\n  0x02d6,\n  \"plusmonospace\",\n  0xff0b,\n  \"plussmall\",\n  0xfe62,\n  \"plussuperior\",\n  0x207a,\n  \"pmonospace\",\n  0xff50,\n  \"pmsquare\",\n  0x33d8,\n  \"pohiragana\",\n  0x307d,\n  \"pointingindexdownwhite\",\n  0x261f,\n  \"pointingindexleftwhite\",\n  0x261c,\n  \"pointingindexrightwhite\",\n  0x261e,\n  \"pointingindexupwhite\",\n  0x261d,\n  \"pokatakana\",\n  0x30dd,\n  \"poplathai\",\n  0x0e1b,\n  \"postalmark\",\n  0x3012,\n  \"postalmarkface\",\n  0x3020,\n  \"pparen\",\n  0x24ab,\n  \"precedes\",\n  0x227a,\n  \"prescription\",\n  0x211e,\n  \"primemod\",\n  0x02b9,\n  \"primereversed\",\n  0x2035,\n  \"product\",\n  0x220f,\n  \"projective\",\n  0x2305,\n  \"prolongedkana\",\n  0x30fc,\n  \"propellor\",\n  0x2318,\n  \"propersubset\",\n  0x2282,\n  \"propersuperset\",\n  0x2283,\n  \"proportion\",\n  0x2237,\n  \"proportional\",\n  0x221d,\n  \"psi\",\n  0x03c8,\n  \"psicyrillic\",\n  0x0471,\n  \"psilipneumatacyrilliccmb\",\n  0x0486,\n  \"pssquare\",\n  0x33b0,\n  \"puhiragana\",\n  0x3077,\n  \"pukatakana\",\n  0x30d7,\n  \"pvsquare\",\n  0x33b4,\n  \"pwsquare\",\n  0x33ba,\n  \"q\",\n  0x0071,\n  \"qadeva\",\n  0x0958,\n  \"qadmahebrew\",\n  0x05a8,\n  \"qafarabic\",\n  0x0642,\n  \"qaffinalarabic\",\n  0xfed6,\n  \"qafinitialarabic\",\n  0xfed7,\n  \"qafmedialarabic\",\n  0xfed8,\n  \"qamats\",\n  0x05b8,\n  \"qamats10\",\n  0x05b8,\n  \"qamats1a\",\n  0x05b8,\n  \"qamats1c\",\n  0x05b8,\n  \"qamats27\",\n  0x05b8,\n  \"qamats29\",\n  0x05b8,\n  \"qamats33\",\n  0x05b8,\n  \"qamatsde\",\n  0x05b8,\n  \"qamatshebrew\",\n  0x05b8,\n  \"qamatsnarrowhebrew\",\n  0x05b8,\n  \"qamatsqatanhebrew\",\n  0x05b8,\n  \"qamatsqatannarrowhebrew\",\n  0x05b8,\n  \"qamatsqatanquarterhebrew\",\n  0x05b8,\n  \"qamatsqatanwidehebrew\",\n  0x05b8,\n  \"qamatsquarterhebrew\",\n  0x05b8,\n  \"qamatswidehebrew\",\n  0x05b8,\n  \"qarneyparahebrew\",\n  0x059f,\n  \"qbopomofo\",\n  0x3111,\n  \"qcircle\",\n  0x24e0,\n  \"qhook\",\n  0x02a0,\n  \"qmonospace\",\n  0xff51,\n  \"qof\",\n  0x05e7,\n  \"qofdagesh\",\n  0xfb47,\n  \"qofdageshhebrew\",\n  0xfb47,\n  \"qofhebrew\",\n  0x05e7,\n  \"qparen\",\n  0x24ac,\n  \"quarternote\",\n  0x2669,\n  \"qubuts\",\n  0x05bb,\n  \"qubuts18\",\n  0x05bb,\n  \"qubuts25\",\n  0x05bb,\n  \"qubuts31\",\n  0x05bb,\n  \"qubutshebrew\",\n  0x05bb,\n  \"qubutsnarrowhebrew\",\n  0x05bb,\n  \"qubutsquarterhebrew\",\n  0x05bb,\n  \"qubutswidehebrew\",\n  0x05bb,\n  \"question\",\n  0x003f,\n  \"questionarabic\",\n  0x061f,\n  \"questionarmenian\",\n  0x055e,\n  \"questiondown\",\n  0x00bf,\n  \"questiondownsmall\",\n  0xf7bf,\n  \"questiongreek\",\n  0x037e,\n  \"questionmonospace\",\n  0xff1f,\n  \"questionsmall\",\n  0xf73f,\n  \"quotedbl\",\n  0x0022,\n  \"quotedblbase\",\n  0x201e,\n  \"quotedblleft\",\n  0x201c,\n  \"quotedblmonospace\",\n  0xff02,\n  \"quotedblprime\",\n  0x301e,\n  \"quotedblprimereversed\",\n  0x301d,\n  \"quotedblright\",\n  0x201d,\n  \"quoteleft\",\n  0x2018,\n  \"quoteleftreversed\",\n  0x201b,\n  \"quotereversed\",\n  0x201b,\n  \"quoteright\",\n  0x2019,\n  \"quoterightn\",\n  0x0149,\n  \"quotesinglbase\",\n  0x201a,\n  \"quotesingle\",\n  0x0027,\n  \"quotesinglemonospace\",\n  0xff07,\n  \"r\",\n  0x0072,\n  \"raarmenian\",\n  0x057c,\n  \"rabengali\",\n  0x09b0,\n  \"racute\",\n  0x0155,\n  \"radeva\",\n  0x0930,\n  \"radical\",\n  0x221a,\n  \"radicalex\",\n  0xf8e5,\n  \"radoverssquare\",\n  0x33ae,\n  \"radoverssquaredsquare\",\n  0x33af,\n  \"radsquare\",\n  0x33ad,\n  \"rafe\",\n  0x05bf,\n  \"rafehebrew\",\n  0x05bf,\n  \"ragujarati\",\n  0x0ab0,\n  \"ragurmukhi\",\n  0x0a30,\n  \"rahiragana\",\n  0x3089,\n  \"rakatakana\",\n  0x30e9,\n  \"rakatakanahalfwidth\",\n  0xff97,\n  \"ralowerdiagonalbengali\",\n  0x09f1,\n  \"ramiddlediagonalbengali\",\n  0x09f0,\n  \"ramshorn\",\n  0x0264,\n  \"ratio\",\n  0x2236,\n  \"rbopomofo\",\n  0x3116,\n  \"rcaron\",\n  0x0159,\n  \"rcedilla\",\n  0x0157,\n  \"rcircle\",\n  0x24e1,\n  \"rcommaaccent\",\n  0x0157,\n  \"rdblgrave\",\n  0x0211,\n  \"rdotaccent\",\n  0x1e59,\n  \"rdotbelow\",\n  0x1e5b,\n  \"rdotbelowmacron\",\n  0x1e5d,\n  \"referencemark\",\n  0x203b,\n  \"reflexsubset\",\n  0x2286,\n  \"reflexsuperset\",\n  0x2287,\n  \"registered\",\n  0x00ae,\n  \"registersans\",\n  0xf8e8,\n  \"registerserif\",\n  0xf6da,\n  \"reharabic\",\n  0x0631,\n  \"reharmenian\",\n  0x0580,\n  \"rehfinalarabic\",\n  0xfeae,\n  \"rehiragana\",\n  0x308c,\n  \"rekatakana\",\n  0x30ec,\n  \"rekatakanahalfwidth\",\n  0xff9a,\n  \"resh\",\n  0x05e8,\n  \"reshdageshhebrew\",\n  0xfb48,\n  \"reshhebrew\",\n  0x05e8,\n  \"reversedtilde\",\n  0x223d,\n  \"reviahebrew\",\n  0x0597,\n  \"reviamugrashhebrew\",\n  0x0597,\n  \"revlogicalnot\",\n  0x2310,\n  \"rfishhook\",\n  0x027e,\n  \"rfishhookreversed\",\n  0x027f,\n  \"rhabengali\",\n  0x09dd,\n  \"rhadeva\",\n  0x095d,\n  \"rho\",\n  0x03c1,\n  \"rhook\",\n  0x027d,\n  \"rhookturned\",\n  0x027b,\n  \"rhookturnedsuperior\",\n  0x02b5,\n  \"rhosymbolgreek\",\n  0x03f1,\n  \"rhotichookmod\",\n  0x02de,\n  \"rieulacirclekorean\",\n  0x3271,\n  \"rieulaparenkorean\",\n  0x3211,\n  \"rieulcirclekorean\",\n  0x3263,\n  \"rieulhieuhkorean\",\n  0x3140,\n  \"rieulkiyeokkorean\",\n  0x313a,\n  \"rieulkiyeoksioskorean\",\n  0x3169,\n  \"rieulkorean\",\n  0x3139,\n  \"rieulmieumkorean\",\n  0x313b,\n  \"rieulpansioskorean\",\n  0x316c,\n  \"rieulparenkorean\",\n  0x3203,\n  \"rieulphieuphkorean\",\n  0x313f,\n  \"rieulpieupkorean\",\n  0x313c,\n  \"rieulpieupsioskorean\",\n  0x316b,\n  \"rieulsioskorean\",\n  0x313d,\n  \"rieulthieuthkorean\",\n  0x313e,\n  \"rieultikeutkorean\",\n  0x316a,\n  \"rieulyeorinhieuhkorean\",\n  0x316d,\n  \"rightangle\",\n  0x221f,\n  \"righttackbelowcmb\",\n  0x0319,\n  \"righttriangle\",\n  0x22bf,\n  \"rihiragana\",\n  0x308a,\n  \"rikatakana\",\n  0x30ea,\n  \"rikatakanahalfwidth\",\n  0xff98,\n  \"ring\",\n  0x02da,\n  \"ringbelowcmb\",\n  0x0325,\n  \"ringcmb\",\n  0x030a,\n  \"ringhalfleft\",\n  0x02bf,\n  \"ringhalfleftarmenian\",\n  0x0559,\n  \"ringhalfleftbelowcmb\",\n  0x031c,\n  \"ringhalfleftcentered\",\n  0x02d3,\n  \"ringhalfright\",\n  0x02be,\n  \"ringhalfrightbelowcmb\",\n  0x0339,\n  \"ringhalfrightcentered\",\n  0x02d2,\n  \"rinvertedbreve\",\n  0x0213,\n  \"rittorusquare\",\n  0x3351,\n  \"rlinebelow\",\n  0x1e5f,\n  \"rlongleg\",\n  0x027c,\n  \"rlonglegturned\",\n  0x027a,\n  \"rmonospace\",\n  0xff52,\n  \"rohiragana\",\n  0x308d,\n  \"rokatakana\",\n  0x30ed,\n  \"rokatakanahalfwidth\",\n  0xff9b,\n  \"roruathai\",\n  0x0e23,\n  \"rparen\",\n  0x24ad,\n  \"rrabengali\",\n  0x09dc,\n  \"rradeva\",\n  0x0931,\n  \"rragurmukhi\",\n  0x0a5c,\n  \"rreharabic\",\n  0x0691,\n  \"rrehfinalarabic\",\n  0xfb8d,\n  \"rrvocalicbengali\",\n  0x09e0,\n  \"rrvocalicdeva\",\n  0x0960,\n  \"rrvocalicgujarati\",\n  0x0ae0,\n  \"rrvocalicvowelsignbengali\",\n  0x09c4,\n  \"rrvocalicvowelsigndeva\",\n  0x0944,\n  \"rrvocalicvowelsigngujarati\",\n  0x0ac4,\n  \"rsuperior\",\n  0xf6f1,\n  \"rtblock\",\n  0x2590,\n  \"rturned\",\n  0x0279,\n  \"rturnedsuperior\",\n  0x02b4,\n  \"ruhiragana\",\n  0x308b,\n  \"rukatakana\",\n  0x30eb,\n  \"rukatakanahalfwidth\",\n  0xff99,\n  \"rupeemarkbengali\",\n  0x09f2,\n  \"rupeesignbengali\",\n  0x09f3,\n  \"rupiah\",\n  0xf6dd,\n  \"ruthai\",\n  0x0e24,\n  \"rvocalicbengali\",\n  0x098b,\n  \"rvocalicdeva\",\n  0x090b,\n  \"rvocalicgujarati\",\n  0x0a8b,\n  \"rvocalicvowelsignbengali\",\n  0x09c3,\n  \"rvocalicvowelsigndeva\",\n  0x0943,\n  \"rvocalicvowelsigngujarati\",\n  0x0ac3,\n  \"s\",\n  0x0073,\n  \"sabengali\",\n  0x09b8,\n  \"sacute\",\n  0x015b,\n  \"sacutedotaccent\",\n  0x1e65,\n  \"sadarabic\",\n  0x0635,\n  \"sadeva\",\n  0x0938,\n  \"sadfinalarabic\",\n  0xfeba,\n  \"sadinitialarabic\",\n  0xfebb,\n  \"sadmedialarabic\",\n  0xfebc,\n  \"sagujarati\",\n  0x0ab8,\n  \"sagurmukhi\",\n  0x0a38,\n  \"sahiragana\",\n  0x3055,\n  \"sakatakana\",\n  0x30b5,\n  \"sakatakanahalfwidth\",\n  0xff7b,\n  \"sallallahoualayhewasallamarabic\",\n  0xfdfa,\n  \"samekh\",\n  0x05e1,\n  \"samekhdagesh\",\n  0xfb41,\n  \"samekhdageshhebrew\",\n  0xfb41,\n  \"samekhhebrew\",\n  0x05e1,\n  \"saraaathai\",\n  0x0e32,\n  \"saraaethai\",\n  0x0e41,\n  \"saraaimaimalaithai\",\n  0x0e44,\n  \"saraaimaimuanthai\",\n  0x0e43,\n  \"saraamthai\",\n  0x0e33,\n  \"saraathai\",\n  0x0e30,\n  \"saraethai\",\n  0x0e40,\n  \"saraiileftthai\",\n  0xf886,\n  \"saraiithai\",\n  0x0e35,\n  \"saraileftthai\",\n  0xf885,\n  \"saraithai\",\n  0x0e34,\n  \"saraothai\",\n  0x0e42,\n  \"saraueeleftthai\",\n  0xf888,\n  \"saraueethai\",\n  0x0e37,\n  \"saraueleftthai\",\n  0xf887,\n  \"sarauethai\",\n  0x0e36,\n  \"sarauthai\",\n  0x0e38,\n  \"sarauuthai\",\n  0x0e39,\n  \"sbopomofo\",\n  0x3119,\n  \"scaron\",\n  0x0161,\n  \"scarondotaccent\",\n  0x1e67,\n  \"scedilla\",\n  0x015f,\n  \"schwa\",\n  0x0259,\n  \"schwacyrillic\",\n  0x04d9,\n  \"schwadieresiscyrillic\",\n  0x04db,\n  \"schwahook\",\n  0x025a,\n  \"scircle\",\n  0x24e2,\n  \"scircumflex\",\n  0x015d,\n  \"scommaaccent\",\n  0x0219,\n  \"sdotaccent\",\n  0x1e61,\n  \"sdotbelow\",\n  0x1e63,\n  \"sdotbelowdotaccent\",\n  0x1e69,\n  \"seagullbelowcmb\",\n  0x033c,\n  \"second\",\n  0x2033,\n  \"secondtonechinese\",\n  0x02ca,\n  \"section\",\n  0x00a7,\n  \"seenarabic\",\n  0x0633,\n  \"seenfinalarabic\",\n  0xfeb2,\n  \"seeninitialarabic\",\n  0xfeb3,\n  \"seenmedialarabic\",\n  0xfeb4,\n  \"segol\",\n  0x05b6,\n  \"segol13\",\n  0x05b6,\n  \"segol1f\",\n  0x05b6,\n  \"segol2c\",\n  0x05b6,\n  \"segolhebrew\",\n  0x05b6,\n  \"segolnarrowhebrew\",\n  0x05b6,\n  \"segolquarterhebrew\",\n  0x05b6,\n  \"segoltahebrew\",\n  0x0592,\n  \"segolwidehebrew\",\n  0x05b6,\n  \"seharmenian\",\n  0x057d,\n  \"sehiragana\",\n  0x305b,\n  \"sekatakana\",\n  0x30bb,\n  \"sekatakanahalfwidth\",\n  0xff7e,\n  \"semicolon\",\n  0x003b,\n  \"semicolonarabic\",\n  0x061b,\n  \"semicolonmonospace\",\n  0xff1b,\n  \"semicolonsmall\",\n  0xfe54,\n  \"semivoicedmarkkana\",\n  0x309c,\n  \"semivoicedmarkkanahalfwidth\",\n  0xff9f,\n  \"sentisquare\",\n  0x3322,\n  \"sentosquare\",\n  0x3323,\n  \"seven\",\n  0x0037,\n  \"sevenarabic\",\n  0x0667,\n  \"sevenbengali\",\n  0x09ed,\n  \"sevencircle\",\n  0x2466,\n  \"sevencircleinversesansserif\",\n  0x2790,\n  \"sevendeva\",\n  0x096d,\n  \"seveneighths\",\n  0x215e,\n  \"sevengujarati\",\n  0x0aed,\n  \"sevengurmukhi\",\n  0x0a6d,\n  \"sevenhackarabic\",\n  0x0667,\n  \"sevenhangzhou\",\n  0x3027,\n  \"sevenideographicparen\",\n  0x3226,\n  \"seveninferior\",\n  0x2087,\n  \"sevenmonospace\",\n  0xff17,\n  \"sevenoldstyle\",\n  0xf737,\n  \"sevenparen\",\n  0x247a,\n  \"sevenperiod\",\n  0x248e,\n  \"sevenpersian\",\n  0x06f7,\n  \"sevenroman\",\n  0x2176,\n  \"sevensuperior\",\n  0x2077,\n  \"seventeencircle\",\n  0x2470,\n  \"seventeenparen\",\n  0x2484,\n  \"seventeenperiod\",\n  0x2498,\n  \"seventhai\",\n  0x0e57,\n  \"sfthyphen\",\n  0x00ad,\n  \"shaarmenian\",\n  0x0577,\n  \"shabengali\",\n  0x09b6,\n  \"shacyrillic\",\n  0x0448,\n  \"shaddaarabic\",\n  0x0651,\n  \"shaddadammaarabic\",\n  0xfc61,\n  \"shaddadammatanarabic\",\n  0xfc5e,\n  \"shaddafathaarabic\",\n  0xfc60,\n  \"shaddakasraarabic\",\n  0xfc62,\n  \"shaddakasratanarabic\",\n  0xfc5f,\n  \"shade\",\n  0x2592,\n  \"shadedark\",\n  0x2593,\n  \"shadelight\",\n  0x2591,\n  \"shademedium\",\n  0x2592,\n  \"shadeva\",\n  0x0936,\n  \"shagujarati\",\n  0x0ab6,\n  \"shagurmukhi\",\n  0x0a36,\n  \"shalshelethebrew\",\n  0x0593,\n  \"shbopomofo\",\n  0x3115,\n  \"shchacyrillic\",\n  0x0449,\n  \"sheenarabic\",\n  0x0634,\n  \"sheenfinalarabic\",\n  0xfeb6,\n  \"sheeninitialarabic\",\n  0xfeb7,\n  \"sheenmedialarabic\",\n  0xfeb8,\n  \"sheicoptic\",\n  0x03e3,\n  \"sheqel\",\n  0x20aa,\n  \"sheqelhebrew\",\n  0x20aa,\n  \"sheva\",\n  0x05b0,\n  \"sheva115\",\n  0x05b0,\n  \"sheva15\",\n  0x05b0,\n  \"sheva22\",\n  0x05b0,\n  \"sheva2e\",\n  0x05b0,\n  \"shevahebrew\",\n  0x05b0,\n  \"shevanarrowhebrew\",\n  0x05b0,\n  \"shevaquarterhebrew\",\n  0x05b0,\n  \"shevawidehebrew\",\n  0x05b0,\n  \"shhacyrillic\",\n  0x04bb,\n  \"shimacoptic\",\n  0x03ed,\n  \"shin\",\n  0x05e9,\n  \"shindagesh\",\n  0xfb49,\n  \"shindageshhebrew\",\n  0xfb49,\n  \"shindageshshindot\",\n  0xfb2c,\n  \"shindageshshindothebrew\",\n  0xfb2c,\n  \"shindageshsindot\",\n  0xfb2d,\n  \"shindageshsindothebrew\",\n  0xfb2d,\n  \"shindothebrew\",\n  0x05c1,\n  \"shinhebrew\",\n  0x05e9,\n  \"shinshindot\",\n  0xfb2a,\n  \"shinshindothebrew\",\n  0xfb2a,\n  \"shinsindot\",\n  0xfb2b,\n  \"shinsindothebrew\",\n  0xfb2b,\n  \"shook\",\n  0x0282,\n  \"sigma\",\n  0x03c3,\n  \"sigma1\",\n  0x03c2,\n  \"sigmafinal\",\n  0x03c2,\n  \"sigmalunatesymbolgreek\",\n  0x03f2,\n  \"sihiragana\",\n  0x3057,\n  \"sikatakana\",\n  0x30b7,\n  \"sikatakanahalfwidth\",\n  0xff7c,\n  \"siluqhebrew\",\n  0x05bd,\n  \"siluqlefthebrew\",\n  0x05bd,\n  \"similar\",\n  0x223c,\n  \"sindothebrew\",\n  0x05c2,\n  \"siosacirclekorean\",\n  0x3274,\n  \"siosaparenkorean\",\n  0x3214,\n  \"sioscieuckorean\",\n  0x317e,\n  \"sioscirclekorean\",\n  0x3266,\n  \"sioskiyeokkorean\",\n  0x317a,\n  \"sioskorean\",\n  0x3145,\n  \"siosnieunkorean\",\n  0x317b,\n  \"siosparenkorean\",\n  0x3206,\n  \"siospieupkorean\",\n  0x317d,\n  \"siostikeutkorean\",\n  0x317c,\n  \"six\",\n  0x0036,\n  \"sixarabic\",\n  0x0666,\n  \"sixbengali\",\n  0x09ec,\n  \"sixcircle\",\n  0x2465,\n  \"sixcircleinversesansserif\",\n  0x278f,\n  \"sixdeva\",\n  0x096c,\n  \"sixgujarati\",\n  0x0aec,\n  \"sixgurmukhi\",\n  0x0a6c,\n  \"sixhackarabic\",\n  0x0666,\n  \"sixhangzhou\",\n  0x3026,\n  \"sixideographicparen\",\n  0x3225,\n  \"sixinferior\",\n  0x2086,\n  \"sixmonospace\",\n  0xff16,\n  \"sixoldstyle\",\n  0xf736,\n  \"sixparen\",\n  0x2479,\n  \"sixperiod\",\n  0x248d,\n  \"sixpersian\",\n  0x06f6,\n  \"sixroman\",\n  0x2175,\n  \"sixsuperior\",\n  0x2076,\n  \"sixteencircle\",\n  0x246f,\n  \"sixteencurrencydenominatorbengali\",\n  0x09f9,\n  \"sixteenparen\",\n  0x2483,\n  \"sixteenperiod\",\n  0x2497,\n  \"sixthai\",\n  0x0e56,\n  \"slash\",\n  0x002f,\n  \"slashmonospace\",\n  0xff0f,\n  \"slong\",\n  0x017f,\n  \"slongdotaccent\",\n  0x1e9b,\n  \"smileface\",\n  0x263a,\n  \"smonospace\",\n  0xff53,\n  \"sofpasuqhebrew\",\n  0x05c3,\n  \"softhyphen\",\n  0x00ad,\n  \"softsigncyrillic\",\n  0x044c,\n  \"sohiragana\",\n  0x305d,\n  \"sokatakana\",\n  0x30bd,\n  \"sokatakanahalfwidth\",\n  0xff7f,\n  \"soliduslongoverlaycmb\",\n  0x0338,\n  \"solidusshortoverlaycmb\",\n  0x0337,\n  \"sorusithai\",\n  0x0e29,\n  \"sosalathai\",\n  0x0e28,\n  \"sosothai\",\n  0x0e0b,\n  \"sosuathai\",\n  0x0e2a,\n  \"space\",\n  0x0020,\n  \"spacehackarabic\",\n  0x0020,\n  \"spade\",\n  0x2660,\n  \"spadesuitblack\",\n  0x2660,\n  \"spadesuitwhite\",\n  0x2664,\n  \"sparen\",\n  0x24ae,\n  \"squarebelowcmb\",\n  0x033b,\n  \"squarecc\",\n  0x33c4,\n  \"squarecm\",\n  0x339d,\n  \"squarediagonalcrosshatchfill\",\n  0x25a9,\n  \"squarehorizontalfill\",\n  0x25a4,\n  \"squarekg\",\n  0x338f,\n  \"squarekm\",\n  0x339e,\n  \"squarekmcapital\",\n  0x33ce,\n  \"squareln\",\n  0x33d1,\n  \"squarelog\",\n  0x33d2,\n  \"squaremg\",\n  0x338e,\n  \"squaremil\",\n  0x33d5,\n  \"squaremm\",\n  0x339c,\n  \"squaremsquared\",\n  0x33a1,\n  \"squareorthogonalcrosshatchfill\",\n  0x25a6,\n  \"squareupperlefttolowerrightfill\",\n  0x25a7,\n  \"squareupperrighttolowerleftfill\",\n  0x25a8,\n  \"squareverticalfill\",\n  0x25a5,\n  \"squarewhitewithsmallblack\",\n  0x25a3,\n  \"srsquare\",\n  0x33db,\n  \"ssabengali\",\n  0x09b7,\n  \"ssadeva\",\n  0x0937,\n  \"ssagujarati\",\n  0x0ab7,\n  \"ssangcieuckorean\",\n  0x3149,\n  \"ssanghieuhkorean\",\n  0x3185,\n  \"ssangieungkorean\",\n  0x3180,\n  \"ssangkiyeokkorean\",\n  0x3132,\n  \"ssangnieunkorean\",\n  0x3165,\n  \"ssangpieupkorean\",\n  0x3143,\n  \"ssangsioskorean\",\n  0x3146,\n  \"ssangtikeutkorean\",\n  0x3138,\n  \"ssuperior\",\n  0xf6f2,\n  \"sterling\",\n  0x00a3,\n  \"sterlingmonospace\",\n  0xffe1,\n  \"strokelongoverlaycmb\",\n  0x0336,\n  \"strokeshortoverlaycmb\",\n  0x0335,\n  \"subset\",\n  0x2282,\n  \"subsetnotequal\",\n  0x228a,\n  \"subsetorequal\",\n  0x2286,\n  \"succeeds\",\n  0x227b,\n  \"suchthat\",\n  0x220b,\n  \"suhiragana\",\n  0x3059,\n  \"sukatakana\",\n  0x30b9,\n  \"sukatakanahalfwidth\",\n  0xff7d,\n  \"sukunarabic\",\n  0x0652,\n  \"summation\",\n  0x2211,\n  \"sun\",\n  0x263c,\n  \"superset\",\n  0x2283,\n  \"supersetnotequal\",\n  0x228b,\n  \"supersetorequal\",\n  0x2287,\n  \"svsquare\",\n  0x33dc,\n  \"syouwaerasquare\",\n  0x337c,\n  \"t\",\n  0x0074,\n  \"tabengali\",\n  0x09a4,\n  \"tackdown\",\n  0x22a4,\n  \"tackleft\",\n  0x22a3,\n  \"tadeva\",\n  0x0924,\n  \"tagujarati\",\n  0x0aa4,\n  \"tagurmukhi\",\n  0x0a24,\n  \"taharabic\",\n  0x0637,\n  \"tahfinalarabic\",\n  0xfec2,\n  \"tahinitialarabic\",\n  0xfec3,\n  \"tahiragana\",\n  0x305f,\n  \"tahmedialarabic\",\n  0xfec4,\n  \"taisyouerasquare\",\n  0x337d,\n  \"takatakana\",\n  0x30bf,\n  \"takatakanahalfwidth\",\n  0xff80,\n  \"tatweelarabic\",\n  0x0640,\n  \"tau\",\n  0x03c4,\n  \"tav\",\n  0x05ea,\n  \"tavdages\",\n  0xfb4a,\n  \"tavdagesh\",\n  0xfb4a,\n  \"tavdageshhebrew\",\n  0xfb4a,\n  \"tavhebrew\",\n  0x05ea,\n  \"tbar\",\n  0x0167,\n  \"tbopomofo\",\n  0x310a,\n  \"tcaron\",\n  0x0165,\n  \"tccurl\",\n  0x02a8,\n  \"tcedilla\",\n  0x0163,\n  \"tcheharabic\",\n  0x0686,\n  \"tchehfinalarabic\",\n  0xfb7b,\n  \"tchehinitialarabic\",\n  0xfb7c,\n  \"tchehmedialarabic\",\n  0xfb7d,\n  \"tcircle\",\n  0x24e3,\n  \"tcircumflexbelow\",\n  0x1e71,\n  \"tcommaaccent\",\n  0x0163,\n  \"tdieresis\",\n  0x1e97,\n  \"tdotaccent\",\n  0x1e6b,\n  \"tdotbelow\",\n  0x1e6d,\n  \"tecyrillic\",\n  0x0442,\n  \"tedescendercyrillic\",\n  0x04ad,\n  \"teharabic\",\n  0x062a,\n  \"tehfinalarabic\",\n  0xfe96,\n  \"tehhahinitialarabic\",\n  0xfca2,\n  \"tehhahisolatedarabic\",\n  0xfc0c,\n  \"tehinitialarabic\",\n  0xfe97,\n  \"tehiragana\",\n  0x3066,\n  \"tehjeeminitialarabic\",\n  0xfca1,\n  \"tehjeemisolatedarabic\",\n  0xfc0b,\n  \"tehmarbutaarabic\",\n  0x0629,\n  \"tehmarbutafinalarabic\",\n  0xfe94,\n  \"tehmedialarabic\",\n  0xfe98,\n  \"tehmeeminitialarabic\",\n  0xfca4,\n  \"tehmeemisolatedarabic\",\n  0xfc0e,\n  \"tehnoonfinalarabic\",\n  0xfc73,\n  \"tekatakana\",\n  0x30c6,\n  \"tekatakanahalfwidth\",\n  0xff83,\n  \"telephone\",\n  0x2121,\n  \"telephoneblack\",\n  0x260e,\n  \"telishagedolahebrew\",\n  0x05a0,\n  \"telishaqetanahebrew\",\n  0x05a9,\n  \"tencircle\",\n  0x2469,\n  \"tenideographicparen\",\n  0x3229,\n  \"tenparen\",\n  0x247d,\n  \"tenperiod\",\n  0x2491,\n  \"tenroman\",\n  0x2179,\n  \"tesh\",\n  0x02a7,\n  \"tet\",\n  0x05d8,\n  \"tetdagesh\",\n  0xfb38,\n  \"tetdageshhebrew\",\n  0xfb38,\n  \"tethebrew\",\n  0x05d8,\n  \"tetsecyrillic\",\n  0x04b5,\n  \"tevirhebrew\",\n  0x059b,\n  \"tevirlefthebrew\",\n  0x059b,\n  \"thabengali\",\n  0x09a5,\n  \"thadeva\",\n  0x0925,\n  \"thagujarati\",\n  0x0aa5,\n  \"thagurmukhi\",\n  0x0a25,\n  \"thalarabic\",\n  0x0630,\n  \"thalfinalarabic\",\n  0xfeac,\n  \"thanthakhatlowleftthai\",\n  0xf898,\n  \"thanthakhatlowrightthai\",\n  0xf897,\n  \"thanthakhatthai\",\n  0x0e4c,\n  \"thanthakhatupperleftthai\",\n  0xf896,\n  \"theharabic\",\n  0x062b,\n  \"thehfinalarabic\",\n  0xfe9a,\n  \"thehinitialarabic\",\n  0xfe9b,\n  \"thehmedialarabic\",\n  0xfe9c,\n  \"thereexists\",\n  0x2203,\n  \"therefore\",\n  0x2234,\n  \"theta\",\n  0x03b8,\n  \"theta1\",\n  0x03d1,\n  \"thetasymbolgreek\",\n  0x03d1,\n  \"thieuthacirclekorean\",\n  0x3279,\n  \"thieuthaparenkorean\",\n  0x3219,\n  \"thieuthcirclekorean\",\n  0x326b,\n  \"thieuthkorean\",\n  0x314c,\n  \"thieuthparenkorean\",\n  0x320b,\n  \"thirteencircle\",\n  0x246c,\n  \"thirteenparen\",\n  0x2480,\n  \"thirteenperiod\",\n  0x2494,\n  \"thonangmonthothai\",\n  0x0e11,\n  \"thook\",\n  0x01ad,\n  \"thophuthaothai\",\n  0x0e12,\n  \"thorn\",\n  0x00fe,\n  \"thothahanthai\",\n  0x0e17,\n  \"thothanthai\",\n  0x0e10,\n  \"thothongthai\",\n  0x0e18,\n  \"thothungthai\",\n  0x0e16,\n  \"thousandcyrillic\",\n  0x0482,\n  \"thousandsseparatorarabic\",\n  0x066c,\n  \"thousandsseparatorpersian\",\n  0x066c,\n  \"three\",\n  0x0033,\n  \"threearabic\",\n  0x0663,\n  \"threebengali\",\n  0x09e9,\n  \"threecircle\",\n  0x2462,\n  \"threecircleinversesansserif\",\n  0x278c,\n  \"threedeva\",\n  0x0969,\n  \"threeeighths\",\n  0x215c,\n  \"threegujarati\",\n  0x0ae9,\n  \"threegurmukhi\",\n  0x0a69,\n  \"threehackarabic\",\n  0x0663,\n  \"threehangzhou\",\n  0x3023,\n  \"threeideographicparen\",\n  0x3222,\n  \"threeinferior\",\n  0x2083,\n  \"threemonospace\",\n  0xff13,\n  \"threenumeratorbengali\",\n  0x09f6,\n  \"threeoldstyle\",\n  0xf733,\n  \"threeparen\",\n  0x2476,\n  \"threeperiod\",\n  0x248a,\n  \"threepersian\",\n  0x06f3,\n  \"threequarters\",\n  0x00be,\n  \"threequartersemdash\",\n  0xf6de,\n  \"threeroman\",\n  0x2172,\n  \"threesuperior\",\n  0x00b3,\n  \"threethai\",\n  0x0e53,\n  \"thzsquare\",\n  0x3394,\n  \"tihiragana\",\n  0x3061,\n  \"tikatakana\",\n  0x30c1,\n  \"tikatakanahalfwidth\",\n  0xff81,\n  \"tikeutacirclekorean\",\n  0x3270,\n  \"tikeutaparenkorean\",\n  0x3210,\n  \"tikeutcirclekorean\",\n  0x3262,\n  \"tikeutkorean\",\n  0x3137,\n  \"tikeutparenkorean\",\n  0x3202,\n  \"tilde\",\n  0x02dc,\n  \"tildebelowcmb\",\n  0x0330,\n  \"tildecmb\",\n  0x0303,\n  \"tildecomb\",\n  0x0303,\n  \"tildedoublecmb\",\n  0x0360,\n  \"tildeoperator\",\n  0x223c,\n  \"tildeoverlaycmb\",\n  0x0334,\n  \"tildeverticalcmb\",\n  0x033e,\n  \"timescircle\",\n  0x2297,\n  \"tipehahebrew\",\n  0x0596,\n  \"tipehalefthebrew\",\n  0x0596,\n  \"tippigurmukhi\",\n  0x0a70,\n  \"titlocyrilliccmb\",\n  0x0483,\n  \"tiwnarmenian\",\n  0x057f,\n  \"tlinebelow\",\n  0x1e6f,\n  \"tmonospace\",\n  0xff54,\n  \"toarmenian\",\n  0x0569,\n  \"tohiragana\",\n  0x3068,\n  \"tokatakana\",\n  0x30c8,\n  \"tokatakanahalfwidth\",\n  0xff84,\n  \"tonebarextrahighmod\",\n  0x02e5,\n  \"tonebarextralowmod\",\n  0x02e9,\n  \"tonebarhighmod\",\n  0x02e6,\n  \"tonebarlowmod\",\n  0x02e8,\n  \"tonebarmidmod\",\n  0x02e7,\n  \"tonefive\",\n  0x01bd,\n  \"tonesix\",\n  0x0185,\n  \"tonetwo\",\n  0x01a8,\n  \"tonos\",\n  0x0384,\n  \"tonsquare\",\n  0x3327,\n  \"topatakthai\",\n  0x0e0f,\n  \"tortoiseshellbracketleft\",\n  0x3014,\n  \"tortoiseshellbracketleftsmall\",\n  0xfe5d,\n  \"tortoiseshellbracketleftvertical\",\n  0xfe39,\n  \"tortoiseshellbracketright\",\n  0x3015,\n  \"tortoiseshellbracketrightsmall\",\n  0xfe5e,\n  \"tortoiseshellbracketrightvertical\",\n  0xfe3a,\n  \"totaothai\",\n  0x0e15,\n  \"tpalatalhook\",\n  0x01ab,\n  \"tparen\",\n  0x24af,\n  \"trademark\",\n  0x2122,\n  \"trademarksans\",\n  0xf8ea,\n  \"trademarkserif\",\n  0xf6db,\n  \"tretroflexhook\",\n  0x0288,\n  \"triagdn\",\n  0x25bc,\n  \"triaglf\",\n  0x25c4,\n  \"triagrt\",\n  0x25ba,\n  \"triagup\",\n  0x25b2,\n  \"ts\",\n  0x02a6,\n  \"tsadi\",\n  0x05e6,\n  \"tsadidagesh\",\n  0xfb46,\n  \"tsadidageshhebrew\",\n  0xfb46,\n  \"tsadihebrew\",\n  0x05e6,\n  \"tsecyrillic\",\n  0x0446,\n  \"tsere\",\n  0x05b5,\n  \"tsere12\",\n  0x05b5,\n  \"tsere1e\",\n  0x05b5,\n  \"tsere2b\",\n  0x05b5,\n  \"tserehebrew\",\n  0x05b5,\n  \"tserenarrowhebrew\",\n  0x05b5,\n  \"tserequarterhebrew\",\n  0x05b5,\n  \"tserewidehebrew\",\n  0x05b5,\n  \"tshecyrillic\",\n  0x045b,\n  \"tsuperior\",\n  0xf6f3,\n  \"ttabengali\",\n  0x099f,\n  \"ttadeva\",\n  0x091f,\n  \"ttagujarati\",\n  0x0a9f,\n  \"ttagurmukhi\",\n  0x0a1f,\n  \"tteharabic\",\n  0x0679,\n  \"ttehfinalarabic\",\n  0xfb67,\n  \"ttehinitialarabic\",\n  0xfb68,\n  \"ttehmedialarabic\",\n  0xfb69,\n  \"tthabengali\",\n  0x09a0,\n  \"tthadeva\",\n  0x0920,\n  \"tthagujarati\",\n  0x0aa0,\n  \"tthagurmukhi\",\n  0x0a20,\n  \"tturned\",\n  0x0287,\n  \"tuhiragana\",\n  0x3064,\n  \"tukatakana\",\n  0x30c4,\n  \"tukatakanahalfwidth\",\n  0xff82,\n  \"tusmallhiragana\",\n  0x3063,\n  \"tusmallkatakana\",\n  0x30c3,\n  \"tusmallkatakanahalfwidth\",\n  0xff6f,\n  \"twelvecircle\",\n  0x246b,\n  \"twelveparen\",\n  0x247f,\n  \"twelveperiod\",\n  0x2493,\n  \"twelveroman\",\n  0x217b,\n  \"twentycircle\",\n  0x2473,\n  \"twentyhangzhou\",\n  0x5344,\n  \"twentyparen\",\n  0x2487,\n  \"twentyperiod\",\n  0x249b,\n  \"two\",\n  0x0032,\n  \"twoarabic\",\n  0x0662,\n  \"twobengali\",\n  0x09e8,\n  \"twocircle\",\n  0x2461,\n  \"twocircleinversesansserif\",\n  0x278b,\n  \"twodeva\",\n  0x0968,\n  \"twodotenleader\",\n  0x2025,\n  \"twodotleader\",\n  0x2025,\n  \"twodotleadervertical\",\n  0xfe30,\n  \"twogujarati\",\n  0x0ae8,\n  \"twogurmukhi\",\n  0x0a68,\n  \"twohackarabic\",\n  0x0662,\n  \"twohangzhou\",\n  0x3022,\n  \"twoideographicparen\",\n  0x3221,\n  \"twoinferior\",\n  0x2082,\n  \"twomonospace\",\n  0xff12,\n  \"twonumeratorbengali\",\n  0x09f5,\n  \"twooldstyle\",\n  0xf732,\n  \"twoparen\",\n  0x2475,\n  \"twoperiod\",\n  0x2489,\n  \"twopersian\",\n  0x06f2,\n  \"tworoman\",\n  0x2171,\n  \"twostroke\",\n  0x01bb,\n  \"twosuperior\",\n  0x00b2,\n  \"twothai\",\n  0x0e52,\n  \"twothirds\",\n  0x2154,\n  \"u\",\n  0x0075,\n  \"uacute\",\n  0x00fa,\n  \"ubar\",\n  0x0289,\n  \"ubengali\",\n  0x0989,\n  \"ubopomofo\",\n  0x3128,\n  \"ubreve\",\n  0x016d,\n  \"ucaron\",\n  0x01d4,\n  \"ucircle\",\n  0x24e4,\n  \"ucircumflex\",\n  0x00fb,\n  \"ucircumflexbelow\",\n  0x1e77,\n  \"ucyrillic\",\n  0x0443,\n  \"udattadeva\",\n  0x0951,\n  \"udblacute\",\n  0x0171,\n  \"udblgrave\",\n  0x0215,\n  \"udeva\",\n  0x0909,\n  \"udieresis\",\n  0x00fc,\n  \"udieresisacute\",\n  0x01d8,\n  \"udieresisbelow\",\n  0x1e73,\n  \"udieresiscaron\",\n  0x01da,\n  \"udieresiscyrillic\",\n  0x04f1,\n  \"udieresisgrave\",\n  0x01dc,\n  \"udieresismacron\",\n  0x01d6,\n  \"udotbelow\",\n  0x1ee5,\n  \"ugrave\",\n  0x00f9,\n  \"ugujarati\",\n  0x0a89,\n  \"ugurmukhi\",\n  0x0a09,\n  \"uhiragana\",\n  0x3046,\n  \"uhookabove\",\n  0x1ee7,\n  \"uhorn\",\n  0x01b0,\n  \"uhornacute\",\n  0x1ee9,\n  \"uhorndotbelow\",\n  0x1ef1,\n  \"uhorngrave\",\n  0x1eeb,\n  \"uhornhookabove\",\n  0x1eed,\n  \"uhorntilde\",\n  0x1eef,\n  \"uhungarumlaut\",\n  0x0171,\n  \"uhungarumlautcyrillic\",\n  0x04f3,\n  \"uinvertedbreve\",\n  0x0217,\n  \"ukatakana\",\n  0x30a6,\n  \"ukatakanahalfwidth\",\n  0xff73,\n  \"ukcyrillic\",\n  0x0479,\n  \"ukorean\",\n  0x315c,\n  \"umacron\",\n  0x016b,\n  \"umacroncyrillic\",\n  0x04ef,\n  \"umacrondieresis\",\n  0x1e7b,\n  \"umatragurmukhi\",\n  0x0a41,\n  \"umonospace\",\n  0xff55,\n  \"underscore\",\n  0x005f,\n  \"underscoredbl\",\n  0x2017,\n  \"underscoremonospace\",\n  0xff3f,\n  \"underscorevertical\",\n  0xfe33,\n  \"underscorewavy\",\n  0xfe4f,\n  \"union\",\n  0x222a,\n  \"universal\",\n  0x2200,\n  \"uogonek\",\n  0x0173,\n  \"uparen\",\n  0x24b0,\n  \"upblock\",\n  0x2580,\n  \"upperdothebrew\",\n  0x05c4,\n  \"upsilon\",\n  0x03c5,\n  \"upsilondieresis\",\n  0x03cb,\n  \"upsilondieresistonos\",\n  0x03b0,\n  \"upsilonlatin\",\n  0x028a,\n  \"upsilontonos\",\n  0x03cd,\n  \"uptackbelowcmb\",\n  0x031d,\n  \"uptackmod\",\n  0x02d4,\n  \"uragurmukhi\",\n  0x0a73,\n  \"uring\",\n  0x016f,\n  \"ushortcyrillic\",\n  0x045e,\n  \"usmallhiragana\",\n  0x3045,\n  \"usmallkatakana\",\n  0x30a5,\n  \"usmallkatakanahalfwidth\",\n  0xff69,\n  \"ustraightcyrillic\",\n  0x04af,\n  \"ustraightstrokecyrillic\",\n  0x04b1,\n  \"utilde\",\n  0x0169,\n  \"utildeacute\",\n  0x1e79,\n  \"utildebelow\",\n  0x1e75,\n  \"uubengali\",\n  0x098a,\n  \"uudeva\",\n  0x090a,\n  \"uugujarati\",\n  0x0a8a,\n  \"uugurmukhi\",\n  0x0a0a,\n  \"uumatragurmukhi\",\n  0x0a42,\n  \"uuvowelsignbengali\",\n  0x09c2,\n  \"uuvowelsigndeva\",\n  0x0942,\n  \"uuvowelsigngujarati\",\n  0x0ac2,\n  \"uvowelsignbengali\",\n  0x09c1,\n  \"uvowelsigndeva\",\n  0x0941,\n  \"uvowelsigngujarati\",\n  0x0ac1,\n  \"v\",\n  0x0076,\n  \"vadeva\",\n  0x0935,\n  \"vagujarati\",\n  0x0ab5,\n  \"vagurmukhi\",\n  0x0a35,\n  \"vakatakana\",\n  0x30f7,\n  \"vav\",\n  0x05d5,\n  \"vavdagesh\",\n  0xfb35,\n  \"vavdagesh65\",\n  0xfb35,\n  \"vavdageshhebrew\",\n  0xfb35,\n  \"vavhebrew\",\n  0x05d5,\n  \"vavholam\",\n  0xfb4b,\n  \"vavholamhebrew\",\n  0xfb4b,\n  \"vavvavhebrew\",\n  0x05f0,\n  \"vavyodhebrew\",\n  0x05f1,\n  \"vcircle\",\n  0x24e5,\n  \"vdotbelow\",\n  0x1e7f,\n  \"vecyrillic\",\n  0x0432,\n  \"veharabic\",\n  0x06a4,\n  \"vehfinalarabic\",\n  0xfb6b,\n  \"vehinitialarabic\",\n  0xfb6c,\n  \"vehmedialarabic\",\n  0xfb6d,\n  \"vekatakana\",\n  0x30f9,\n  \"venus\",\n  0x2640,\n  \"verticalbar\",\n  0x007c,\n  \"verticallineabovecmb\",\n  0x030d,\n  \"verticallinebelowcmb\",\n  0x0329,\n  \"verticallinelowmod\",\n  0x02cc,\n  \"verticallinemod\",\n  0x02c8,\n  \"vewarmenian\",\n  0x057e,\n  \"vhook\",\n  0x028b,\n  \"vikatakana\",\n  0x30f8,\n  \"viramabengali\",\n  0x09cd,\n  \"viramadeva\",\n  0x094d,\n  \"viramagujarati\",\n  0x0acd,\n  \"visargabengali\",\n  0x0983,\n  \"visargadeva\",\n  0x0903,\n  \"visargagujarati\",\n  0x0a83,\n  \"vmonospace\",\n  0xff56,\n  \"voarmenian\",\n  0x0578,\n  \"voicediterationhiragana\",\n  0x309e,\n  \"voicediterationkatakana\",\n  0x30fe,\n  \"voicedmarkkana\",\n  0x309b,\n  \"voicedmarkkanahalfwidth\",\n  0xff9e,\n  \"vokatakana\",\n  0x30fa,\n  \"vparen\",\n  0x24b1,\n  \"vtilde\",\n  0x1e7d,\n  \"vturned\",\n  0x028c,\n  \"vuhiragana\",\n  0x3094,\n  \"vukatakana\",\n  0x30f4,\n  \"w\",\n  0x0077,\n  \"wacute\",\n  0x1e83,\n  \"waekorean\",\n  0x3159,\n  \"wahiragana\",\n  0x308f,\n  \"wakatakana\",\n  0x30ef,\n  \"wakatakanahalfwidth\",\n  0xff9c,\n  \"wakorean\",\n  0x3158,\n  \"wasmallhiragana\",\n  0x308e,\n  \"wasmallkatakana\",\n  0x30ee,\n  \"wattosquare\",\n  0x3357,\n  \"wavedash\",\n  0x301c,\n  \"wavyunderscorevertical\",\n  0xfe34,\n  \"wawarabic\",\n  0x0648,\n  \"wawfinalarabic\",\n  0xfeee,\n  \"wawhamzaabovearabic\",\n  0x0624,\n  \"wawhamzaabovefinalarabic\",\n  0xfe86,\n  \"wbsquare\",\n  0x33dd,\n  \"wcircle\",\n  0x24e6,\n  \"wcircumflex\",\n  0x0175,\n  \"wdieresis\",\n  0x1e85,\n  \"wdotaccent\",\n  0x1e87,\n  \"wdotbelow\",\n  0x1e89,\n  \"wehiragana\",\n  0x3091,\n  \"weierstrass\",\n  0x2118,\n  \"wekatakana\",\n  0x30f1,\n  \"wekorean\",\n  0x315e,\n  \"weokorean\",\n  0x315d,\n  \"wgrave\",\n  0x1e81,\n  \"whitebullet\",\n  0x25e6,\n  \"whitecircle\",\n  0x25cb,\n  \"whitecircleinverse\",\n  0x25d9,\n  \"whitecornerbracketleft\",\n  0x300e,\n  \"whitecornerbracketleftvertical\",\n  0xfe43,\n  \"whitecornerbracketright\",\n  0x300f,\n  \"whitecornerbracketrightvertical\",\n  0xfe44,\n  \"whitediamond\",\n  0x25c7,\n  \"whitediamondcontainingblacksmalldiamond\",\n  0x25c8,\n  \"whitedownpointingsmalltriangle\",\n  0x25bf,\n  \"whitedownpointingtriangle\",\n  0x25bd,\n  \"whiteleftpointingsmalltriangle\",\n  0x25c3,\n  \"whiteleftpointingtriangle\",\n  0x25c1,\n  \"whitelenticularbracketleft\",\n  0x3016,\n  \"whitelenticularbracketright\",\n  0x3017,\n  \"whiterightpointingsmalltriangle\",\n  0x25b9,\n  \"whiterightpointingtriangle\",\n  0x25b7,\n  \"whitesmallsquare\",\n  0x25ab,\n  \"whitesmilingface\",\n  0x263a,\n  \"whitesquare\",\n  0x25a1,\n  \"whitestar\",\n  0x2606,\n  \"whitetelephone\",\n  0x260f,\n  \"whitetortoiseshellbracketleft\",\n  0x3018,\n  \"whitetortoiseshellbracketright\",\n  0x3019,\n  \"whiteuppointingsmalltriangle\",\n  0x25b5,\n  \"whiteuppointingtriangle\",\n  0x25b3,\n  \"wihiragana\",\n  0x3090,\n  \"wikatakana\",\n  0x30f0,\n  \"wikorean\",\n  0x315f,\n  \"wmonospace\",\n  0xff57,\n  \"wohiragana\",\n  0x3092,\n  \"wokatakana\",\n  0x30f2,\n  \"wokatakanahalfwidth\",\n  0xff66,\n  \"won\",\n  0x20a9,\n  \"wonmonospace\",\n  0xffe6,\n  \"wowaenthai\",\n  0x0e27,\n  \"wparen\",\n  0x24b2,\n  \"wring\",\n  0x1e98,\n  \"wsuperior\",\n  0x02b7,\n  \"wturned\",\n  0x028d,\n  \"wynn\",\n  0x01bf,\n  \"x\",\n  0x0078,\n  \"xabovecmb\",\n  0x033d,\n  \"xbopomofo\",\n  0x3112,\n  \"xcircle\",\n  0x24e7,\n  \"xdieresis\",\n  0x1e8d,\n  \"xdotaccent\",\n  0x1e8b,\n  \"xeharmenian\",\n  0x056d,\n  \"xi\",\n  0x03be,\n  \"xmonospace\",\n  0xff58,\n  \"xparen\",\n  0x24b3,\n  \"xsuperior\",\n  0x02e3,\n  \"y\",\n  0x0079,\n  \"yaadosquare\",\n  0x334e,\n  \"yabengali\",\n  0x09af,\n  \"yacute\",\n  0x00fd,\n  \"yadeva\",\n  0x092f,\n  \"yaekorean\",\n  0x3152,\n  \"yagujarati\",\n  0x0aaf,\n  \"yagurmukhi\",\n  0x0a2f,\n  \"yahiragana\",\n  0x3084,\n  \"yakatakana\",\n  0x30e4,\n  \"yakatakanahalfwidth\",\n  0xff94,\n  \"yakorean\",\n  0x3151,\n  \"yamakkanthai\",\n  0x0e4e,\n  \"yasmallhiragana\",\n  0x3083,\n  \"yasmallkatakana\",\n  0x30e3,\n  \"yasmallkatakanahalfwidth\",\n  0xff6c,\n  \"yatcyrillic\",\n  0x0463,\n  \"ycircle\",\n  0x24e8,\n  \"ycircumflex\",\n  0x0177,\n  \"ydieresis\",\n  0x00ff,\n  \"ydotaccent\",\n  0x1e8f,\n  \"ydotbelow\",\n  0x1ef5,\n  \"yeharabic\",\n  0x064a,\n  \"yehbarreearabic\",\n  0x06d2,\n  \"yehbarreefinalarabic\",\n  0xfbaf,\n  \"yehfinalarabic\",\n  0xfef2,\n  \"yehhamzaabovearabic\",\n  0x0626,\n  \"yehhamzaabovefinalarabic\",\n  0xfe8a,\n  \"yehhamzaaboveinitialarabic\",\n  0xfe8b,\n  \"yehhamzaabovemedialarabic\",\n  0xfe8c,\n  \"yehinitialarabic\",\n  0xfef3,\n  \"yehmedialarabic\",\n  0xfef4,\n  \"yehmeeminitialarabic\",\n  0xfcdd,\n  \"yehmeemisolatedarabic\",\n  0xfc58,\n  \"yehnoonfinalarabic\",\n  0xfc94,\n  \"yehthreedotsbelowarabic\",\n  0x06d1,\n  \"yekorean\",\n  0x3156,\n  \"yen\",\n  0x00a5,\n  \"yenmonospace\",\n  0xffe5,\n  \"yeokorean\",\n  0x3155,\n  \"yeorinhieuhkorean\",\n  0x3186,\n  \"yerahbenyomohebrew\",\n  0x05aa,\n  \"yerahbenyomolefthebrew\",\n  0x05aa,\n  \"yericyrillic\",\n  0x044b,\n  \"yerudieresiscyrillic\",\n  0x04f9,\n  \"yesieungkorean\",\n  0x3181,\n  \"yesieungpansioskorean\",\n  0x3183,\n  \"yesieungsioskorean\",\n  0x3182,\n  \"yetivhebrew\",\n  0x059a,\n  \"ygrave\",\n  0x1ef3,\n  \"yhook\",\n  0x01b4,\n  \"yhookabove\",\n  0x1ef7,\n  \"yiarmenian\",\n  0x0575,\n  \"yicyrillic\",\n  0x0457,\n  \"yikorean\",\n  0x3162,\n  \"yinyang\",\n  0x262f,\n  \"yiwnarmenian\",\n  0x0582,\n  \"ymonospace\",\n  0xff59,\n  \"yod\",\n  0x05d9,\n  \"yoddagesh\",\n  0xfb39,\n  \"yoddageshhebrew\",\n  0xfb39,\n  \"yodhebrew\",\n  0x05d9,\n  \"yodyodhebrew\",\n  0x05f2,\n  \"yodyodpatahhebrew\",\n  0xfb1f,\n  \"yohiragana\",\n  0x3088,\n  \"yoikorean\",\n  0x3189,\n  \"yokatakana\",\n  0x30e8,\n  \"yokatakanahalfwidth\",\n  0xff96,\n  \"yokorean\",\n  0x315b,\n  \"yosmallhiragana\",\n  0x3087,\n  \"yosmallkatakana\",\n  0x30e7,\n  \"yosmallkatakanahalfwidth\",\n  0xff6e,\n  \"yotgreek\",\n  0x03f3,\n  \"yoyaekorean\",\n  0x3188,\n  \"yoyakorean\",\n  0x3187,\n  \"yoyakthai\",\n  0x0e22,\n  \"yoyingthai\",\n  0x0e0d,\n  \"yparen\",\n  0x24b4,\n  \"ypogegrammeni\",\n  0x037a,\n  \"ypogegrammenigreekcmb\",\n  0x0345,\n  \"yr\",\n  0x01a6,\n  \"yring\",\n  0x1e99,\n  \"ysuperior\",\n  0x02b8,\n  \"ytilde\",\n  0x1ef9,\n  \"yturned\",\n  0x028e,\n  \"yuhiragana\",\n  0x3086,\n  \"yuikorean\",\n  0x318c,\n  \"yukatakana\",\n  0x30e6,\n  \"yukatakanahalfwidth\",\n  0xff95,\n  \"yukorean\",\n  0x3160,\n  \"yusbigcyrillic\",\n  0x046b,\n  \"yusbigiotifiedcyrillic\",\n  0x046d,\n  \"yuslittlecyrillic\",\n  0x0467,\n  \"yuslittleiotifiedcyrillic\",\n  0x0469,\n  \"yusmallhiragana\",\n  0x3085,\n  \"yusmallkatakana\",\n  0x30e5,\n  \"yusmallkatakanahalfwidth\",\n  0xff6d,\n  \"yuyekorean\",\n  0x318b,\n  \"yuyeokorean\",\n  0x318a,\n  \"yyabengali\",\n  0x09df,\n  \"yyadeva\",\n  0x095f,\n  \"z\",\n  0x007a,\n  \"zaarmenian\",\n  0x0566,\n  \"zacute\",\n  0x017a,\n  \"zadeva\",\n  0x095b,\n  \"zagurmukhi\",\n  0x0a5b,\n  \"zaharabic\",\n  0x0638,\n  \"zahfinalarabic\",\n  0xfec6,\n  \"zahinitialarabic\",\n  0xfec7,\n  \"zahiragana\",\n  0x3056,\n  \"zahmedialarabic\",\n  0xfec8,\n  \"zainarabic\",\n  0x0632,\n  \"zainfinalarabic\",\n  0xfeb0,\n  \"zakatakana\",\n  0x30b6,\n  \"zaqefgadolhebrew\",\n  0x0595,\n  \"zaqefqatanhebrew\",\n  0x0594,\n  \"zarqahebrew\",\n  0x0598,\n  \"zayin\",\n  0x05d6,\n  \"zayindagesh\",\n  0xfb36,\n  \"zayindageshhebrew\",\n  0xfb36,\n  \"zayinhebrew\",\n  0x05d6,\n  \"zbopomofo\",\n  0x3117,\n  \"zcaron\",\n  0x017e,\n  \"zcircle\",\n  0x24e9,\n  \"zcircumflex\",\n  0x1e91,\n  \"zcurl\",\n  0x0291,\n  \"zdot\",\n  0x017c,\n  \"zdotaccent\",\n  0x017c,\n  \"zdotbelow\",\n  0x1e93,\n  \"zecyrillic\",\n  0x0437,\n  \"zedescendercyrillic\",\n  0x0499,\n  \"zedieresiscyrillic\",\n  0x04df,\n  \"zehiragana\",\n  0x305c,\n  \"zekatakana\",\n  0x30bc,\n  \"zero\",\n  0x0030,\n  \"zeroarabic\",\n  0x0660,\n  \"zerobengali\",\n  0x09e6,\n  \"zerodeva\",\n  0x0966,\n  \"zerogujarati\",\n  0x0ae6,\n  \"zerogurmukhi\",\n  0x0a66,\n  \"zerohackarabic\",\n  0x0660,\n  \"zeroinferior\",\n  0x2080,\n  \"zeromonospace\",\n  0xff10,\n  \"zerooldstyle\",\n  0xf730,\n  \"zeropersian\",\n  0x06f0,\n  \"zerosuperior\",\n  0x2070,\n  \"zerothai\",\n  0x0e50,\n  \"zerowidthjoiner\",\n  0xfeff,\n  \"zerowidthnonjoiner\",\n  0x200c,\n  \"zerowidthspace\",\n  0x200b,\n  \"zeta\",\n  0x03b6,\n  \"zhbopomofo\",\n  0x3113,\n  \"zhearmenian\",\n  0x056a,\n  \"zhebrevecyrillic\",\n  0x04c2,\n  \"zhecyrillic\",\n  0x0436,\n  \"zhedescendercyrillic\",\n  0x0497,\n  \"zhedieresiscyrillic\",\n  0x04dd,\n  \"zihiragana\",\n  0x3058,\n  \"zikatakana\",\n  0x30b8,\n  \"zinorhebrew\",\n  0x05ae,\n  \"zlinebelow\",\n  0x1e95,\n  \"zmonospace\",\n  0xff5a,\n  \"zohiragana\",\n  0x305e,\n  \"zokatakana\",\n  0x30be,\n  \"zparen\",\n  0x24b5,\n  \"zretroflexhook\",\n  0x0290,\n  \"zstroke\",\n  0x01b6,\n  \"zuhiragana\",\n  0x305a,\n  \"zukatakana\",\n  0x30ba,\n  \".notdef\",\n  0x0000,\n  \"angbracketleftbig\",\n  0x2329,\n  \"angbracketleftBig\",\n  0x2329,\n  \"angbracketleftbigg\",\n  0x2329,\n  \"angbracketleftBigg\",\n  0x2329,\n  \"angbracketrightBig\",\n  0x232a,\n  \"angbracketrightbig\",\n  0x232a,\n  \"angbracketrightBigg\",\n  0x232a,\n  \"angbracketrightbigg\",\n  0x232a,\n  \"arrowhookleft\",\n  0x21aa,\n  \"arrowhookright\",\n  0x21a9,\n  \"arrowlefttophalf\",\n  0x21bc,\n  \"arrowleftbothalf\",\n  0x21bd,\n  \"arrownortheast\",\n  0x2197,\n  \"arrownorthwest\",\n  0x2196,\n  \"arrowrighttophalf\",\n  0x21c0,\n  \"arrowrightbothalf\",\n  0x21c1,\n  \"arrowsoutheast\",\n  0x2198,\n  \"arrowsouthwest\",\n  0x2199,\n  \"backslashbig\",\n  0x2216,\n  \"backslashBig\",\n  0x2216,\n  \"backslashBigg\",\n  0x2216,\n  \"backslashbigg\",\n  0x2216,\n  \"bardbl\",\n  0x2016,\n  \"bracehtipdownleft\",\n  0xfe37,\n  \"bracehtipdownright\",\n  0xfe37,\n  \"bracehtipupleft\",\n  0xfe38,\n  \"bracehtipupright\",\n  0xfe38,\n  \"braceleftBig\",\n  0x007b,\n  \"braceleftbig\",\n  0x007b,\n  \"braceleftbigg\",\n  0x007b,\n  \"braceleftBigg\",\n  0x007b,\n  \"bracerightBig\",\n  0x007d,\n  \"bracerightbig\",\n  0x007d,\n  \"bracerightbigg\",\n  0x007d,\n  \"bracerightBigg\",\n  0x007d,\n  \"bracketleftbig\",\n  0x005b,\n  \"bracketleftBig\",\n  0x005b,\n  \"bracketleftbigg\",\n  0x005b,\n  \"bracketleftBigg\",\n  0x005b,\n  \"bracketrightBig\",\n  0x005d,\n  \"bracketrightbig\",\n  0x005d,\n  \"bracketrightbigg\",\n  0x005d,\n  \"bracketrightBigg\",\n  0x005d,\n  \"ceilingleftbig\",\n  0x2308,\n  \"ceilingleftBig\",\n  0x2308,\n  \"ceilingleftBigg\",\n  0x2308,\n  \"ceilingleftbigg\",\n  0x2308,\n  \"ceilingrightbig\",\n  0x2309,\n  \"ceilingrightBig\",\n  0x2309,\n  \"ceilingrightbigg\",\n  0x2309,\n  \"ceilingrightBigg\",\n  0x2309,\n  \"circledotdisplay\",\n  0x2299,\n  \"circledottext\",\n  0x2299,\n  \"circlemultiplydisplay\",\n  0x2297,\n  \"circlemultiplytext\",\n  0x2297,\n  \"circleplusdisplay\",\n  0x2295,\n  \"circleplustext\",\n  0x2295,\n  \"contintegraldisplay\",\n  0x222e,\n  \"contintegraltext\",\n  0x222e,\n  \"coproductdisplay\",\n  0x2210,\n  \"coproducttext\",\n  0x2210,\n  \"floorleftBig\",\n  0x230a,\n  \"floorleftbig\",\n  0x230a,\n  \"floorleftbigg\",\n  0x230a,\n  \"floorleftBigg\",\n  0x230a,\n  \"floorrightbig\",\n  0x230b,\n  \"floorrightBig\",\n  0x230b,\n  \"floorrightBigg\",\n  0x230b,\n  \"floorrightbigg\",\n  0x230b,\n  \"hatwide\",\n  0x0302,\n  \"hatwider\",\n  0x0302,\n  \"hatwidest\",\n  0x0302,\n  \"intercal\",\n  0x1d40,\n  \"integraldisplay\",\n  0x222b,\n  \"integraltext\",\n  0x222b,\n  \"intersectiondisplay\",\n  0x22c2,\n  \"intersectiontext\",\n  0x22c2,\n  \"logicalanddisplay\",\n  0x2227,\n  \"logicalandtext\",\n  0x2227,\n  \"logicalordisplay\",\n  0x2228,\n  \"logicalortext\",\n  0x2228,\n  \"parenleftBig\",\n  0x0028,\n  \"parenleftbig\",\n  0x0028,\n  \"parenleftBigg\",\n  0x0028,\n  \"parenleftbigg\",\n  0x0028,\n  \"parenrightBig\",\n  0x0029,\n  \"parenrightbig\",\n  0x0029,\n  \"parenrightBigg\",\n  0x0029,\n  \"parenrightbigg\",\n  0x0029,\n  \"prime\",\n  0x2032,\n  \"productdisplay\",\n  0x220f,\n  \"producttext\",\n  0x220f,\n  \"radicalbig\",\n  0x221a,\n  \"radicalBig\",\n  0x221a,\n  \"radicalBigg\",\n  0x221a,\n  \"radicalbigg\",\n  0x221a,\n  \"radicalbt\",\n  0x221a,\n  \"radicaltp\",\n  0x221a,\n  \"radicalvertex\",\n  0x221a,\n  \"slashbig\",\n  0x002f,\n  \"slashBig\",\n  0x002f,\n  \"slashBigg\",\n  0x002f,\n  \"slashbigg\",\n  0x002f,\n  \"summationdisplay\",\n  0x2211,\n  \"summationtext\",\n  0x2211,\n  \"tildewide\",\n  0x02dc,\n  \"tildewider\",\n  0x02dc,\n  \"tildewidest\",\n  0x02dc,\n  \"uniondisplay\",\n  0x22c3,\n  \"unionmultidisplay\",\n  0x228e,\n  \"unionmultitext\",\n  0x228e,\n  \"unionsqdisplay\",\n  0x2294,\n  \"unionsqtext\",\n  0x2294,\n  \"uniontext\",\n  0x22c3,\n  \"vextenddouble\",\n  0x2225,\n  \"vextendsingle\",\n  0x2223\n ];\n});\nconst getDingbatsGlyphsUnicode = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function () {\n return [\n  \"space\",\n  0x0020,\n  \"a1\",\n  0x2701,\n  \"a2\",\n  0x2702,\n  \"a202\",\n  0x2703,\n  \"a3\",\n  0x2704,\n  \"a4\",\n  0x260e,\n  \"a5\",\n  0x2706,\n  \"a119\",\n  0x2707,\n  \"a118\",\n  0x2708,\n  \"a117\",\n  0x2709,\n  \"a11\",\n  0x261b,\n  \"a12\",\n  0x261e,\n  \"a13\",\n  0x270c,\n  \"a14\",\n  0x270d,\n  \"a15\",\n  0x270e,\n  \"a16\",\n  0x270f,\n  \"a105\",\n  0x2710,\n  \"a17\",\n  0x2711,\n  \"a18\",\n  0x2712,\n  \"a19\",\n  0x2713,\n  \"a20\",\n  0x2714,\n  \"a21\",\n  0x2715,\n  \"a22\",\n  0x2716,\n  \"a23\",\n  0x2717,\n  \"a24\",\n  0x2718,\n  \"a25\",\n  0x2719,\n  \"a26\",\n  0x271a,\n  \"a27\",\n  0x271b,\n  \"a28\",\n  0x271c,\n  \"a6\",\n  0x271d,\n  \"a7\",\n  0x271e,\n  \"a8\",\n  0x271f,\n  \"a9\",\n  0x2720,\n  \"a10\",\n  0x2721,\n  \"a29\",\n  0x2722,\n  \"a30\",\n  0x2723,\n  \"a31\",\n  0x2724,\n  \"a32\",\n  0x2725,\n  \"a33\",\n  0x2726,\n  \"a34\",\n  0x2727,\n  \"a35\",\n  0x2605,\n  \"a36\",\n  0x2729,\n  \"a37\",\n  0x272a,\n  \"a38\",\n  0x272b,\n  \"a39\",\n  0x272c,\n  \"a40\",\n  0x272d,\n  \"a41\",\n  0x272e,\n  \"a42\",\n  0x272f,\n  \"a43\",\n  0x2730,\n  \"a44\",\n  0x2731,\n  \"a45\",\n  0x2732,\n  \"a46\",\n  0x2733,\n  \"a47\",\n  0x2734,\n  \"a48\",\n  0x2735,\n  \"a49\",\n  0x2736,\n  \"a50\",\n  0x2737,\n  \"a51\",\n  0x2738,\n  \"a52\",\n  0x2739,\n  \"a53\",\n  0x273a,\n  \"a54\",\n  0x273b,\n  \"a55\",\n  0x273c,\n  \"a56\",\n  0x273d,\n  \"a57\",\n  0x273e,\n  \"a58\",\n  0x273f,\n  \"a59\",\n  0x2740,\n  \"a60\",\n  0x2741,\n  \"a61\",\n  0x2742,\n  \"a62\",\n  0x2743,\n  \"a63\",\n  0x2744,\n  \"a64\",\n  0x2745,\n  \"a65\",\n  0x2746,\n  \"a66\",\n  0x2747,\n  \"a67\",\n  0x2748,\n  \"a68\",\n  0x2749,\n  \"a69\",\n  0x274a,\n  \"a70\",\n  0x274b,\n  \"a71\",\n  0x25cf,\n  \"a72\",\n  0x274d,\n  \"a73\",\n  0x25a0,\n  \"a74\",\n  0x274f,\n  \"a203\",\n  0x2750,\n  \"a75\",\n  0x2751,\n  \"a204\",\n  0x2752,\n  \"a76\",\n  0x25b2,\n  \"a77\",\n  0x25bc,\n  \"a78\",\n  0x25c6,\n  \"a79\",\n  0x2756,\n  \"a81\",\n  0x25d7,\n  \"a82\",\n  0x2758,\n  \"a83\",\n  0x2759,\n  \"a84\",\n  0x275a,\n  \"a97\",\n  0x275b,\n  \"a98\",\n  0x275c,\n  \"a99\",\n  0x275d,\n  \"a100\",\n  0x275e,\n  \"a101\",\n  0x2761,\n  \"a102\",\n  0x2762,\n  \"a103\",\n  0x2763,\n  \"a104\",\n  0x2764,\n  \"a106\",\n  0x2765,\n  \"a107\",\n  0x2766,\n  \"a108\",\n  0x2767,\n  \"a112\",\n  0x2663,\n  \"a111\",\n  0x2666,\n  \"a110\",\n  0x2665,\n  \"a109\",\n  0x2660,\n  \"a120\",\n  0x2460,\n  \"a121\",\n  0x2461,\n  \"a122\",\n  0x2462,\n  \"a123\",\n  0x2463,\n  \"a124\",\n  0x2464,\n  \"a125\",\n  0x2465,\n  \"a126\",\n  0x2466,\n  \"a127\",\n  0x2467,\n  \"a128\",\n  0x2468,\n  \"a129\",\n  0x2469,\n  \"a130\",\n  0x2776,\n  \"a131\",\n  0x2777,\n  \"a132\",\n  0x2778,\n  \"a133\",\n  0x2779,\n  \"a134\",\n  0x277a,\n  \"a135\",\n  0x277b,\n  \"a136\",\n  0x277c,\n  \"a137\",\n  0x277d,\n  \"a138\",\n  0x277e,\n  \"a139\",\n  0x277f,\n  \"a140\",\n  0x2780,\n  \"a141\",\n  0x2781,\n  \"a142\",\n  0x2782,\n  \"a143\",\n  0x2783,\n  \"a144\",\n  0x2784,\n  \"a145\",\n  0x2785,\n  \"a146\",\n  0x2786,\n  \"a147\",\n  0x2787,\n  \"a148\",\n  0x2788,\n  \"a149\",\n  0x2789,\n  \"a150\",\n  0x278a,\n  \"a151\",\n  0x278b,\n  \"a152\",\n  0x278c,\n  \"a153\",\n  0x278d,\n  \"a154\",\n  0x278e,\n  \"a155\",\n  0x278f,\n  \"a156\",\n  0x2790,\n  \"a157\",\n  0x2791,\n  \"a158\",\n  0x2792,\n  \"a159\",\n  0x2793,\n  \"a160\",\n  0x2794,\n  \"a161\",\n  0x2192,\n  \"a163\",\n  0x2194,\n  \"a164\",\n  0x2195,\n  \"a196\",\n  0x2798,\n  \"a165\",\n  0x2799,\n  \"a192\",\n  0x279a,\n  \"a166\",\n  0x279b,\n  \"a167\",\n  0x279c,\n  \"a168\",\n  0x279d,\n  \"a169\",\n  0x279e,\n  \"a170\",\n  0x279f,\n  \"a171\",\n  0x27a0,\n  \"a172\",\n  0x27a1,\n  \"a173\",\n  0x27a2,\n  \"a162\",\n  0x27a3,\n  \"a174\",\n  0x27a4,\n  \"a175\",\n  0x27a5,\n  \"a176\",\n  0x27a6,\n  \"a177\",\n  0x27a7,\n  \"a178\",\n  0x27a8,\n  \"a179\",\n  0x27a9,\n  \"a193\",\n  0x27aa,\n  \"a180\",\n  0x27ab,\n  \"a199\",\n  0x27ac,\n  \"a181\",\n  0x27ad,\n  \"a200\",\n  0x27ae,\n  \"a182\",\n  0x27af,\n  \"a201\",\n  0x27b1,\n  \"a183\",\n  0x27b2,\n  \"a184\",\n  0x27b3,\n  \"a197\",\n  0x27b4,\n  \"a185\",\n  0x27b5,\n  \"a194\",\n  0x27b6,\n  \"a198\",\n  0x27b7,\n  \"a186\",\n  0x27b8,\n  \"a195\",\n  0x27b9,\n  \"a187\",\n  0x27ba,\n  \"a188\",\n  0x27bb,\n  \"a189\",\n  0x27bc,\n  \"a190\",\n  0x27bd,\n  \"a191\",\n  0x27be,\n  \"a89\",\n  0x2768,\n  \"a90\",\n  0x2769,\n  \"a93\",\n  0x276a,\n  \"a94\",\n  0x276b,\n  \"a91\",\n  0x276c,\n  \"a92\",\n  0x276d,\n  \"a205\",\n  0x276e,\n  \"a85\",\n  0x276f,\n  \"a206\",\n  0x2770,\n  \"a86\",\n  0x2771,\n  \"a87\",\n  0x2772,\n  \"a88\",\n  0x2773,\n  \"a95\",\n  0x2774,\n  \"a96\",\n  0x2775,\n  \".notdef\",\n  0x0000\n ];\n});\n\n\n/***/ }),\n/* 40 */\n/***/ ((__unused_webpack_module, __webpack_exports__, __w_pdfjs_require__) => {\n\n__w_pdfjs_require__.r(__webpack_exports__);\n/* harmony export */ __w_pdfjs_require__.d(__webpack_exports__, {\n/* harmony export */   \"clearUnicodeCaches\": () => (/* binding */ clearUnicodeCaches),\n/* harmony export */   \"getCharUnicodeCategory\": () => (/* binding */ getCharUnicodeCategory),\n/* harmony export */   \"getNormalizedUnicodes\": () => (/* binding */ getNormalizedUnicodes),\n/* harmony export */   \"getUnicodeForGlyph\": () => (/* binding */ getUnicodeForGlyph),\n/* harmony export */   \"getUnicodeRangeFor\": () => (/* binding */ getUnicodeRangeFor),\n/* harmony export */   \"mapSpecialUnicodeValues\": () => (/* binding */ mapSpecialUnicodeValues),\n/* harmony export */   \"reverseIfRtl\": () => (/* binding */ reverseIfRtl)\n/* harmony export */ });\n/* harmony import */ var _core_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __w_pdfjs_require__(6);\n\nconst getSpecialPUASymbols = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getLookupTableFactory)(function (t) {\n t[63721] = 0x00a9;\n t[63193] = 0x00a9;\n t[63720] = 0x00ae;\n t[63194] = 0x00ae;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23a7;\n t[63730] = 0x23a8;\n t[63731] = 0x23a9;\n t[63740] = 0x23ab;\n t[63741] = 0x23ac;\n t[63742] = 0x23ad;\n t[63726] = 0x23a1;\n t[63727] = 0x23a2;\n t[63728] = 0x23a3;\n t[63737] = 0x23a4;\n t[63738] = 0x23a5;\n t[63739] = 0x23a6;\n t[63723] = 0x239b;\n t[63724] = 0x239c;\n t[63725] = 0x239d;\n t[63734] = 0x239e;\n t[63735] = 0x239f;\n t[63736] = 0x23a0;\n});\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n  return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n  return getSpecialPUASymbols()[code] || code;\n } else if (code === 0x00ad) {\n  return 0x002d;\n }\n return code;\n}\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n let unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n  return unicode;\n }\n if (!name) {\n  return -1;\n }\n if (name[0] === \"u\") {\n  const nameLen = name.length;\n  let hexStr;\n  if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n   hexStr = name.substring(3);\n  } else if (nameLen >= 5 && nameLen <= 7) {\n   hexStr = name.substring(1);\n  } else {\n   return -1;\n  }\n  if (hexStr === hexStr.toUpperCase()) {\n   unicode = parseInt(hexStr, 16);\n   if (unicode >= 0) {\n    return unicode;\n   }\n  }\n }\n return -1;\n}\nconst UnicodeRanges = [\n {\n  begin: 0x0000,\n  end: 0x007f\n },\n {\n  begin: 0x0080,\n  end: 0x00ff\n },\n {\n  begin: 0x0100,\n  end: 0x017f\n },\n {\n  begin: 0x0180,\n  end: 0x024f\n },\n {\n  begin: 0x0250,\n  end: 0x02af\n },\n {\n  begin: 0x02b0,\n  end: 0x02ff\n },\n {\n  begin: 0x0300,\n  end: 0x036f\n },\n {\n  begin: 0x0370,\n  end: 0x03ff\n },\n {\n  begin: 0x2c80,\n  end: 0x2cff\n },\n {\n  begin: 0x0400,\n  end: 0x04ff\n },\n {\n  begin: 0x0530,\n  end: 0x058f\n },\n {\n  begin: 0x0590,\n  end: 0x05ff\n },\n {\n  begin: 0xa500,\n  end: 0xa63f\n },\n {\n  begin: 0x0600,\n  end: 0x06ff\n },\n {\n  begin: 0x07c0,\n  end: 0x07ff\n },\n {\n  begin: 0x0900,\n  end: 0x097f\n },\n {\n  begin: 0x0980,\n  end: 0x09ff\n },\n {\n  begin: 0x0a00,\n  end: 0x0a7f\n },\n {\n  begin: 0x0a80,\n  end: 0x0aff\n },\n {\n  begin: 0x0b00,\n  end: 0x0b7f\n },\n {\n  begin: 0x0b80,\n  end: 0x0bff\n },\n {\n  begin: 0x0c00,\n  end: 0x0c7f\n },\n {\n  begin: 0x0c80,\n  end: 0x0cff\n },\n {\n  begin: 0x0d00,\n  end: 0x0d7f\n },\n {\n  begin: 0x0e00,\n  end: 0x0e7f\n },\n {\n  begin: 0x0e80,\n  end: 0x0eff\n },\n {\n  begin: 0x10a0,\n  end: 0x10ff\n },\n {\n  begin: 0x1b00,\n  end: 0x1b7f\n },\n {\n  begin: 0x1100,\n  end: 0x11ff\n },\n {\n  begin: 0x1e00,\n  end: 0x1eff\n },\n {\n  begin: 0x1f00,\n  end: 0x1fff\n },\n {\n  begin: 0x2000,\n  end: 0x206f\n },\n {\n  begin: 0x2070,\n  end: 0x209f\n },\n {\n  begin: 0x20a0,\n  end: 0x20cf\n },\n {\n  begin: 0x20d0,\n  end: 0x20ff\n },\n {\n  begin: 0x2100,\n  end: 0x214f\n },\n {\n  begin: 0x2150,\n  end: 0x218f\n },\n {\n  begin: 0x2190,\n  end: 0x21ff\n },\n {\n  begin: 0x2200,\n  end: 0x22ff\n },\n {\n  begin: 0x2300,\n  end: 0x23ff\n },\n {\n  begin: 0x2400,\n  end: 0x243f\n },\n {\n  begin: 0x2440,\n  end: 0x245f\n },\n {\n  begin: 0x2460,\n  end: 0x24ff\n },\n {\n  begin: 0x2500,\n  end: 0x257f\n },\n {\n  begin: 0x2580,\n  end: 0x259f\n },\n {\n  begin: 0x25a0,\n  end: 0x25ff\n },\n {\n  begin: 0x2600,\n  end: 0x26ff\n },\n {\n  begin: 0x2700,\n  end: 0x27bf\n },\n {\n  begin: 0x3000,\n  end: 0x303f\n },\n {\n  begin: 0x3040,\n  end: 0x309f\n },\n {\n  begin: 0x30a0,\n  end: 0x30ff\n },\n {\n  begin: 0x3100,\n  end: 0x312f\n },\n {\n  begin: 0x3130,\n  end: 0x318f\n },\n {\n  begin: 0xa840,\n  end: 0xa87f\n },\n {\n  begin: 0x3200,\n  end: 0x32ff\n },\n {\n  begin: 0x3300,\n  end: 0x33ff\n },\n {\n  begin: 0xac00,\n  end: 0xd7af\n },\n {\n  begin: 0xd800,\n  end: 0xdfff\n },\n {\n  begin: 0x10900,\n  end: 0x1091f\n },\n {\n  begin: 0x4e00,\n  end: 0x9fff\n },\n {\n  begin: 0xe000,\n  end: 0xf8ff\n },\n {\n  begin: 0x31c0,\n  end: 0x31ef\n },\n {\n  begin: 0xfb00,\n  end: 0xfb4f\n },\n {\n  begin: 0xfb50,\n  end: 0xfdff\n },\n {\n  begin: 0xfe20,\n  end: 0xfe2f\n },\n {\n  begin: 0xfe10,\n  end: 0xfe1f\n },\n {\n  begin: 0xfe50,\n  end: 0xfe6f\n },\n {\n  begin: 0xfe70,\n  end: 0xfeff\n },\n {\n  begin: 0xff00,\n  end: 0xffef\n },\n {\n  begin: 0xfff0,\n  end: 0xffff\n },\n {\n  begin: 0x0f00,\n  end: 0x0fff\n },\n {\n  begin: 0x0700,\n  end: 0x074f\n },\n {\n  begin: 0x0780,\n  end: 0x07bf\n },\n {\n  begin: 0x0d80,\n  end: 0x0dff\n },\n {\n  begin: 0x1000,\n  end: 0x109f\n },\n {\n  begin: 0x1200,\n  end: 0x137f\n },\n {\n  begin: 0x13a0,\n  end: 0x13ff\n },\n {\n  begin: 0x1400,\n  end: 0x167f\n },\n {\n  begin: 0x1680,\n  end: 0x169f\n },\n {\n  begin: 0x16a0,\n  end: 0x16ff\n },\n {\n  begin: 0x1780,\n  end: 0x17ff\n },\n {\n  begin: 0x1800,\n  end: 0x18af\n },\n {\n  begin: 0x2800,\n  end: 0x28ff\n },\n {\n  begin: 0xa000,\n  end: 0xa48f\n },\n {\n  begin: 0x1700,\n  end: 0x171f\n },\n {\n  begin: 0x10300,\n  end: 0x1032f\n },\n {\n  begin: 0x10330,\n  end: 0x1034f\n },\n {\n  begin: 0x10400,\n  end: 0x1044f\n },\n {\n  begin: 0x1d000,\n  end: 0x1d0ff\n },\n {\n  begin: 0x1d400,\n  end: 0x1d7ff\n },\n {\n  begin: 0xff000,\n  end: 0xffffd\n },\n {\n  begin: 0xfe00,\n  end: 0xfe0f\n },\n {\n  begin: 0xe0000,\n  end: 0xe007f\n },\n {\n  begin: 0x1900,\n  end: 0x194f\n },\n {\n  begin: 0x1950,\n  end: 0x197f\n },\n {\n  begin: 0x1980,\n  end: 0x19df\n },\n {\n  begin: 0x1a00,\n  end: 0x1a1f\n },\n {\n  begin: 0x2c00,\n  end: 0x2c5f\n },\n {\n  begin: 0x2d30,\n  end: 0x2d7f\n },\n {\n  begin: 0x4dc0,\n  end: 0x4dff\n },\n {\n  begin: 0xa800,\n  end: 0xa82f\n },\n {\n  begin: 0x10000,\n  end: 0x1007f\n },\n {\n  begin: 0x10140,\n  end: 0x1018f\n },\n {\n  begin: 0x10380,\n  end: 0x1039f\n },\n {\n  begin: 0x103a0,\n  end: 0x103df\n },\n {\n  begin: 0x10450,\n  end: 0x1047f\n },\n {\n  begin: 0x10480,\n  end: 0x104af\n },\n {\n  begin: 0x10800,\n  end: 0x1083f\n },\n {\n  begin: 0x10a00,\n  end: 0x10a5f\n },\n {\n  begin: 0x1d300,\n  end: 0x1d35f\n },\n {\n  begin: 0x12000,\n  end: 0x123ff\n },\n {\n  begin: 0x1d360,\n  end: 0x1d37f\n },\n {\n  begin: 0x1b80,\n  end: 0x1bbf\n },\n {\n  begin: 0x1c00,\n  end: 0x1c4f\n },\n {\n  begin: 0x1c50,\n  end: 0x1c7f\n },\n {\n  begin: 0xa880,\n  end: 0xa8df\n },\n {\n  begin: 0xa900,\n  end: 0xa92f\n },\n {\n  begin: 0xa930,\n  end: 0xa95f\n },\n {\n  begin: 0xaa00,\n  end: 0xaa5f\n },\n {\n  begin: 0x10190,\n  end: 0x101cf\n },\n {\n  begin: 0x101d0,\n  end: 0x101ff\n },\n {\n  begin: 0x102a0,\n  end: 0x102df\n },\n {\n  begin: 0x1f030,\n  end: 0x1f09f\n }\n];\nfunction getUnicodeRangeFor(value) {\n for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n  const range = UnicodeRanges[i];\n  if (value >= range.begin && value < range.end) {\n   return i;\n  }\n }\n return -1;\n}\nfunction isRTLRangeFor(value) {\n let range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n  return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n  return true;\n }\n return false;\n}\nconst getNormalizedUnicodes = (0,_core_utils_js__WEBPACK_IMPORTED_MODULE_0__.getArrayLookupTableFactory)(function () {\n return [\n  \"\\u00A8\",\n  \"\\u0020\\u0308\",\n  \"\\u00AF\",\n  \"\\u0020\\u0304\",\n  \"\\u00B4\",\n  \"\\u0020\\u0301\",\n  \"\\u00B5\",\n  \"\\u03BC\",\n  \"\\u00B8\",\n  \"\\u0020\\u0327\",\n  \"\\u0132\",\n  \"\\u0049\\u004A\",\n  \"\\u0133\",\n  \"\\u0069\\u006A\",\n  \"\\u013F\",\n  \"\\u004C\\u00B7\",\n  \"\\u0140\",\n  \"\\u006C\\u00B7\",\n  \"\\u0149\",\n  \"\\u02BC\\u006E\",\n  \"\\u017F\",\n  \"\\u0073\",\n  \"\\u01C4\",\n  \"\\u0044\\u017D\",\n  \"\\u01C5\",\n  \"\\u0044\\u017E\",\n  \"\\u01C6\",\n  \"\\u0064\\u017E\",\n  \"\\u01C7\",\n  \"\\u004C\\u004A\",\n  \"\\u01C8\",\n  \"\\u004C\\u006A\",\n  \"\\u01C9\",\n  \"\\u006C\\u006A\",\n  \"\\u01CA\",\n  \"\\u004E\\u004A\",\n  \"\\u01CB\",\n  \"\\u004E\\u006A\",\n  \"\\u01CC\",\n  \"\\u006E\\u006A\",\n  \"\\u01F1\",\n  \"\\u0044\\u005A\",\n  \"\\u01F2\",\n  \"\\u0044\\u007A\",\n  \"\\u01F3\",\n  \"\\u0064\\u007A\",\n  \"\\u02D8\",\n  \"\\u0020\\u0306\",\n  \"\\u02D9\",\n  \"\\u0020\\u0307\",\n  \"\\u02DA\",\n  \"\\u0020\\u030A\",\n  \"\\u02DB\",\n  \"\\u0020\\u0328\",\n  \"\\u02DC\",\n  \"\\u0020\\u0303\",\n  \"\\u02DD\",\n  \"\\u0020\\u030B\",\n  \"\\u037A\",\n  \"\\u0020\\u0345\",\n  \"\\u0384\",\n  \"\\u0020\\u0301\",\n  \"\\u03D0\",\n  \"\\u03B2\",\n  \"\\u03D1\",\n  \"\\u03B8\",\n  \"\\u03D2\",\n  \"\\u03A5\",\n  \"\\u03D5\",\n  \"\\u03C6\",\n  \"\\u03D6\",\n  \"\\u03C0\",\n  \"\\u03F0\",\n  \"\\u03BA\",\n  \"\\u03F1\",\n  \"\\u03C1\",\n  \"\\u03F2\",\n  \"\\u03C2\",\n  \"\\u03F4\",\n  \"\\u0398\",\n  \"\\u03F5\",\n  \"\\u03B5\",\n  \"\\u03F9\",\n  \"\\u03A3\",\n  \"\\u0587\",\n  \"\\u0565\\u0582\",\n  \"\\u0675\",\n  \"\\u0627\\u0674\",\n  \"\\u0676\",\n  \"\\u0648\\u0674\",\n  \"\\u0677\",\n  \"\\u06C7\\u0674\",\n  \"\\u0678\",\n  \"\\u064A\\u0674\",\n  \"\\u0E33\",\n  \"\\u0E4D\\u0E32\",\n  \"\\u0EB3\",\n  \"\\u0ECD\\u0EB2\",\n  \"\\u0EDC\",\n  \"\\u0EAB\\u0E99\",\n  \"\\u0EDD\",\n  \"\\u0EAB\\u0EA1\",\n  \"\\u0F77\",\n  \"\\u0FB2\\u0F81\",\n  \"\\u0F79\",\n  \"\\u0FB3\\u0F81\",\n  \"\\u1E9A\",\n  \"\\u0061\\u02BE\",\n  \"\\u1FBD\",\n  \"\\u0020\\u0313\",\n  \"\\u1FBF\",\n  \"\\u0020\\u0313\",\n  \"\\u1FC0\",\n  \"\\u0020\\u0342\",\n  \"\\u1FFE\",\n  \"\\u0020\\u0314\",\n  \"\\u2002\",\n  \"\\u0020\",\n  \"\\u2003\",\n  \"\\u0020\",\n  \"\\u2004\",\n  \"\\u0020\",\n  \"\\u2005\",\n  \"\\u0020\",\n  \"\\u2006\",\n  \"\\u0020\",\n  \"\\u2008\",\n  \"\\u0020\",\n  \"\\u2009\",\n  \"\\u0020\",\n  \"\\u200A\",\n  \"\\u0020\",\n  \"\\u2017\",\n  \"\\u0020\\u0333\",\n  \"\\u2024\",\n  \"\\u002E\",\n  \"\\u2025\",\n  \"\\u002E\\u002E\",\n  \"\\u2026\",\n  \"\\u002E\\u002E\\u002E\",\n  \"\\u2033\",\n  \"\\u2032\\u2032\",\n  \"\\u2034\",\n  \"\\u2032\\u2032\\u2032\",\n  \"\\u2036\",\n  \"\\u2035\\u2035\",\n  \"\\u2037\",\n  \"\\u2035\\u2035\\u2035\",\n  \"\\u203C\",\n  \"\\u0021\\u0021\",\n  \"\\u203E\",\n  \"\\u0020\\u0305\",\n  \"\\u2047\",\n  \"\\u003F\\u003F\",\n  \"\\u2048\",\n  \"\\u003F\\u0021\",\n  \"\\u2049\",\n  \"\\u0021\\u003F\",\n  \"\\u2057\",\n  \"\\u2032\\u2032\\u2032\\u2032\",\n  \"\\u205F\",\n  \"\\u0020\",\n  \"\\u20A8\",\n  \"\\u0052\\u0073\",\n  \"\\u2100\",\n  \"\\u0061\\u002F\\u0063\",\n  \"\\u2101\",\n  \"\\u0061\\u002F\\u0073\",\n  \"\\u2103\",\n  \"\\u00B0\\u0043\",\n  \"\\u2105\",\n  \"\\u0063\\u002F\\u006F\",\n  \"\\u2106\",\n  \"\\u0063\\u002F\\u0075\",\n  \"\\u2107\",\n  \"\\u0190\",\n  \"\\u2109\",\n  \"\\u00B0\\u0046\",\n  \"\\u2116\",\n  \"\\u004E\\u006F\",\n  \"\\u2121\",\n  \"\\u0054\\u0045\\u004C\",\n  \"\\u2135\",\n  \"\\u05D0\",\n  \"\\u2136\",\n  \"\\u05D1\",\n  \"\\u2137\",\n  \"\\u05D2\",\n  \"\\u2138\",\n  \"\\u05D3\",\n  \"\\u213B\",\n  \"\\u0046\\u0041\\u0058\",\n  \"\\u2160\",\n  \"\\u0049\",\n  \"\\u2161\",\n  \"\\u0049\\u0049\",\n  \"\\u2162\",\n  \"\\u0049\\u0049\\u0049\",\n  \"\\u2163\",\n  \"\\u0049\\u0056\",\n  \"\\u2164\",\n  \"\\u0056\",\n  \"\\u2165\",\n  \"\\u0056\\u0049\",\n  \"\\u2166\",\n  \"\\u0056\\u0049\\u0049\",\n  \"\\u2167\",\n  \"\\u0056\\u0049\\u0049\\u0049\",\n  \"\\u2168\",\n  \"\\u0049\\u0058\",\n  \"\\u2169\",\n  \"\\u0058\",\n  \"\\u216A\",\n  \"\\u0058\\u0049\",\n  \"\\u216B\",\n  \"\\u0058\\u0049\\u0049\",\n  \"\\u216C\",\n  \"\\u004C\",\n  \"\\u216D\",\n  \"\\u0043\",\n  \"\\u216E\",\n  \"\\u0044\",\n  \"\\u216F\",\n  \"\\u004D\",\n  \"\\u2170\",\n  \"\\u0069\",\n  \"\\u2171\",\n  \"\\u0069\\u0069\",\n  \"\\u2172\",\n  \"\\u0069\\u0069\\u0069\",\n  \"\\u2173\",\n  \"\\u0069\\u0076\",\n  \"\\u2174\",\n  \"\\u0076\",\n  \"\\u2175\",\n  \"\\u0076\\u0069\",\n  \"\\u2176\",\n  \"\\u0076\\u0069\\u0069\",\n  \"\\u2177\",\n  \"\\u0076\\u0069\\u0069\\u0069\",\n  \"\\u2178\",\n  \"\\u0069\\u0078\",\n  \"\\u2179\",\n  \"\\u0078\",\n  \"\\u217A\",\n  \"\\u0078\\u0069\",\n  \"\\u217B\",\n  \"\\u0078\\u0069\\u0069\",\n  \"\\u217C\",\n  \"\\u006C\",\n  \"\\u217D\",\n  \"\\u0063\",\n  \"\\u217E\",\n  \"\\u0064\",\n  \"\\u217F\",\n  \"\\u006D\",\n  \"\\u222C\",\n  \"\\u222B\\u222B\",\n  \"\\u222D\",\n  \"\\u222B\\u222B\\u222B\",\n  \"\\u222F\",\n  \"\\u222E\\u222E\",\n  \"\\u2230\",\n  \"\\u222E\\u222E\\u222E\",\n  \"\\u2474\",\n  \"\\u0028\\u0031\\u0029\",\n  \"\\u2475\",\n  \"\\u0028\\u0032\\u0029\",\n  \"\\u2476\",\n  \"\\u0028\\u0033\\u0029\",\n  \"\\u2477\",\n  \"\\u0028\\u0034\\u0029\",\n  \"\\u2478\",\n  \"\\u0028\\u0035\\u0029\",\n  \"\\u2479\",\n  \"\\u0028\\u0036\\u0029\",\n  \"\\u247A\",\n  \"\\u0028\\u0037\\u0029\",\n  \"\\u247B\",\n  \"\\u0028\\u0038\\u0029\",\n  \"\\u247C\",\n  \"\\u0028\\u0039\\u0029\",\n  \"\\u247D\",\n  \"\\u0028\\u0031\\u0030\\u0029\",\n  \"\\u247E\",\n  \"\\u0028\\u0031\\u0031\\u0029\",\n  \"\\u247F\",\n  \"\\u0028\\u0031\\u0032\\u0029\",\n  \"\\u2480\",\n  \"\\u0028\\u0031\\u0033\\u0029\",\n  \"\\u2481\",\n  \"\\u0028\\u0031\\u0034\\u0029\",\n  \"\\u2482\",\n  \"\\u0028\\u0031\\u0035\\u0029\",\n  \"\\u2483\",\n  \"\\u0028\\u0031\\u0036\\u0029\",\n  \"\\u2484\",\n  \"\\u0028\\u0031\\u0037\\u0029\",\n  \"\\u2485\",\n  \"\\u0028\\u0031\\u0038\\u0029\",\n  \"\\u2486\",\n  \"\\u0028\\u0031\\u0039\\u0029\",\n  \"\\u2487\",\n  \"\\u0028\\u0032\\u0030\\u0029\",\n  \"\\u2488\",\n  \"\\u0031\\u002E\",\n  \"\\u2489\",\n  \"\\u0032\\u002E\",\n  \"\\u248A\",\n  \"\\u0033\\u002E\",\n  \"\\u248B\",\n  \"\\u0034\\u002E\",\n  \"\\u248C\",\n  \"\\u0035\\u002E\",\n  \"\\u248D\",\n  \"\\u0036\\u002E\",\n  \"\\u248E\",\n  \"\\u0037\\u002E\",\n  \"\\u248F\",\n  \"\\u0038\\u002E\",\n  \"\\u2490\",\n  \"\\u0039\\u002E\",\n  \"\\u2491\",\n  \"\\u0031\\u0030\\u002E\",\n  \"\\u2492\",\n  \"\\u0031\\u0031\\u002E\",\n  \"\\u2493\",\n  \"\\u0031\\u0032\\u002E\",\n  \"\\u2494\",\n  \"\\u0031\\u0033\\u002E\",\n  \"\\u2495\",\n  \"\\u0031\\u0034\\u002E\",\n  \"\\u2496\",\n  \"\\u0031\\u0035\\u002E\",\n  \"\\u2497\",\n  \"\\u0031\\u0036\\u002E\",\n  \"\\u2498\",\n  \"\\u0031\\u0037\\u002E\",\n  \"\\u2499\",\n  \"\\u0031\\u0038\\u002E\",\n  \"\\u249A\",\n  \"\\u0031\\u0039\\u002E\",\n  \"\\u249B\",\n  \"\\u0032\\u0030\\u002E\",\n  \"\\u249C\",\n  \"\\u0028\\u0061\\u0029\",\n  \"\\u249D\",\n  \"\\u0028\\u0062\\u0029\",\n  \"\\u249E\",\n  \"\\u0028\\u0063\\u0029\",\n  \"\\u249F\",\n  \"\\u0028\\u0064\\u0029\",\n  \"\\u24A0\",\n  \"\\u0028\\u0065\\u0029\",\n  \"\\u24A1\",\n  \"\\u0028\\u0066\\u0029\",\n  \"\\u24A2\",\n  \"\\u0028\\u0067\\u0029\",\n  \"\\u24A3\",\n  \"\\u0028\\u0068\\u0029\",\n  \"\\u24A4\",\n  \"\\u0028\\u0069\\u0029\",\n  \"\\u24A5\",\n  \"\\u0028\\u006A\\u0029\",\n  \"\\u24A6\",\n  \"\\u0028\\u006B\\u0029\",\n  \"\\u24A7\",\n  \"\\u0028\\u006C\\u0029\",\n  \"\\u24A8\",\n  \"\\u0028\\u006D\\u0029\",\n  \"\\u24A9\",\n  \"\\u0028\\u006E\\u0029\",\n  \"\\u24AA\",\n  \"\\u0028\\u006F\\u0029\",\n  \"\\u24AB\",\n  \"\\u0028\\u0070\\u0029\",\n  \"\\u24AC\",\n  \"\\u0028\\u0071\\u0029\",\n  \"\\u24AD\",\n  \"\\u0028\\u0072\\u0029\",\n  \"\\u24AE\",\n  \"\\u0028\\u0073\\u0029\",\n  \"\\u24AF\",\n  \"\\u0028\\u0074\\u0029\",\n  \"\\u24B0\",\n  \"\\u0028\\u0075\\u0029\",\n  \"\\u24B1\",\n  \"\\u0028\\u0076\\u0029\",\n  \"\\u24B2\",\n  \"\\u0028\\u0077\\u0029\",\n  \"\\u24B3\",\n  \"\\u0028\\u0078\\u0029\",\n  \"\\u24B4\",\n  \"\\u0028\\u0079\\u0029\",\n  \"\\u24B5\",\n  \"\\u0028\\u007A\\u0029\",\n  \"\\u2A0C\",\n  \"\\u222B\\u222B\\u222B\\u222B\",\n  \"\\u2A74\",\n  \"\\u003A\\u003A\\u003D\",\n  \"\\u2A75\",\n  \"\\u003D\\u003D\",\n  \"\\u2A76\",\n  \"\\u003D\\u003D\\u003D\",\n  \"\\u2E9F\",\n  \"\\u6BCD\",\n  \"\\u2EF3\",\n  \"\\u9F9F\",\n  \"\\u2F00\",\n  \"\\u4E00\",\n  \"\\u2F01\",\n  \"\\u4E28\",\n  \"\\u2F02\",\n  \"\\u4E36\",\n  \"\\u2F03\",\n  \"\\u4E3F\",\n  \"\\u2F04\",\n  \"\\u4E59\",\n  \"\\u2F05\",\n  \"\\u4E85\",\n  \"\\u2F06\",\n  \"\\u4E8C\",\n  \"\\u2F07\",\n  \"\\u4EA0\",\n  \"\\u2F08\",\n  \"\\u4EBA\",\n  \"\\u2F09\",\n  \"\\u513F\",\n  \"\\u2F0A\",\n  \"\\u5165\",\n  \"\\u2F0B\",\n  \"\\u516B\",\n  \"\\u2F0C\",\n  \"\\u5182\",\n  \"\\u2F0D\",\n  \"\\u5196\",\n  \"\\u2F0E\",\n  \"\\u51AB\",\n  \"\\u2F0F\",\n  \"\\u51E0\",\n  \"\\u2F10\",\n  \"\\u51F5\",\n  \"\\u2F11\",\n  \"\\u5200\",\n  \"\\u2F12\",\n  \"\\u529B\",\n  \"\\u2F13\",\n  \"\\u52F9\",\n  \"\\u2F14\",\n  \"\\u5315\",\n  \"\\u2F15\",\n  \"\\u531A\",\n  \"\\u2F16\",\n  \"\\u5338\",\n  \"\\u2F17\",\n  \"\\u5341\",\n  \"\\u2F18\",\n  \"\\u535C\",\n  \"\\u2F19\",\n  \"\\u5369\",\n  \"\\u2F1A\",\n  \"\\u5382\",\n  \"\\u2F1B\",\n  \"\\u53B6\",\n  \"\\u2F1C\",\n  \"\\u53C8\",\n  \"\\u2F1D\",\n  \"\\u53E3\",\n  \"\\u2F1E\",\n  \"\\u56D7\",\n  \"\\u2F1F\",\n  \"\\u571F\",\n  \"\\u2F20\",\n  \"\\u58EB\",\n  \"\\u2F21\",\n  \"\\u5902\",\n  \"\\u2F22\",\n  \"\\u590A\",\n  \"\\u2F23\",\n  \"\\u5915\",\n  \"\\u2F24\",\n  \"\\u5927\",\n  \"\\u2F25\",\n  \"\\u5973\",\n  \"\\u2F26\",\n  \"\\u5B50\",\n  \"\\u2F27\",\n  \"\\u5B80\",\n  \"\\u2F28\",\n  \"\\u5BF8\",\n  \"\\u2F29\",\n  \"\\u5C0F\",\n  \"\\u2F2A\",\n  \"\\u5C22\",\n  \"\\u2F2B\",\n  \"\\u5C38\",\n  \"\\u2F2C\",\n  \"\\u5C6E\",\n  \"\\u2F2D\",\n  \"\\u5C71\",\n  \"\\u2F2E\",\n  \"\\u5DDB\",\n  \"\\u2F2F\",\n  \"\\u5DE5\",\n  \"\\u2F30\",\n  \"\\u5DF1\",\n  \"\\u2F31\",\n  \"\\u5DFE\",\n  \"\\u2F32\",\n  \"\\u5E72\",\n  \"\\u2F33\",\n  \"\\u5E7A\",\n  \"\\u2F34\",\n  \"\\u5E7F\",\n  \"\\u2F35\",\n  \"\\u5EF4\",\n  \"\\u2F36\",\n  \"\\u5EFE\",\n  \"\\u2F37\",\n  \"\\u5F0B\",\n  \"\\u2F38\",\n  \"\\u5F13\",\n  \"\\u2F39\",\n  \"\\u5F50\",\n  \"\\u2F3A\",\n  \"\\u5F61\",\n  \"\\u2F3B\",\n  \"\\u5F73\",\n  \"\\u2F3C\",\n  \"\\u5FC3\",\n  \"\\u2F3D\",\n  \"\\u6208\",\n  \"\\u2F3E\",\n  \"\\u6236\",\n  \"\\u2F3F\",\n  \"\\u624B\",\n  \"\\u2F40\",\n  \"\\u652F\",\n  \"\\u2F41\",\n  \"\\u6534\",\n  \"\\u2F42\",\n  \"\\u6587\",\n  \"\\u2F43\",\n  \"\\u6597\",\n  \"\\u2F44\",\n  \"\\u65A4\",\n  \"\\u2F45\",\n  \"\\u65B9\",\n  \"\\u2F46\",\n  \"\\u65E0\",\n  \"\\u2F47\",\n  \"\\u65E5\",\n  \"\\u2F48\",\n  \"\\u66F0\",\n  \"\\u2F49\",\n  \"\\u6708\",\n  \"\\u2F4A\",\n  \"\\u6728\",\n  \"\\u2F4B\",\n  \"\\u6B20\",\n  \"\\u2F4C\",\n  \"\\u6B62\",\n  \"\\u2F4D\",\n  \"\\u6B79\",\n  \"\\u2F4E\",\n  \"\\u6BB3\",\n  \"\\u2F4F\",\n  \"\\u6BCB\",\n  \"\\u2F50\",\n  \"\\u6BD4\",\n  \"\\u2F51\",\n  \"\\u6BDB\",\n  \"\\u2F52\",\n  \"\\u6C0F\",\n  \"\\u2F53\",\n  \"\\u6C14\",\n  \"\\u2F54\",\n  \"\\u6C34\",\n  \"\\u2F55\",\n  \"\\u706B\",\n  \"\\u2F56\",\n  \"\\u722A\",\n  \"\\u2F57\",\n  \"\\u7236\",\n  \"\\u2F58\",\n  \"\\u723B\",\n  \"\\u2F59\",\n  \"\\u723F\",\n  \"\\u2F5A\",\n  \"\\u7247\",\n  \"\\u2F5B\",\n  \"\\u7259\",\n  \"\\u2F5C\",\n  \"\\u725B\",\n  \"\\u2F5D\",\n  \"\\u72AC\",\n  \"\\u2F5E\",\n  \"\\u7384\",\n  \"\\u2F5F\",\n  \"\\u7389\",\n  \"\\u2F60\",\n  \"\\u74DC\",\n  \"\\u2F61\",\n  \"\\u74E6\",\n  \"\\u2F62\",\n  \"\\u7518\",\n  \"\\u2F63\",\n  \"\\u751F\",\n  \"\\u2F64\",\n  \"\\u7528\",\n  \"\\u2F65\",\n  \"\\u7530\",\n  \"\\u2F66\",\n  \"\\u758B\",\n  \"\\u2F67\",\n  \"\\u7592\",\n  \"\\u2F68\",\n  \"\\u7676\",\n  \"\\u2F69\",\n  \"\\u767D\",\n  \"\\u2F6A\",\n  \"\\u76AE\",\n  \"\\u2F6B\",\n  \"\\u76BF\",\n  \"\\u2F6C\",\n  \"\\u76EE\",\n  \"\\u2F6D\",\n  \"\\u77DB\",\n  \"\\u2F6E\",\n  \"\\u77E2\",\n  \"\\u2F6F\",\n  \"\\u77F3\",\n  \"\\u2F70\",\n  \"\\u793A\",\n  \"\\u2F71\",\n  \"\\u79B8\",\n  \"\\u2F72\",\n  \"\\u79BE\",\n  \"\\u2F73\",\n  \"\\u7A74\",\n  \"\\u2F74\",\n  \"\\u7ACB\",\n  \"\\u2F75\",\n  \"\\u7AF9\",\n  \"\\u2F76\",\n  \"\\u7C73\",\n  \"\\u2F77\",\n  \"\\u7CF8\",\n  \"\\u2F78\",\n  \"\\u7F36\",\n  \"\\u2F79\",\n  \"\\u7F51\",\n  \"\\u2F7A\",\n  \"\\u7F8A\",\n  \"\\u2F7B\",\n  \"\\u7FBD\",\n  \"\\u2F7C\",\n  \"\\u8001\",\n  \"\\u2F7D\",\n  \"\\u800C\",\n  \"\\u2F7E\",\n  \"\\u8012\",\n  \"\\u2F7F\",\n  \"\\u8033\",\n  \"\\u2F80\",\n  \"\\u807F\",\n  \"\\u2F81\",\n  \"\\u8089\",\n  \"\\u2F82\",\n  \"\\u81E3\",\n  \"\\u2F83\",\n  \"\\u81EA\",\n  \"\\u2F84\",\n  \"\\u81F3\",\n  \"\\u2F85\",\n  \"\\u81FC\",\n  \"\\u2F86\",\n  \"\\u820C\",\n  \"\\u2F87\",\n  \"\\u821B\",\n  \"\\u2F88\",\n  \"\\u821F\",\n  \"\\u2F89\",\n  \"\\u826E\",\n  \"\\u2F8A\",\n  \"\\u8272\",\n  \"\\u2F8B\",\n  \"\\u8278\",\n  \"\\u2F8C\",\n  \"\\u864D\",\n  \"\\u2F8D\",\n  \"\\u866B\",\n  \"\\u2F8E\",\n  \"\\u8840\",\n  \"\\u2F8F\",\n  \"\\u884C\",\n  \"\\u2F90\",\n  \"\\u8863\",\n  \"\\u2F91\",\n  \"\\u897E\",\n  \"\\u2F92\",\n  \"\\u898B\",\n  \"\\u2F93\",\n  \"\\u89D2\",\n  \"\\u2F94\",\n  \"\\u8A00\",\n  \"\\u2F95\",\n  \"\\u8C37\",\n  \"\\u2F96\",\n  \"\\u8C46\",\n  \"\\u2F97\",\n  \"\\u8C55\",\n  \"\\u2F98\",\n  \"\\u8C78\",\n  \"\\u2F99\",\n  \"\\u8C9D\",\n  \"\\u2F9A\",\n  \"\\u8D64\",\n  \"\\u2F9B\",\n  \"\\u8D70\",\n  \"\\u2F9C\",\n  \"\\u8DB3\",\n  \"\\u2F9D\",\n  \"\\u8EAB\",\n  \"\\u2F9E\",\n  \"\\u8ECA\",\n  \"\\u2F9F\",\n  \"\\u8F9B\",\n  \"\\u2FA0\",\n  \"\\u8FB0\",\n  \"\\u2FA1\",\n  \"\\u8FB5\",\n  \"\\u2FA2\",\n  \"\\u9091\",\n  \"\\u2FA3\",\n  \"\\u9149\",\n  \"\\u2FA4\",\n  \"\\u91C6\",\n  \"\\u2FA5\",\n  \"\\u91CC\",\n  \"\\u2FA6\",\n  \"\\u91D1\",\n  \"\\u2FA7\",\n  \"\\u9577\",\n  \"\\u2FA8\",\n  \"\\u9580\",\n  \"\\u2FA9\",\n  \"\\u961C\",\n  \"\\u2FAA\",\n  \"\\u96B6\",\n  \"\\u2FAB\",\n  \"\\u96B9\",\n  \"\\u2FAC\",\n  \"\\u96E8\",\n  \"\\u2FAD\",\n  \"\\u9751\",\n  \"\\u2FAE\",\n  \"\\u975E\",\n  \"\\u2FAF\",\n  \"\\u9762\",\n  \"\\u2FB0\",\n  \"\\u9769\",\n  \"\\u2FB1\",\n  \"\\u97CB\",\n  \"\\u2FB2\",\n  \"\\u97ED\",\n  \"\\u2FB3\",\n  \"\\u97F3\",\n  \"\\u2FB4\",\n  \"\\u9801\",\n  \"\\u2FB5\",\n  \"\\u98A8\",\n  \"\\u2FB6\",\n  \"\\u98DB\",\n  \"\\u2FB7\",\n  \"\\u98DF\",\n  \"\\u2FB8\",\n  \"\\u9996\",\n  \"\\u2FB9\",\n  \"\\u9999\",\n  \"\\u2FBA\",\n  \"\\u99AC\",\n  \"\\u2FBB\",\n  \"\\u9AA8\",\n  \"\\u2FBC\",\n  \"\\u9AD8\",\n  \"\\u2FBD\",\n  \"\\u9ADF\",\n  \"\\u2FBE\",\n  \"\\u9B25\",\n  \"\\u2FBF\",\n  \"\\u9B2F\",\n  \"\\u2FC0\",\n  \"\\u9B32\",\n  \"\\u2FC1\",\n  \"\\u9B3C\",\n  \"\\u2FC2\",\n  \"\\u9B5A\",\n  \"\\u2FC3\",\n  \"\\u9CE5\",\n  \"\\u2FC4\",\n  \"\\u9E75\",\n  \"\\u2FC5\",\n  \"\\u9E7F\",\n  \"\\u2FC6\",\n  \"\\u9EA5\",\n  \"\\u2FC7\",\n  \"\\u9EBB\",\n  \"\\u2FC8\",\n  \"\\u9EC3\",\n  \"\\u2FC9\",\n  \"\\u9ECD\",\n  \"\\u2FCA\",\n  \"\\u9ED1\",\n  \"\\u2FCB\",\n  \"\\u9EF9\",\n  \"\\u2FCC\",\n  \"\\u9EFD\",\n  \"\\u2FCD\",\n  \"\\u9F0E\",\n  \"\\u2FCE\",\n  \"\\u9F13\",\n  \"\\u2FCF\",\n  \"\\u9F20\",\n  \"\\u2FD0\",\n  \"\\u9F3B\",\n  \"\\u2FD1\",\n  \"\\u9F4A\",\n  \"\\u2FD2\",\n  \"\\u9F52\",\n  \"\\u2FD3\",\n  \"\\u9F8D\",\n  \"\\u2FD4\",\n  \"\\u9F9C\",\n  \"\\u2FD5\",\n  \"\\u9FA0\",\n  \"\\u3036\",\n  \"\\u3012\",\n  \"\\u3038\",\n  \"\\u5341\",\n  \"\\u3039\",\n  \"\\u5344\",\n  \"\\u303A\",\n  \"\\u5345\",\n  \"\\u309B\",\n  \"\\u0020\\u3099\",\n  \"\\u309C\",\n  \"\\u0020\\u309A\",\n  \"\\u3131\",\n  \"\\u1100\",\n  \"\\u3132\",\n  \"\\u1101\",\n  \"\\u3133\",\n  \"\\u11AA\",\n  \"\\u3134\",\n  \"\\u1102\",\n  \"\\u3135\",\n  \"\\u11AC\",\n  \"\\u3136\",\n  \"\\u11AD\",\n  \"\\u3137\",\n  \"\\u1103\",\n  \"\\u3138\",\n  \"\\u1104\",\n  \"\\u3139\",\n  \"\\u1105\",\n  \"\\u313A\",\n  \"\\u11B0\",\n  \"\\u313B\",\n  \"\\u11B1\",\n  \"\\u313C\",\n  \"\\u11B2\",\n  \"\\u313D\",\n  \"\\u11B3\",\n  \"\\u313E\",\n  \"\\u11B4\",\n  \"\\u313F\",\n  \"\\u11B5\",\n  \"\\u3140\",\n  \"\\u111A\",\n  \"\\u3141\",\n  \"\\u1106\",\n  \"\\u3142\",\n  \"\\u1107\",\n  \"\\u3143\",\n  \"\\u1108\",\n  \"\\u3144\",\n  \"\\u1121\",\n  \"\\u3145\",\n  \"\\u1109\",\n  \"\\u3146\",\n  \"\\u110A\",\n  \"\\u3147\",\n  \"\\u110B\",\n  \"\\u3148\",\n  \"\\u110C\",\n  \"\\u3149\",\n  \"\\u110D\",\n  \"\\u314A\",\n  \"\\u110E\",\n  \"\\u314B\",\n  \"\\u110F\",\n  \"\\u314C\",\n  \"\\u1110\",\n  \"\\u314D\",\n  \"\\u1111\",\n  \"\\u314E\",\n  \"\\u1112\",\n  \"\\u314F\",\n  \"\\u1161\",\n  \"\\u3150\",\n  \"\\u1162\",\n  \"\\u3151\",\n  \"\\u1163\",\n  \"\\u3152\",\n  \"\\u1164\",\n  \"\\u3153\",\n  \"\\u1165\",\n  \"\\u3154\",\n  \"\\u1166\",\n  \"\\u3155\",\n  \"\\u1167\",\n  \"\\u3156\",\n  \"\\u1168\",\n  \"\\u3157\",\n  \"\\u1169\",\n  \"\\u3158\",\n  \"\\u116A\",\n  \"\\u3159\",\n  \"\\u116B\",\n  \"\\u315A\",\n  \"\\u116C\",\n  \"\\u315B\",\n  \"\\u116D\",\n  \"\\u315C\",\n  \"\\u116E\",\n  \"\\u315D\",\n  \"\\u116F\",\n  \"\\u315E\",\n  \"\\u1170\",\n  \"\\u315F\",\n  \"\\u1171\",\n  \"\\u3160\",\n  \"\\u1172\",\n  \"\\u3161\",\n  \"\\u1173\",\n  \"\\u3162\",\n  \"\\u1174\",\n  \"\\u3163\",\n  \"\\u1175\",\n  \"\\u3164\",\n  \"\\u1160\",\n  \"\\u3165\",\n  \"\\u1114\",\n  \"\\u3166\",\n  \"\\u1115\",\n  \"\\u3167\",\n  \"\\u11C7\",\n  \"\\u3168\",\n  \"\\u11C8\",\n  \"\\u3169\",\n  \"\\u11CC\",\n  \"\\u316A\",\n  \"\\u11CE\",\n  \"\\u316B\",\n  \"\\u11D3\",\n  \"\\u316C\",\n  \"\\u11D7\",\n  \"\\u316D\",\n  \"\\u11D9\",\n  \"\\u316E\",\n  \"\\u111C\",\n  \"\\u316F\",\n  \"\\u11DD\",\n  \"\\u3170\",\n  \"\\u11DF\",\n  \"\\u3171\",\n  \"\\u111D\",\n  \"\\u3172\",\n  \"\\u111E\",\n  \"\\u3173\",\n  \"\\u1120\",\n  \"\\u3174\",\n  \"\\u1122\",\n  \"\\u3175\",\n  \"\\u1123\",\n  \"\\u3176\",\n  \"\\u1127\",\n  \"\\u3177\",\n  \"\\u1129\",\n  \"\\u3178\",\n  \"\\u112B\",\n  \"\\u3179\",\n  \"\\u112C\",\n  \"\\u317A\",\n  \"\\u112D\",\n  \"\\u317B\",\n  \"\\u112E\",\n  \"\\u317C\",\n  \"\\u112F\",\n  \"\\u317D\",\n  \"\\u1132\",\n  \"\\u317E\",\n  \"\\u1136\",\n  \"\\u317F\",\n  \"\\u1140\",\n  \"\\u3180\",\n  \"\\u1147\",\n  \"\\u3181\",\n  \"\\u114C\",\n  \"\\u3182\",\n  \"\\u11F1\",\n  \"\\u3183\",\n  \"\\u11F2\",\n  \"\\u3184\",\n  \"\\u1157\",\n  \"\\u3185\",\n  \"\\u1158\",\n  \"\\u3186\",\n  \"\\u1159\",\n  \"\\u3187\",\n  \"\\u1184\",\n  \"\\u3188\",\n  \"\\u1185\",\n  \"\\u3189\",\n  \"\\u1188\",\n  \"\\u318A\",\n  \"\\u1191\",\n  \"\\u318B\",\n  \"\\u1192\",\n  \"\\u318C\",\n  \"\\u1194\",\n  \"\\u318D\",\n  \"\\u119E\",\n  \"\\u318E\",\n  \"\\u11A1\",\n  \"\\u3200\",\n  \"\\u0028\\u1100\\u0029\",\n  \"\\u3201\",\n  \"\\u0028\\u1102\\u0029\",\n  \"\\u3202\",\n  \"\\u0028\\u1103\\u0029\",\n  \"\\u3203\",\n  \"\\u0028\\u1105\\u0029\",\n  \"\\u3204\",\n  \"\\u0028\\u1106\\u0029\",\n  \"\\u3205\",\n  \"\\u0028\\u1107\\u0029\",\n  \"\\u3206\",\n  \"\\u0028\\u1109\\u0029\",\n  \"\\u3207\",\n  \"\\u0028\\u110B\\u0029\",\n  \"\\u3208\",\n  \"\\u0028\\u110C\\u0029\",\n  \"\\u3209\",\n  \"\\u0028\\u110E\\u0029\",\n  \"\\u320A\",\n  \"\\u0028\\u110F\\u0029\",\n  \"\\u320B\",\n  \"\\u0028\\u1110\\u0029\",\n  \"\\u320C\",\n  \"\\u0028\\u1111\\u0029\",\n  \"\\u320D\",\n  \"\\u0028\\u1112\\u0029\",\n  \"\\u320E\",\n  \"\\u0028\\u1100\\u1161\\u0029\",\n  \"\\u320F\",\n  \"\\u0028\\u1102\\u1161\\u0029\",\n  \"\\u3210\",\n  \"\\u0028\\u1103\\u1161\\u0029\",\n  \"\\u3211\",\n  \"\\u0028\\u1105\\u1161\\u0029\",\n  \"\\u3212\",\n  \"\\u0028\\u1106\\u1161\\u0029\",\n  \"\\u3213\",\n  \"\\u0028\\u1107\\u1161\\u0029\",\n  \"\\u3214\",\n  \"\\u0028\\u1109\\u1161\\u0029\",\n  \"\\u3215\",\n  \"\\u0028\\u110B\\u1161\\u0029\",\n  \"\\u3216\",\n  \"\\u0028\\u110C\\u1161\\u0029\",\n  \"\\u3217\",\n  \"\\u0028\\u110E\\u1161\\u0029\",\n  \"\\u3218\",\n  \"\\u0028\\u110F\\u1161\\u0029\",\n  \"\\u3219\",\n  \"\\u0028\\u1110\\u1161\\u0029\",\n  \"\\u321A\",\n  \"\\u0028\\u1111\\u1161\\u0029\",\n  \"\\u321B\",\n  \"\\u0028\\u1112\\u1161\\u0029\",\n  \"\\u321C\",\n  \"\\u0028\\u110C\\u116E\\u0029\",\n  \"\\u321D\",\n  \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\",\n  \"\\u321E\",\n  \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\",\n  \"\\u3220\",\n  \"\\u0028\\u4E00\\u0029\",\n  \"\\u3221\",\n  \"\\u0028\\u4E8C\\u0029\",\n  \"\\u3222\",\n  \"\\u0028\\u4E09\\u0029\",\n  \"\\u3223\",\n  \"\\u0028\\u56DB\\u0029\",\n  \"\\u3224\",\n  \"\\u0028\\u4E94\\u0029\",\n  \"\\u3225\",\n  \"\\u0028\\u516D\\u0029\",\n  \"\\u3226\",\n  \"\\u0028\\u4E03\\u0029\",\n  \"\\u3227\",\n  \"\\u0028\\u516B\\u0029\",\n  \"\\u3228\",\n  \"\\u0028\\u4E5D\\u0029\",\n  \"\\u3229\",\n  \"\\u0028\\u5341\\u0029\",\n  \"\\u322A\",\n  \"\\u0028\\u6708\\u0029\",\n  \"\\u322B\",\n  \"\\u0028\\u706B\\u0029\",\n  \"\\u322C\",\n  \"\\u0028\\u6C34\\u0029\",\n  \"\\u322D\",\n  \"\\u0028\\u6728\\u0029\",\n  \"\\u322E\",\n  \"\\u0028\\u91D1\\u0029\",\n  \"\\u322F\",\n  \"\\u0028\\u571F\\u0029\",\n  \"\\u3230\",\n  \"\\u0028\\u65E5\\u0029\",\n  \"\\u3231\",\n  \"\\u0028\\u682A\\u0029\",\n  \"\\u3232\",\n  \"\\u0028\\u6709\\u0029\",\n  \"\\u3233\",\n  \"\\u0028\\u793E\\u0029\",\n  \"\\u3234\",\n  \"\\u0028\\u540D\\u0029\",\n  \"\\u3235\",\n  \"\\u0028\\u7279\\u0029\",\n  \"\\u3236\",\n  \"\\u0028\\u8CA1\\u0029\",\n  \"\\u3237\",\n  \"\\u0028\\u795D\\u0029\",\n  \"\\u3238\",\n  \"\\u0028\\u52B4\\u0029\",\n  \"\\u3239\",\n  \"\\u0028\\u4EE3\\u0029\",\n  \"\\u323A\",\n  \"\\u0028\\u547C\\u0029\",\n  \"\\u323B\",\n  \"\\u0028\\u5B66\\u0029\",\n  \"\\u323C\",\n  \"\\u0028\\u76E3\\u0029\",\n  \"\\u323D\",\n  \"\\u0028\\u4F01\\u0029\",\n  \"\\u323E\",\n  \"\\u0028\\u8CC7\\u0029\",\n  \"\\u323F\",\n  \"\\u0028\\u5354\\u0029\",\n  \"\\u3240\",\n  \"\\u0028\\u796D\\u0029\",\n  \"\\u3241\",\n  \"\\u0028\\u4F11\\u0029\",\n  \"\\u3242\",\n  \"\\u0028\\u81EA\\u0029\",\n  \"\\u3243\",\n  \"\\u0028\\u81F3\\u0029\",\n  \"\\u32C0\",\n  \"\\u0031\\u6708\",\n  \"\\u32C1\",\n  \"\\u0032\\u6708\",\n  \"\\u32C2\",\n  \"\\u0033\\u6708\",\n  \"\\u32C3\",\n  \"\\u0034\\u6708\",\n  \"\\u32C4\",\n  \"\\u0035\\u6708\",\n  \"\\u32C5\",\n  \"\\u0036\\u6708\",\n  \"\\u32C6\",\n  \"\\u0037\\u6708\",\n  \"\\u32C7\",\n  \"\\u0038\\u6708\",\n  \"\\u32C8\",\n  \"\\u0039\\u6708\",\n  \"\\u32C9\",\n  \"\\u0031\\u0030\\u6708\",\n  \"\\u32CA\",\n  \"\\u0031\\u0031\\u6708\",\n  \"\\u32CB\",\n  \"\\u0031\\u0032\\u6708\",\n  \"\\u3358\",\n  \"\\u0030\\u70B9\",\n  \"\\u3359\",\n  \"\\u0031\\u70B9\",\n  \"\\u335A\",\n  \"\\u0032\\u70B9\",\n  \"\\u335B\",\n  \"\\u0033\\u70B9\",\n  \"\\u335C\",\n  \"\\u0034\\u70B9\",\n  \"\\u335D\",\n  \"\\u0035\\u70B9\",\n  \"\\u335E\",\n  \"\\u0036\\u70B9\",\n  \"\\u335F\",\n  \"\\u0037\\u70B9\",\n  \"\\u3360\",\n  \"\\u0038\\u70B9\",\n  \"\\u3361\",\n  \"\\u0039\\u70B9\",\n  \"\\u3362\",\n  \"\\u0031\\u0030\\u70B9\",\n  \"\\u3363\",\n  \"\\u0031\\u0031\\u70B9\",\n  \"\\u3364\",\n  \"\\u0031\\u0032\\u70B9\",\n  \"\\u3365\",\n  \"\\u0031\\u0033\\u70B9\",\n  \"\\u3366\",\n  \"\\u0031\\u0034\\u70B9\",\n  \"\\u3367\",\n  \"\\u0031\\u0035\\u70B9\",\n  \"\\u3368\",\n  \"\\u0031\\u0036\\u70B9\",\n  \"\\u3369\",\n  \"\\u0031\\u0037\\u70B9\",\n  \"\\u336A\",\n  \"\\u0031\\u0038\\u70B9\",\n  \"\\u336B\",\n  \"\\u0031\\u0039\\u70B9\",\n  \"\\u336C\",\n  \"\\u0032\\u0030\\u70B9\",\n  \"\\u336D\",\n  \"\\u0032\\u0031\\u70B9\",\n  \"\\u336E\",\n  \"\\u0032\\u0032\\u70B9\",\n  \"\\u336F\",\n  \"\\u0032\\u0033\\u70B9\",\n  \"\\u3370\",\n  \"\\u0032\\u0034\\u70B9\",\n  \"\\u33E0\",\n  \"\\u0031\\u65E5\",\n  \"\\u33E1\",\n  \"\\u0032\\u65E5\",\n  \"\\u33E2\",\n  \"\\u0033\\u65E5\",\n  \"\\u33E3\",\n  \"\\u0034\\u65E5\",\n  \"\\u33E4\",\n  \"\\u0035\\u65E5\",\n  \"\\u33E5\",\n  \"\\u0036\\u65E5\",\n  \"\\u33E6\",\n  \"\\u0037\\u65E5\",\n  \"\\u33E7\",\n  \"\\u0038\\u65E5\",\n  \"\\u33E8\",\n  \"\\u0039\\u65E5\",\n  \"\\u33E9\",\n  \"\\u0031\\u0030\\u65E5\",\n  \"\\u33EA\",\n  \"\\u0031\\u0031\\u65E5\",\n  \"\\u33EB\",\n  \"\\u0031\\u0032\\u65E5\",\n  \"\\u33EC\",\n  \"\\u0031\\u0033\\u65E5\",\n  \"\\u33ED\",\n  \"\\u0031\\u0034\\u65E5\",\n  \"\\u33EE\",\n  \"\\u0031\\u0035\\u65E5\",\n  \"\\u33EF\",\n  \"\\u0031\\u0036\\u65E5\",\n  \"\\u33F0\",\n  \"\\u0031\\u0037\\u65E5\",\n  \"\\u33F1\",\n  \"\\u0031\\u0038\\u65E5\",\n  \"\\u33F2\",\n  \"\\u0031\\u0039\\u65E5\",\n  \"\\u33F3\",\n  \"\\u0032\\u0030\\u65E5\",\n  \"\\u33F4\",\n  \"\\u0032\\u0031\\u65E5\",\n  \"\\u33F5\",\n  \"\\u0032\\u0032\\u65E5\",\n  \"\\u33F6\",\n  \"\\u0032\\u0033\\u65E5\",\n  \"\\u33F7\",\n  \"\\u0032\\u0034\\u65E5\",\n  \"\\u33F8\",\n  \"\\u0032\\u0035\\u65E5\",\n  \"\\u33F9\",\n  \"\\u0032\\u0036\\u65E5\",\n  \"\\u33FA\",\n  \"\\u0032\\u0037\\u65E5\",\n  \"\\u33FB\",\n  \"\\u0032\\u0038\\u65E5\",\n  \"\\u33FC\",\n  \"\\u0032\\u0039\\u65E5\",\n  \"\\u33FD\",\n  \"\\u0033\\u0030\\u65E5\",\n  \"\\u33FE\",\n  \"\\u0033\\u0031\\u65E5\",\n  \"\\uFB00\",\n  \"\\u0066\\u0066\",\n  \"\\uFB01\",\n  \"\\u0066\\u0069\",\n  \"\\uFB02\",\n  \"\\u0066\\u006C\",\n  \"\\uFB03\",\n  \"\\u0066\\u0066\\u0069\",\n  \"\\uFB04\",\n  \"\\u0066\\u0066\\u006C\",\n  \"\\uFB05\",\n  \"\\u017F\\u0074\",\n  \"\\uFB06\",\n  \"\\u0073\\u0074\",\n  \"\\uFB13\",\n  \"\\u0574\\u0576\",\n  \"\\uFB14\",\n  \"\\u0574\\u0565\",\n  \"\\uFB15\",\n  \"\\u0574\\u056B\",\n  \"\\uFB16\",\n  \"\\u057E\\u0576\",\n  \"\\uFB17\",\n  \"\\u0574\\u056D\",\n  \"\\uFB4F\",\n  \"\\u05D0\\u05DC\",\n  \"\\uFB50\",\n  \"\\u0671\",\n  \"\\uFB51\",\n  \"\\u0671\",\n  \"\\uFB52\",\n  \"\\u067B\",\n  \"\\uFB53\",\n  \"\\u067B\",\n  \"\\uFB54\",\n  \"\\u067B\",\n  \"\\uFB55\",\n  \"\\u067B\",\n  \"\\uFB56\",\n  \"\\u067E\",\n  \"\\uFB57\",\n  \"\\u067E\",\n  \"\\uFB58\",\n  \"\\u067E\",\n  \"\\uFB59\",\n  \"\\u067E\",\n  \"\\uFB5A\",\n  \"\\u0680\",\n  \"\\uFB5B\",\n  \"\\u0680\",\n  \"\\uFB5C\",\n  \"\\u0680\",\n  \"\\uFB5D\",\n  \"\\u0680\",\n  \"\\uFB5E\",\n  \"\\u067A\",\n  \"\\uFB5F\",\n  \"\\u067A\",\n  \"\\uFB60\",\n  \"\\u067A\",\n  \"\\uFB61\",\n  \"\\u067A\",\n  \"\\uFB62\",\n  \"\\u067F\",\n  \"\\uFB63\",\n  \"\\u067F\",\n  \"\\uFB64\",\n  \"\\u067F\",\n  \"\\uFB65\",\n  \"\\u067F\",\n  \"\\uFB66\",\n  \"\\u0679\",\n  \"\\uFB67\",\n  \"\\u0679\",\n  \"\\uFB68\",\n  \"\\u0679\",\n  \"\\uFB69\",\n  \"\\u0679\",\n  \"\\uFB6A\",\n  \"\\u06A4\",\n  \"\\uFB6B\",\n  \"\\u06A4\",\n  \"\\uFB6C\",\n  \"\\u06A4\",\n  \"\\uFB6D\",\n  \"\\u06A4\",\n  \"\\uFB6E\",\n  \"\\u06A6\",\n  \"\\uFB6F\",\n  \"\\u06A6\",\n  \"\\uFB70\",\n  \"\\u06A6\",\n  \"\\uFB71\",\n  \"\\u06A6\",\n  \"\\uFB72\",\n  \"\\u0684\",\n  \"\\uFB73\",\n  \"\\u0684\",\n  \"\\uFB74\",\n  \"\\u0684\",\n  \"\\uFB75\",\n  \"\\u0684\",\n  \"\\uFB76\",\n  \"\\u0683\",\n  \"\\uFB77\",\n  \"\\u0683\",\n  \"\\uFB78\",\n  \"\\u0683\",\n  \"\\uFB79\",\n  \"\\u0683\",\n  \"\\uFB7A\",\n  \"\\u0686\",\n  \"\\uFB7B\",\n  \"\\u0686\",\n  \"\\uFB7C\",\n  \"\\u0686\",\n  \"\\uFB7D\",\n  \"\\u0686\",\n  \"\\uFB7E\",\n  \"\\u0687\",\n  \"\\uFB7F\",\n  \"\\u0687\",\n  \"\\uFB80\",\n  \"\\u0687\",\n  \"\\uFB81\",\n  \"\\u0687\",\n  \"\\uFB82\",\n  \"\\u068D\",\n  \"\\uFB83\",\n  \"\\u068D\",\n  \"\\uFB84\",\n  \"\\u068C\",\n  \"\\uFB85\",\n  \"\\u068C\",\n  \"\\uFB86\",\n  \"\\u068E\",\n  \"\\uFB87\",\n  \"\\u068E\",\n  \"\\uFB88\",\n  \"\\u0688\",\n  \"\\uFB89\",\n  \"\\u0688\",\n  \"\\uFB8A\",\n  \"\\u0698\",\n  \"\\uFB8B\",\n  \"\\u0698\",\n  \"\\uFB8C\",\n  \"\\u0691\",\n  \"\\uFB8D\",\n  \"\\u0691\",\n  \"\\uFB8E\",\n  \"\\u06A9\",\n  \"\\uFB8F\",\n  \"\\u06A9\",\n  \"\\uFB90\",\n  \"\\u06A9\",\n  \"\\uFB91\",\n  \"\\u06A9\",\n  \"\\uFB92\",\n  \"\\u06AF\",\n  \"\\uFB93\",\n  \"\\u06AF\",\n  \"\\uFB94\",\n  \"\\u06AF\",\n  \"\\uFB95\",\n  \"\\u06AF\",\n  \"\\uFB96\",\n  \"\\u06B3\",\n  \"\\uFB97\",\n  \"\\u06B3\",\n  \"\\uFB98\",\n  \"\\u06B3\",\n  \"\\uFB99\",\n  \"\\u06B3\",\n  \"\\uFB9A\",\n  \"\\u06B1\",\n  \"\\uFB9B\",\n  \"\\u06B1\",\n  \"\\uFB9C\",\n  \"\\u06B1\",\n  \"\\uFB9D\",\n  \"\\u06B1\",\n  \"\\uFB9E\",\n  \"\\u06BA\",\n  \"\\uFB9F\",\n  \"\\u06BA\",\n  \"\\uFBA0\",\n  \"\\u06BB\",\n  \"\\uFBA1\",\n  \"\\u06BB\",\n  \"\\uFBA2\",\n  \"\\u06BB\",\n  \"\\uFBA3\",\n  \"\\u06BB\",\n  \"\\uFBA4\",\n  \"\\u06C0\",\n  \"\\uFBA5\",\n  \"\\u06C0\",\n  \"\\uFBA6\",\n  \"\\u06C1\",\n  \"\\uFBA7\",\n  \"\\u06C1\",\n  \"\\uFBA8\",\n  \"\\u06C1\",\n  \"\\uFBA9\",\n  \"\\u06C1\",\n  \"\\uFBAA\",\n  \"\\u06BE\",\n  \"\\uFBAB\",\n  \"\\u06BE\",\n  \"\\uFBAC\",\n  \"\\u06BE\",\n  \"\\uFBAD\",\n  \"\\u06BE\",\n  \"\\uFBAE\",\n  \"\\u06D2\",\n  \"\\uFBAF\",\n  \"\\u06D2\",\n  \"\\uFBB0\",\n  \"\\u06D3\",\n  \"\\uFBB1\",\n  \"\\u06D3\",\n  \"\\uFBD3\",\n  \"\\u06AD\",\n  \"\\uFBD4\",\n  \"\\u06AD\",\n  \"\\uFBD5\",\n  \"\\u06AD\",\n  \"\\uFBD6\",\n  \"\\u06AD\",\n  \"\\uFBD7\",\n  \"\\u06C7\",\n  \"\\uFBD8\",\n  \"\\u06C7\",\n  \"\\uFBD9\",\n  \"\\u06C6\",\n  \"\\uFBDA\",\n  \"\\u06C6\",\n  \"\\uFBDB\",\n  \"\\u06C8\",\n  \"\\uFBDC\",\n  \"\\u06C8\",\n  \"\\uFBDD\",\n  \"\\u0677\",\n  \"\\uFBDE\",\n  \"\\u06CB\",\n  \"\\uFBDF\",\n  \"\\u06CB\",\n  \"\\uFBE0\",\n  \"\\u06C5\",\n  \"\\uFBE1\",\n  \"\\u06C5\",\n  \"\\uFBE2\",\n  \"\\u06C9\",\n  \"\\uFBE3\",\n  \"\\u06C9\",\n  \"\\uFBE4\",\n  \"\\u06D0\",\n  \"\\uFBE5\",\n  \"\\u06D0\",\n  \"\\uFBE6\",\n  \"\\u06D0\",\n  \"\\uFBE7\",\n  \"\\u06D0\",\n  \"\\uFBE8\",\n  \"\\u0649\",\n  \"\\uFBE9\",\n  \"\\u0649\",\n  \"\\uFBEA\",\n  \"\\u0626\\u0627\",\n  \"\\uFBEB\",\n  \"\\u0626\\u0627\",\n  \"\\uFBEC\",\n  \"\\u0626\\u06D5\",\n  \"\\uFBED\",\n  \"\\u0626\\u06D5\",\n  \"\\uFBEE\",\n  \"\\u0626\\u0648\",\n  \"\\uFBEF\",\n  \"\\u0626\\u0648\",\n  \"\\uFBF0\",\n  \"\\u0626\\u06C7\",\n  \"\\uFBF1\",\n  \"\\u0626\\u06C7\",\n  \"\\uFBF2\",\n  \"\\u0626\\u06C6\",\n  \"\\uFBF3\",\n  \"\\u0626\\u06C6\",\n  \"\\uFBF4\",\n  \"\\u0626\\u06C8\",\n  \"\\uFBF5\",\n  \"\\u0626\\u06C8\",\n  \"\\uFBF6\",\n  \"\\u0626\\u06D0\",\n  \"\\uFBF7\",\n  \"\\u0626\\u06D0\",\n  \"\\uFBF8\",\n  \"\\u0626\\u06D0\",\n  \"\\uFBF9\",\n  \"\\u0626\\u0649\",\n  \"\\uFBFA\",\n  \"\\u0626\\u0649\",\n  \"\\uFBFB\",\n  \"\\u0626\\u0649\",\n  \"\\uFBFC\",\n  \"\\u06CC\",\n  \"\\uFBFD\",\n  \"\\u06CC\",\n  \"\\uFBFE\",\n  \"\\u06CC\",\n  \"\\uFBFF\",\n  \"\\u06CC\",\n  \"\\uFC00\",\n  \"\\u0626\\u062C\",\n  \"\\uFC01\",\n  \"\\u0626\\u062D\",\n  \"\\uFC02\",\n  \"\\u0626\\u0645\",\n  \"\\uFC03\",\n  \"\\u0626\\u0649\",\n  \"\\uFC04\",\n  \"\\u0626\\u064A\",\n  \"\\uFC05\",\n  \"\\u0628\\u062C\",\n  \"\\uFC06\",\n  \"\\u0628\\u062D\",\n  \"\\uFC07\",\n  \"\\u0628\\u062E\",\n  \"\\uFC08\",\n  \"\\u0628\\u0645\",\n  \"\\uFC09\",\n  \"\\u0628\\u0649\",\n  \"\\uFC0A\",\n  \"\\u0628\\u064A\",\n  \"\\uFC0B\",\n  \"\\u062A\\u062C\",\n  \"\\uFC0C\",\n  \"\\u062A\\u062D\",\n  \"\\uFC0D\",\n  \"\\u062A\\u062E\",\n  \"\\uFC0E\",\n  \"\\u062A\\u0645\",\n  \"\\uFC0F\",\n  \"\\u062A\\u0649\",\n  \"\\uFC10\",\n  \"\\u062A\\u064A\",\n  \"\\uFC11\",\n  \"\\u062B\\u062C\",\n  \"\\uFC12\",\n  \"\\u062B\\u0645\",\n  \"\\uFC13\",\n  \"\\u062B\\u0649\",\n  \"\\uFC14\",\n  \"\\u062B\\u064A\",\n  \"\\uFC15\",\n  \"\\u062C\\u062D\",\n  \"\\uFC16\",\n  \"\\u062C\\u0645\",\n  \"\\uFC17\",\n  \"\\u062D\\u062C\",\n  \"\\uFC18\",\n  \"\\u062D\\u0645\",\n  \"\\uFC19\",\n  \"\\u062E\\u062C\",\n  \"\\uFC1A\",\n  \"\\u062E\\u062D\",\n  \"\\uFC1B\",\n  \"\\u062E\\u0645\",\n  \"\\uFC1C\",\n  \"\\u0633\\u062C\",\n  \"\\uFC1D\",\n  \"\\u0633\\u062D\",\n  \"\\uFC1E\",\n  \"\\u0633\\u062E\",\n  \"\\uFC1F\",\n  \"\\u0633\\u0645\",\n  \"\\uFC20\",\n  \"\\u0635\\u062D\",\n  \"\\uFC21\",\n  \"\\u0635\\u0645\",\n  \"\\uFC22\",\n  \"\\u0636\\u062C\",\n  \"\\uFC23\",\n  \"\\u0636\\u062D\",\n  \"\\uFC24\",\n  \"\\u0636\\u062E\",\n  \"\\uFC25\",\n  \"\\u0636\\u0645\",\n  \"\\uFC26\",\n  \"\\u0637\\u062D\",\n  \"\\uFC27\",\n  \"\\u0637\\u0645\",\n  \"\\uFC28\",\n  \"\\u0638\\u0645\",\n  \"\\uFC29\",\n  \"\\u0639\\u062C\",\n  \"\\uFC2A\",\n  \"\\u0639\\u0645\",\n  \"\\uFC2B\",\n  \"\\u063A\\u062C\",\n  \"\\uFC2C\",\n  \"\\u063A\\u0645\",\n  \"\\uFC2D\",\n  \"\\u0641\\u062C\",\n  \"\\uFC2E\",\n  \"\\u0641\\u062D\",\n  \"\\uFC2F\",\n  \"\\u0641\\u062E\",\n  \"\\uFC30\",\n  \"\\u0641\\u0645\",\n  \"\\uFC31\",\n  \"\\u0641\\u0649\",\n  \"\\uFC32\",\n  \"\\u0641\\u064A\",\n  \"\\uFC33\",\n  \"\\u0642\\u062D\",\n  \"\\uFC34\",\n  \"\\u0642\\u0645\",\n  \"\\uFC35\",\n  \"\\u0642\\u0649\",\n  \"\\uFC36\",\n  \"\\u0642\\u064A\",\n  \"\\uFC37\",\n  \"\\u0643\\u0627\",\n  \"\\uFC38\",\n  \"\\u0643\\u062C\",\n  \"\\uFC39\",\n  \"\\u0643\\u062D\",\n  \"\\uFC3A\",\n  \"\\u0643\\u062E\",\n  \"\\uFC3B\",\n  \"\\u0643\\u0644\",\n  \"\\uFC3C\",\n  \"\\u0643\\u0645\",\n  \"\\uFC3D\",\n  \"\\u0643\\u0649\",\n  \"\\uFC3E\",\n  \"\\u0643\\u064A\",\n  \"\\uFC3F\",\n  \"\\u0644\\u062C\",\n  \"\\uFC40\",\n  \"\\u0644\\u062D\",\n  \"\\uFC41\",\n  \"\\u0644\\u062E\",\n  \"\\uFC42\",\n  \"\\u0644\\u0645\",\n  \"\\uFC43\",\n  \"\\u0644\\u0649\",\n  \"\\uFC44\",\n  \"\\u0644\\u064A\",\n  \"\\uFC45\",\n  \"\\u0645\\u062C\",\n  \"\\uFC46\",\n  \"\\u0645\\u062D\",\n  \"\\uFC47\",\n  \"\\u0645\\u062E\",\n  \"\\uFC48\",\n  \"\\u0645\\u0645\",\n  \"\\uFC49\",\n  \"\\u0645\\u0649\",\n  \"\\uFC4A\",\n  \"\\u0645\\u064A\",\n  \"\\uFC4B\",\n  \"\\u0646\\u062C\",\n  \"\\uFC4C\",\n  \"\\u0646\\u062D\",\n  \"\\uFC4D\",\n  \"\\u0646\\u062E\",\n  \"\\uFC4E\",\n  \"\\u0646\\u0645\",\n  \"\\uFC4F\",\n  \"\\u0646\\u0649\",\n  \"\\uFC50\",\n  \"\\u0646\\u064A\",\n  \"\\uFC51\",\n  \"\\u0647\\u062C\",\n  \"\\uFC52\",\n  \"\\u0647\\u0645\",\n  \"\\uFC53\",\n  \"\\u0647\\u0649\",\n  \"\\uFC54\",\n  \"\\u0647\\u064A\",\n  \"\\uFC55\",\n  \"\\u064A\\u062C\",\n  \"\\uFC56\",\n  \"\\u064A\\u062D\",\n  \"\\uFC57\",\n  \"\\u064A\\u062E\",\n  \"\\uFC58\",\n  \"\\u064A\\u0645\",\n  \"\\uFC59\",\n  \"\\u064A\\u0649\",\n  \"\\uFC5A\",\n  \"\\u064A\\u064A\",\n  \"\\uFC5B\",\n  \"\\u0630\\u0670\",\n  \"\\uFC5C\",\n  \"\\u0631\\u0670\",\n  \"\\uFC5D\",\n  \"\\u0649\\u0670\",\n  \"\\uFC5E\",\n  \"\\u0020\\u064C\\u0651\",\n  \"\\uFC5F\",\n  \"\\u0020\\u064D\\u0651\",\n  \"\\uFC60\",\n  \"\\u0020\\u064E\\u0651\",\n  \"\\uFC61\",\n  \"\\u0020\\u064F\\u0651\",\n  \"\\uFC62\",\n  \"\\u0020\\u0650\\u0651\",\n  \"\\uFC63\",\n  \"\\u0020\\u0651\\u0670\",\n  \"\\uFC64\",\n  \"\\u0626\\u0631\",\n  \"\\uFC65\",\n  \"\\u0626\\u0632\",\n  \"\\uFC66\",\n  \"\\u0626\\u0645\",\n  \"\\uFC67\",\n  \"\\u0626\\u0646\",\n  \"\\uFC68\",\n  \"\\u0626\\u0649\",\n  \"\\uFC69\",\n  \"\\u0626\\u064A\",\n  \"\\uFC6A\",\n  \"\\u0628\\u0631\",\n  \"\\uFC6B\",\n  \"\\u0628\\u0632\",\n  \"\\uFC6C\",\n  \"\\u0628\\u0645\",\n  \"\\uFC6D\",\n  \"\\u0628\\u0646\",\n  \"\\uFC6E\",\n  \"\\u0628\\u0649\",\n  \"\\uFC6F\",\n  \"\\u0628\\u064A\",\n  \"\\uFC70\",\n  \"\\u062A\\u0631\",\n  \"\\uFC71\",\n  \"\\u062A\\u0632\",\n  \"\\uFC72\",\n  \"\\u062A\\u0645\",\n  \"\\uFC73\",\n  \"\\u062A\\u0646\",\n  \"\\uFC74\",\n  \"\\u062A\\u0649\",\n  \"\\uFC75\",\n  \"\\u062A\\u064A\",\n  \"\\uFC76\",\n  \"\\u062B\\u0631\",\n  \"\\uFC77\",\n  \"\\u062B\\u0632\",\n  \"\\uFC78\",\n  \"\\u062B\\u0645\",\n  \"\\uFC79\",\n  \"\\u062B\\u0646\",\n  \"\\uFC7A\",\n  \"\\u062B\\u0649\",\n  \"\\uFC7B\",\n  \"\\u062B\\u064A\",\n  \"\\uFC7C\",\n  \"\\u0641\\u0649\",\n  \"\\uFC7D\",\n  \"\\u0641\\u064A\",\n  \"\\uFC7E\",\n  \"\\u0642\\u0649\",\n  \"\\uFC7F\",\n  \"\\u0642\\u064A\",\n  \"\\uFC80\",\n  \"\\u0643\\u0627\",\n  \"\\uFC81\",\n  \"\\u0643\\u0644\",\n  \"\\uFC82\",\n  \"\\u0643\\u0645\",\n  \"\\uFC83\",\n  \"\\u0643\\u0649\",\n  \"\\uFC84\",\n  \"\\u0643\\u064A\",\n  \"\\uFC85\",\n  \"\\u0644\\u0645\",\n  \"\\uFC86\",\n  \"\\u0644\\u0649\",\n  \"\\uFC87\",\n  \"\\u0644\\u064A\",\n  \"\\uFC88\",\n  \"\\u0645\\u0627\",\n  \"\\uFC89\",\n  \"\\u0645\\u0645\",\n  \"\\uFC8A\",\n  \"\\u0646\\u0631\",\n  \"\\uFC8B\",\n  \"\\u0646\\u0632\",\n  \"\\uFC8C\",\n  \"\\u0646\\u0645\",\n  \"\\uFC8D\",\n  \"\\u0646\\u0646\",\n  \"\\uFC8E\",\n  \"\\u0646\\u0649\",\n  \"\\uFC8F\",\n  \"\\u0646\\u064A\",\n  \"\\uFC90\",\n  \"\\u0649\\u0670\",\n  \"\\uFC91\",\n  \"\\u064A\\u0631\",\n  \"\\uFC92\",\n  \"\\u064A\\u0632\",\n  \"\\uFC93\",\n  \"\\u064A\\u0645\",\n  \"\\uFC94\",\n  \"\\u064A\\u0646\",\n  \"\\uFC95\",\n  \"\\u064A\\u0649\",\n  \"\\uFC96\",\n  \"\\u064A\\u064A\",\n  \"\\uFC97\",\n  \"\\u0626\\u062C\",\n  \"\\uFC98\",\n  \"\\u0626\\u062D\",\n  \"\\uFC99\",\n  \"\\u0626\\u062E\",\n  \"\\uFC9A\",\n  \"\\u0626\\u0645\",\n  \"\\uFC9B\",\n  \"\\u0626\\u0647\",\n  \"\\uFC9C\",\n  \"\\u0628\\u062C\",\n  \"\\uFC9D\",\n  \"\\u0628\\u062D\",\n  \"\\uFC9E\",\n  \"\\u0628\\u062E\",\n  \"\\uFC9F\",\n  \"\\u0628\\u0645\",\n  \"\\uFCA0\",\n  \"\\u0628\\u0647\",\n  \"\\uFCA1\",\n  \"\\u062A\\u062C\",\n  \"\\uFCA2\",\n  \"\\u062A\\u062D\",\n  \"\\uFCA3\",\n  \"\\u062A\\u062E\",\n  \"\\uFCA4\",\n  \"\\u062A\\u0645\",\n  \"\\uFCA5\",\n  \"\\u062A\\u0647\",\n  \"\\uFCA6\",\n  \"\\u062B\\u0645\",\n  \"\\uFCA7\",\n  \"\\u062C\\u062D\",\n  \"\\uFCA8\",\n  \"\\u062C\\u0645\",\n  \"\\uFCA9\",\n  \"\\u062D\\u062C\",\n  \"\\uFCAA\",\n  \"\\u062D\\u0645\",\n  \"\\uFCAB\",\n  \"\\u062E\\u062C\",\n  \"\\uFCAC\",\n  \"\\u062E\\u0645\",\n  \"\\uFCAD\",\n  \"\\u0633\\u062C\",\n  \"\\uFCAE\",\n  \"\\u0633\\u062D\",\n  \"\\uFCAF\",\n  \"\\u0633\\u062E\",\n  \"\\uFCB0\",\n  \"\\u0633\\u0645\",\n  \"\\uFCB1\",\n  \"\\u0635\\u062D\",\n  \"\\uFCB2\",\n  \"\\u0635\\u062E\",\n  \"\\uFCB3\",\n  \"\\u0635\\u0645\",\n  \"\\uFCB4\",\n  \"\\u0636\\u062C\",\n  \"\\uFCB5\",\n  \"\\u0636\\u062D\",\n  \"\\uFCB6\",\n  \"\\u0636\\u062E\",\n  \"\\uFCB7\",\n  \"\\u0636\\u0645\",\n  \"\\uFCB8\",\n  \"\\u0637\\u062D\",\n  \"\\uFCB9\",\n  \"\\u0638\\u0645\",\n  \"\\uFCBA\",\n  \"\\u0639\\u062C\",\n  \"\\uFCBB\",\n  \"\\u0639\\u0645\",\n  \"\\uFCBC\",\n  \"\\u063A\\u062C\",\n  \"\\uFCBD\",\n  \"\\u063A\\u0645\",\n  \"\\uFCBE\",\n  \"\\u0641\\u062C\",\n  \"\\uFCBF\",\n  \"\\u0641\\u062D\",\n  \"\\uFCC0\",\n  \"\\u0641\\u062E\",\n  \"\\uFCC1\",\n  \"\\u0641\\u0645\",\n  \"\\uFCC2\",\n  \"\\u0642\\u062D\",\n  \"\\uFCC3\",\n  \"\\u0642\\u0645\",\n  \"\\uFCC4\",\n  \"\\u0643\\u062C\",\n  \"\\uFCC5\",\n  \"\\u0643\\u062D\",\n  \"\\uFCC6\",\n  \"\\u0643\\u062E\",\n  \"\\uFCC7\",\n  \"\\u0643\\u0644\",\n  \"\\uFCC8\",\n  \"\\u0643\\u0645\",\n  \"\\uFCC9\",\n  \"\\u0644\\u062C\",\n  \"\\uFCCA\",\n  \"\\u0644\\u062D\",\n  \"\\uFCCB\",\n  \"\\u0644\\u062E\",\n  \"\\uFCCC\",\n  \"\\u0644\\u0645\",\n  \"\\uFCCD\",\n  \"\\u0644\\u0647\",\n  \"\\uFCCE\",\n  \"\\u0645\\u062C\",\n  \"\\uFCCF\",\n  \"\\u0645\\u062D\",\n  \"\\uFCD0\",\n  \"\\u0645\\u062E\",\n  \"\\uFCD1\",\n  \"\\u0645\\u0645\",\n  \"\\uFCD2\",\n  \"\\u0646\\u062C\",\n  \"\\uFCD3\",\n  \"\\u0646\\u062D\",\n  \"\\uFCD4\",\n  \"\\u0646\\u062E\",\n  \"\\uFCD5\",\n  \"\\u0646\\u0645\",\n  \"\\uFCD6\",\n  \"\\u0646\\u0647\",\n  \"\\uFCD7\",\n  \"\\u0647\\u062C\",\n  \"\\uFCD8\",\n  \"\\u0647\\u0645\",\n  \"\\uFCD9\",\n  \"\\u0647\\u0670\",\n  \"\\uFCDA\",\n  \"\\u064A\\u062C\",\n  \"\\uFCDB\",\n  \"\\u064A\\u062D\",\n  \"\\uFCDC\",\n  \"\\u064A\\u062E\",\n  \"\\uFCDD\",\n  \"\\u064A\\u0645\",\n  \"\\uFCDE\",\n  \"\\u064A\\u0647\",\n  \"\\uFCDF\",\n  \"\\u0626\\u0645\",\n  \"\\uFCE0\",\n  \"\\u0626\\u0647\",\n  \"\\uFCE1\",\n  \"\\u0628\\u0645\",\n  \"\\uFCE2\",\n  \"\\u0628\\u0647\",\n  \"\\uFCE3\",\n  \"\\u062A\\u0645\",\n  \"\\uFCE4\",\n  \"\\u062A\\u0647\",\n  \"\\uFCE5\",\n  \"\\u062B\\u0645\",\n  \"\\uFCE6\",\n  \"\\u062B\\u0647\",\n  \"\\uFCE7\",\n  \"\\u0633\\u0645\",\n  \"\\uFCE8\",\n  \"\\u0633\\u0647\",\n  \"\\uFCE9\",\n  \"\\u0634\\u0645\",\n  \"\\uFCEA\",\n  \"\\u0634\\u0647\",\n  \"\\uFCEB\",\n  \"\\u0643\\u0644\",\n  \"\\uFCEC\",\n  \"\\u0643\\u0645\",\n  \"\\uFCED\",\n  \"\\u0644\\u0645\",\n  \"\\uFCEE\",\n  \"\\u0646\\u0645\",\n  \"\\uFCEF\",\n  \"\\u0646\\u0647\",\n  \"\\uFCF0\",\n  \"\\u064A\\u0645\",\n  \"\\uFCF1\",\n  \"\\u064A\\u0647\",\n  \"\\uFCF2\",\n  \"\\u0640\\u064E\\u0651\",\n  \"\\uFCF3\",\n  \"\\u0640\\u064F\\u0651\",\n  \"\\uFCF4\",\n  \"\\u0640\\u0650\\u0651\",\n  \"\\uFCF5\",\n  \"\\u0637\\u0649\",\n  \"\\uFCF6\",\n  \"\\u0637\\u064A\",\n  \"\\uFCF7\",\n  \"\\u0639\\u0649\",\n  \"\\uFCF8\",\n  \"\\u0639\\u064A\",\n  \"\\uFCF9\",\n  \"\\u063A\\u0649\",\n  \"\\uFCFA\",\n  \"\\u063A\\u064A\",\n  \"\\uFCFB\",\n  \"\\u0633\\u0649\",\n  \"\\uFCFC\",\n  \"\\u0633\\u064A\",\n  \"\\uFCFD\",\n  \"\\u0634\\u0649\",\n  \"\\uFCFE\",\n  \"\\u0634\\u064A\",\n  \"\\uFCFF\",\n  \"\\u062D\\u0649\",\n  \"\\uFD00\",\n  \"\\u062D\\u064A\",\n  \"\\uFD01\",\n  \"\\u062C\\u0649\",\n  \"\\uFD02\",\n  \"\\u062C\\u064A\",\n  \"\\uFD03\",\n  \"\\u062E\\u0649\",\n  \"\\uFD04\",\n  \"\\u062E\\u064A\",\n  \"\\uFD05\",\n  \"\\u0635\\u0649\",\n  \"\\uFD06\",\n  \"\\u0635\\u064A\",\n  \"\\uFD07\",\n  \"\\u0636\\u0649\",\n  \"\\uFD08\",\n  \"\\u0636\\u064A\",\n  \"\\uFD09\",\n  \"\\u0634\\u062C\",\n  \"\\uFD0A\",\n  \"\\u0634\\u062D\",\n  \"\\uFD0B\",\n  \"\\u0634\\u062E\",\n  \"\\uFD0C\",\n  \"\\u0634\\u0645\",\n  \"\\uFD0D\",\n  \"\\u0634\\u0631\",\n  \"\\uFD0E\",\n  \"\\u0633\\u0631\",\n  \"\\uFD0F\",\n  \"\\u0635\\u0631\",\n  \"\\uFD10\",\n  \"\\u0636\\u0631\",\n  \"\\uFD11\",\n  \"\\u0637\\u0649\",\n  \"\\uFD12\",\n  \"\\u0637\\u064A\",\n  \"\\uFD13\",\n  \"\\u0639\\u0649\",\n  \"\\uFD14\",\n  \"\\u0639\\u064A\",\n  \"\\uFD15\",\n  \"\\u063A\\u0649\",\n  \"\\uFD16\",\n  \"\\u063A\\u064A\",\n  \"\\uFD17\",\n  \"\\u0633\\u0649\",\n  \"\\uFD18\",\n  \"\\u0633\\u064A\",\n  \"\\uFD19\",\n  \"\\u0634\\u0649\",\n  \"\\uFD1A\",\n  \"\\u0634\\u064A\",\n  \"\\uFD1B\",\n  \"\\u062D\\u0649\",\n  \"\\uFD1C\",\n  \"\\u062D\\u064A\",\n  \"\\uFD1D\",\n  \"\\u062C\\u0649\",\n  \"\\uFD1E\",\n  \"\\u062C\\u064A\",\n  \"\\uFD1F\",\n  \"\\u062E\\u0649\",\n  \"\\uFD20\",\n  \"\\u062E\\u064A\",\n  \"\\uFD21\",\n  \"\\u0635\\u0649\",\n  \"\\uFD22\",\n  \"\\u0635\\u064A\",\n  \"\\uFD23\",\n  \"\\u0636\\u0649\",\n  \"\\uFD24\",\n  \"\\u0636\\u064A\",\n  \"\\uFD25\",\n  \"\\u0634\\u062C\",\n  \"\\uFD26\",\n  \"\\u0634\\u062D\",\n  \"\\uFD27\",\n  \"\\u0634\\u062E\",\n  \"\\uFD28\",\n  \"\\u0634\\u0645\",\n  \"\\uFD29\",\n  \"\\u0634\\u0631\",\n  \"\\uFD2A\",\n  \"\\u0633\\u0631\",\n  \"\\uFD2B\",\n  \"\\u0635\\u0631\",\n  \"\\uFD2C\",\n  \"\\u0636\\u0631\",\n  \"\\uFD2D\",\n  \"\\u0634\\u062C\",\n  \"\\uFD2E\",\n  \"\\u0634\\u062D\",\n  \"\\uFD2F\",\n  \"\\u0634\\u062E\",\n  \"\\uFD30\",\n  \"\\u0634\\u0645\",\n  \"\\uFD31\",\n  \"\\u0633\\u0647\",\n  \"\\uFD32\",\n  \"\\u0634\\u0647\",\n  \"\\uFD33\",\n  \"\\u0637\\u0645\",\n  \"\\uFD34\",\n  \"\\u0633\\u062C\",\n  \"\\uFD35\",\n  \"\\u0633\\u062D\",\n  \"\\uFD36\",\n  \"\\u0633\\u062E\",\n  \"\\uFD37\",\n  \"\\u0634\\u062C\",\n  \"\\uFD38\",\n  \"\\u0634\\u062D\",\n  \"\\uFD39\",\n  \"\\u0634\\u062E\",\n  \"\\uFD3A\",\n  \"\\u0637\\u0645\",\n  \"\\uFD3B\",\n  \"\\u0638\\u0645\",\n  \"\\uFD3C\",\n  \"\\u0627\\u064B\",\n  \"\\uFD3D\",\n  \"\\u0627\\u064B\",\n  \"\\uFD50\",\n  \"\\u062A\\u062C\\u0645\",\n  \"\\uFD51\",\n  \"\\u062A\\u062D\\u062C\",\n  \"\\uFD52\",\n  \"\\u062A\\u062D\\u062C\",\n  \"\\uFD53\",\n  \"\\u062A\\u062D\\u0645\",\n  \"\\uFD54\",\n  \"\\u062A\\u062E\\u0645\",\n  \"\\uFD55\",\n  \"\\u062A\\u0645\\u062C\",\n  \"\\uFD56\",\n  \"\\u062A\\u0645\\u062D\",\n  \"\\uFD57\",\n  \"\\u062A\\u0645\\u062E\",\n  \"\\uFD58\",\n  \"\\u062C\\u0645\\u062D\",\n  \"\\uFD59\",\n  \"\\u062C\\u0645\\u062D\",\n  \"\\uFD5A\",\n  \"\\u062D\\u0645\\u064A\",\n  \"\\uFD5B\",\n  \"\\u062D\\u0645\\u0649\",\n  \"\\uFD5C\",\n  \"\\u0633\\u062D\\u062C\",\n  \"\\uFD5D\",\n  \"\\u0633\\u062C\\u062D\",\n  \"\\uFD5E\",\n  \"\\u0633\\u062C\\u0649\",\n  \"\\uFD5F\",\n  \"\\u0633\\u0645\\u062D\",\n  \"\\uFD60\",\n  \"\\u0633\\u0645\\u062D\",\n  \"\\uFD61\",\n  \"\\u0633\\u0645\\u062C\",\n  \"\\uFD62\",\n  \"\\u0633\\u0645\\u0645\",\n  \"\\uFD63\",\n  \"\\u0633\\u0645\\u0645\",\n  \"\\uFD64\",\n  \"\\u0635\\u062D\\u062D\",\n  \"\\uFD65\",\n  \"\\u0635\\u062D\\u062D\",\n  \"\\uFD66\",\n  \"\\u0635\\u0645\\u0645\",\n  \"\\uFD67\",\n  \"\\u0634\\u062D\\u0645\",\n  \"\\uFD68\",\n  \"\\u0634\\u062D\\u0645\",\n  \"\\uFD69\",\n  \"\\u0634\\u062C\\u064A\",\n  \"\\uFD6A\",\n  \"\\u0634\\u0645\\u062E\",\n  \"\\uFD6B\",\n  \"\\u0634\\u0645\\u062E\",\n  \"\\uFD6C\",\n  \"\\u0634\\u0645\\u0645\",\n  \"\\uFD6D\",\n  \"\\u0634\\u0645\\u0645\",\n  \"\\uFD6E\",\n  \"\\u0636\\u062D\\u0649\",\n  \"\\uFD6F\",\n  \"\\u0636\\u062E\\u0645\",\n  \"\\uFD70\",\n  \"\\u0636\\u062E\\u0645\",\n  \"\\uFD71\",\n  \"\\u0637\\u0645\\u062D\",\n  \"\\uFD72\",\n  \"\\u0637\\u0645\\u062D\",\n  \"\\uFD73\",\n  \"\\u0637\\u0645\\u0645\",\n  \"\\uFD74\",\n  \"\\u0637\\u0645\\u064A\",\n  \"\\uFD75\",\n  \"\\u0639\\u062C\\u0645\",\n  \"\\uFD76\",\n  \"\\u0639\\u0645\\u0645\",\n  \"\\uFD77\",\n  \"\\u0639\\u0645\\u0645\",\n  \"\\uFD78\",\n  \"\\u0639\\u0645\\u0649\",\n  \"\\uFD79\",\n  \"\\u063A\\u0645\\u0645\",\n  \"\\uFD7A\",\n  \"\\u063A\\u0645\\u064A\",\n  \"\\uFD7B\",\n  \"\\u063A\\u0645\\u0649\",\n  \"\\uFD7C\",\n  \"\\u0641\\u062E\\u0645\",\n  \"\\uFD7D\",\n  \"\\u0641\\u062E\\u0645\",\n  \"\\uFD7E\",\n  \"\\u0642\\u0645\\u062D\",\n  \"\\uFD7F\",\n  \"\\u0642\\u0645\\u0645\",\n  \"\\uFD80\",\n  \"\\u0644\\u062D\\u0645\",\n  \"\\uFD81\",\n  \"\\u0644\\u062D\\u064A\",\n  \"\\uFD82\",\n  \"\\u0644\\u062D\\u0649\",\n  \"\\uFD83\",\n  \"\\u0644\\u062C\\u062C\",\n  \"\\uFD84\",\n  \"\\u0644\\u062C\\u062C\",\n  \"\\uFD85\",\n  \"\\u0644\\u062E\\u0645\",\n  \"\\uFD86\",\n  \"\\u0644\\u062E\\u0645\",\n  \"\\uFD87\",\n  \"\\u0644\\u0645\\u062D\",\n  \"\\uFD88\",\n  \"\\u0644\\u0645\\u062D\",\n  \"\\uFD89\",\n  \"\\u0645\\u062D\\u062C\",\n  \"\\uFD8A\",\n  \"\\u0645\\u062D\\u0645\",\n  \"\\uFD8B\",\n  \"\\u0645\\u062D\\u064A\",\n  \"\\uFD8C\",\n  \"\\u0645\\u062C\\u062D\",\n  \"\\uFD8D\",\n  \"\\u0645\\u062C\\u0645\",\n  \"\\uFD8E\",\n  \"\\u0645\\u062E\\u062C\",\n  \"\\uFD8F\",\n  \"\\u0645\\u062E\\u0645\",\n  \"\\uFD92\",\n  \"\\u0645\\u062C\\u062E\",\n  \"\\uFD93\",\n  \"\\u0647\\u0645\\u062C\",\n  \"\\uFD94\",\n  \"\\u0647\\u0645\\u0645\",\n  \"\\uFD95\",\n  \"\\u0646\\u062D\\u0645\",\n  \"\\uFD96\",\n  \"\\u0646\\u062D\\u0649\",\n  \"\\uFD97\",\n  \"\\u0646\\u062C\\u0645\",\n  \"\\uFD98\",\n  \"\\u0646\\u062C\\u0645\",\n  \"\\uFD99\",\n  \"\\u0646\\u062C\\u0649\",\n  \"\\uFD9A\",\n  \"\\u0646\\u0645\\u064A\",\n  \"\\uFD9B\",\n  \"\\u0646\\u0645\\u0649\",\n  \"\\uFD9C\",\n  \"\\u064A\\u0645\\u0645\",\n  \"\\uFD9D\",\n  \"\\u064A\\u0645\\u0645\",\n  \"\\uFD9E\",\n  \"\\u0628\\u062E\\u064A\",\n  \"\\uFD9F\",\n  \"\\u062A\\u062C\\u064A\",\n  \"\\uFDA0\",\n  \"\\u062A\\u062C\\u0649\",\n  \"\\uFDA1\",\n  \"\\u062A\\u062E\\u064A\",\n  \"\\uFDA2\",\n  \"\\u062A\\u062E\\u0649\",\n  \"\\uFDA3\",\n  \"\\u062A\\u0645\\u064A\",\n  \"\\uFDA4\",\n  \"\\u062A\\u0645\\u0649\",\n  \"\\uFDA5\",\n  \"\\u062C\\u0645\\u064A\",\n  \"\\uFDA6\",\n  \"\\u062C\\u062D\\u0649\",\n  \"\\uFDA7\",\n  \"\\u062C\\u0645\\u0649\",\n  \"\\uFDA8\",\n  \"\\u0633\\u062E\\u0649\",\n  \"\\uFDA9\",\n  \"\\u0635\\u062D\\u064A\",\n  \"\\uFDAA\",\n  \"\\u0634\\u062D\\u064A\",\n  \"\\uFDAB\",\n  \"\\u0636\\u062D\\u064A\",\n  \"\\uFDAC\",\n  \"\\u0644\\u062C\\u064A\",\n  \"\\uFDAD\",\n  \"\\u0644\\u0645\\u064A\",\n  \"\\uFDAE\",\n  \"\\u064A\\u062D\\u064A\",\n  \"\\uFDAF\",\n  \"\\u064A\\u062C\\u064A\",\n  \"\\uFDB0\",\n  \"\\u064A\\u0645\\u064A\",\n  \"\\uFDB1\",\n  \"\\u0645\\u0645\\u064A\",\n  \"\\uFDB2\",\n  \"\\u0642\\u0645\\u064A\",\n  \"\\uFDB3\",\n  \"\\u0646\\u062D\\u064A\",\n  \"\\uFDB4\",\n  \"\\u0642\\u0645\\u062D\",\n  \"\\uFDB5\",\n  \"\\u0644\\u062D\\u0645\",\n  \"\\uFDB6\",\n  \"\\u0639\\u0645\\u064A\",\n  \"\\uFDB7\",\n  \"\\u0643\\u0645\\u064A\",\n  \"\\uFDB8\",\n  \"\\u0646\\u062C\\u062D\",\n  \"\\uFDB9\",\n  \"\\u0645\\u062E\\u064A\",\n  \"\\uFDBA\",\n  \"\\u0644\\u062C\\u0645\",\n  \"\\uFDBB\",\n  \"\\u0643\\u0645\\u0645\",\n  \"\\uFDBC\",\n  \"\\u0644\\u062C\\u0645\",\n  \"\\uFDBD\",\n  \"\\u0646\\u062C\\u062D\",\n  \"\\uFDBE\",\n  \"\\u062C\\u062D\\u064A\",\n  \"\\uFDBF\",\n  \"\\u062D\\u062C\\u064A\",\n  \"\\uFDC0\",\n  \"\\u0645\\u062C\\u064A\",\n  \"\\uFDC1\",\n  \"\\u0641\\u0645\\u064A\",\n  \"\\uFDC2\",\n  \"\\u0628\\u062D\\u064A\",\n  \"\\uFDC3\",\n  \"\\u0643\\u0645\\u0645\",\n  \"\\uFDC4\",\n  \"\\u0639\\u062C\\u0645\",\n  \"\\uFDC5\",\n  \"\\u0635\\u0645\\u0645\",\n  \"\\uFDC6\",\n  \"\\u0633\\u062E\\u064A\",\n  \"\\uFDC7\",\n  \"\\u0646\\u062C\\u064A\",\n  \"\\uFE49\",\n  \"\\u203E\",\n  \"\\uFE4A\",\n  \"\\u203E\",\n  \"\\uFE4B\",\n  \"\\u203E\",\n  \"\\uFE4C\",\n  \"\\u203E\",\n  \"\\uFE4D\",\n  \"\\u005F\",\n  \"\\uFE4E\",\n  \"\\u005F\",\n  \"\\uFE4F\",\n  \"\\u005F\",\n  \"\\uFE80\",\n  \"\\u0621\",\n  \"\\uFE81\",\n  \"\\u0622\",\n  \"\\uFE82\",\n  \"\\u0622\",\n  \"\\uFE83\",\n  \"\\u0623\",\n  \"\\uFE84\",\n  \"\\u0623\",\n  \"\\uFE85\",\n  \"\\u0624\",\n  \"\\uFE86\",\n  \"\\u0624\",\n  \"\\uFE87\",\n  \"\\u0625\",\n  \"\\uFE88\",\n  \"\\u0625\",\n  \"\\uFE89\",\n  \"\\u0626\",\n  \"\\uFE8A\",\n  \"\\u0626\",\n  \"\\uFE8B\",\n  \"\\u0626\",\n  \"\\uFE8C\",\n  \"\\u0626\",\n  \"\\uFE8D\",\n  \"\\u0627\",\n  \"\\uFE8E\",\n  \"\\u0627\",\n  \"\\uFE8F\",\n  \"\\u0628\",\n  \"\\uFE90\",\n  \"\\u0628\",\n  \"\\uFE91\",\n  \"\\u0628\",\n  \"\\uFE92\",\n  \"\\u0628\",\n  \"\\uFE93\",\n  \"\\u0629\",\n  \"\\uFE94\",\n  \"\\u0629\",\n  \"\\uFE95\",\n  \"\\u062A\",\n  \"\\uFE96\",\n  \"\\u062A\",\n  \"\\uFE97\",\n  \"\\u062A\",\n  \"\\uFE98\",\n  \"\\u062A\",\n  \"\\uFE99\",\n  \"\\u062B\",\n  \"\\uFE9A\",\n  \"\\u062B\",\n  \"\\uFE9B\",\n  \"\\u062B\",\n  \"\\uFE9C\",\n  \"\\u062B\",\n  \"\\uFE9D\",\n  \"\\u062C\",\n  \"\\uFE9E\",\n  \"\\u062C\",\n  \"\\uFE9F\",\n  \"\\u062C\",\n  \"\\uFEA0\",\n  \"\\u062C\",\n  \"\\uFEA1\",\n  \"\\u062D\",\n  \"\\uFEA2\",\n  \"\\u062D\",\n  \"\\uFEA3\",\n  \"\\u062D\",\n  \"\\uFEA4\",\n  \"\\u062D\",\n  \"\\uFEA5\",\n  \"\\u062E\",\n  \"\\uFEA6\",\n  \"\\u062E\",\n  \"\\uFEA7\",\n  \"\\u062E\",\n  \"\\uFEA8\",\n  \"\\u062E\",\n  \"\\uFEA9\",\n  \"\\u062F\",\n  \"\\uFEAA\",\n  \"\\u062F\",\n  \"\\uFEAB\",\n  \"\\u0630\",\n  \"\\uFEAC\",\n  \"\\u0630\",\n  \"\\uFEAD\",\n  \"\\u0631\",\n  \"\\uFEAE\",\n  \"\\u0631\",\n  \"\\uFEAF\",\n  \"\\u0632\",\n  \"\\uFEB0\",\n  \"\\u0632\",\n  \"\\uFEB1\",\n  \"\\u0633\",\n  \"\\uFEB2\",\n  \"\\u0633\",\n  \"\\uFEB3\",\n  \"\\u0633\",\n  \"\\uFEB4\",\n  \"\\u0633\",\n  \"\\uFEB5\",\n  \"\\u0634\",\n  \"\\uFEB6\",\n  \"\\u0634\",\n  \"\\uFEB7\",\n  \"\\u0634\",\n  \"\\uFEB8\",\n  \"\\u0634\",\n  \"\\uFEB9\",\n  \"\\u0635\",\n  \"\\uFEBA\",\n  \"\\u0635\",\n  \"\\uFEBB\",\n  \"\\u0635\",\n  \"\\uFEBC\",\n  \"\\u0635\",\n  \"\\uFEBD\",\n  \"\\u0636\",\n  \"\\uFEBE\",\n  \"\\u0636\",\n  \"\\uFEBF\",\n  \"\\u0636\",\n  \"\\uFEC0\",\n  \"\\u0636\",\n  \"\\uFEC1\",\n  \"\\u0637\",\n  \"\\uFEC2\",\n  \"\\u0637\",\n  \"\\uFEC3\",\n  \"\\u0637\",\n  \"\\uFEC4\",\n  \"\\u0637\",\n  \"\\uFEC5\",\n  \"\\u0638\",\n  \"\\uFEC6\",\n  \"\\u0638\",\n  \"\\uFEC7\",\n  \"\\u0638\",\n  \"\\uFEC8\",\n  \"\\u0638\",\n  \"\\uFEC9\",\n  \"\\u0639\",\n  \"\\uFECA\",\n  \"\\u0639\",\n  \"\\uFECB\",\n  \"\\u0639\",\n  \"\\uFECC\",\n  \"\\u0639\",\n  \"\\uFECD\",\n  \"\\u063A\",\n  \"\\uFECE\",\n  \"\\u063A\",\n  \"\\uFECF\",\n  \"\\u063A\",\n  \"\\uFED0\",\n  \"\\u063A\",\n  \"\\uFED1\",\n  \"\\u0641\",\n  \"\\uFED2\",\n  \"\\u0641\",\n  \"\\uFED3\",\n  \"\\u0641\",\n  \"\\uFED4\",\n  \"\\u0641\",\n  \"\\uFED5\",\n  \"\\u0642\",\n  \"\\uFED6\",\n  \"\\u0642\",\n  \"\\uFED7\",\n  \"\\u0642\",\n  \"\\uFED8\",\n  \"\\u0642\",\n  \"\\uFED9\",\n  \"\\u0643\",\n  \"\\uFEDA\",\n  \"\\u0643\",\n  \"\\uFEDB\",\n  \"\\u0643\",\n  \"\\uFEDC\",\n  \"\\u0643\",\n  \"\\uFEDD\",\n  \"\\u0644\",\n  \"\\uFEDE\",\n  \"\\u0644\",\n  \"\\uFEDF\",\n  \"\\u0644\",\n  \"\\uFEE0\",\n  \"\\u0644\",\n  \"\\uFEE1\",\n  \"\\u0645\",\n  \"\\uFEE2\",\n  \"\\u0645\",\n  \"\\uFEE3\",\n  \"\\u0645\",\n  \"\\uFEE4\",\n  \"\\u0645\",\n  \"\\uFEE5\",\n  \"\\u0646\",\n  \"\\uFEE6\",\n  \"\\u0646\",\n  \"\\uFEE7\",\n  \"\\u0646\",\n  \"\\uFEE8\",\n  \"\\u0646\",\n  \"\\uFEE9\",\n  \"\\u0647\",\n  \"\\uFEEA\",\n  \"\\u0647\",\n  \"\\uFEEB\",\n  \"\\u0647\",\n  \"\\uFEEC\",\n  \"\\u0647\",\n  \"\\uFEED\",\n  \"\\u0648\",\n  \"\\uFEEE\",\n  \"\\u0648\",\n  \"\\uFEEF\",\n  \"\\u0649\",\n  \"\\uFEF0\",\n  \"\\u0649\",\n  \"\\uFEF1\",\n  \"\\u064A\",\n  \"\\uFEF2\",\n  \"\\u064A\",\n  \"\\uFEF3\",\n  \"\\u064A\",\n  \"\\uFEF4\",\n  \"\\u064A\",\n  \"\\uFEF5\",\n  \"\\u0644\\u0622\",\n  \"\\uFEF6\",\n  \"\\u0644\\u0622\",\n  \"\\uFEF7\",\n  \"\\u0644\\u0623\",\n  \"\\uFEF8\",\n  \"\\u0644\\u0623\",\n  \"\\uFEF9\",\n  \"\\u0644\\u0625\",\n  \"\\uFEFA\",\n  \"\\u0644\\u0625\",\n  \"\\uFEFB\",\n  \"\\u0644\\u0627\",\n  \"\\uFEFC\",\n  \"\\u0644\\u0627\"\n ];\n});\nfunction reverseIfRtl(chars) {\n const charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n  return chars;\n }\n const buf = [];\n for (let ii = charsLength - 1; ii >= 0; ii--) {\n  buf.push(chars[ii]);\n }\n return buf.join(\"\");\n}\nconst SpecialCharRegExp = new RegExp(\"^(\\\\s)|(\\\\p{Mn})|(\\\\p{Cf})$\", \"u\");\nconst CategoryCache = new Map();\nfunction getCharUnicodeCategory(char) {\n const cachedCategory = CategoryCache.get(char);\n if (cachedCategory) {\n  return cachedCategory;\n }\n const groups = char.match(SpecialCharRegExp);\n const category = {\n  isWhitespace: !!(groups && groups[1]),\n  isZeroWidthDiacritic: !!(groups && groups[2]),\n  isInvisibleFormatMark: !!(groups && groups[3])\n };\n CategoryCache.set(char, category);\n return category;\n}\nfunction clearUnicodeCaches() {\n CategoryCache.clear();\n}\n\n\n/***/ }),\n/* 41 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getSerifFonts = exports.getNonStdFontMap = exports.getGlyphMapForStandardFonts = exports.getFontNameToFileMap = void 0;\nexports.getStandardFontName = getStandardFontName;\nexports.getSymbolsFonts = exports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getStdFontMap = void 0;\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _fonts_utils = __w_pdfjs_require__(38);\n\nconst getStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[\"Times-Roman\"] = \"Times-Roman\";\n  t.Helvetica = \"Helvetica\";\n  t.Courier = \"Courier\";\n  t.Symbol = \"Symbol\";\n  t[\"Times-Bold\"] = \"Times-Bold\";\n  t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n  t[\"Courier-Bold\"] = \"Courier-Bold\";\n  t.ZapfDingbats = \"ZapfDingbats\";\n  t[\"Times-Italic\"] = \"Times-Italic\";\n  t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n  t[\"Courier-Oblique\"] = \"Courier-Oblique\";\n  t[\"Times-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n  t[\"Courier-BoldOblique\"] = \"Courier-BoldOblique\";\n  t.ArialNarrow = \"Helvetica\";\n  t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialBlack = \"Helvetica\";\n  t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Arial-Black\"] = \"Helvetica\";\n  t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n  t.Arial = \"Helvetica\";\n  t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n  t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n  t.ArialMT = \"Helvetica\";\n  t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n  t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n  t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n  t.ArialUnicodeMS = \"Helvetica\";\n  t[\"ArialUnicodeMS-Bold\"] = \"Helvetica-Bold\";\n  t[\"ArialUnicodeMS-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ArialUnicodeMS-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"Courier-Italic\"] = \"Courier-Oblique\";\n  t.CourierNew = \"Courier\";\n  t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n  t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n  t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n  t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n  t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n  t.CourierNewPSMT = \"Courier\";\n  t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n  t[\"Symbol-Bold\"] = \"Symbol\";\n  t[\"Symbol-BoldItalic\"] = \"Symbol\";\n  t[\"Symbol-Italic\"] = \"Symbol\";\n  t.TimesNewRoman = \"Times-Roman\";\n  t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n  t.TimesNewRomanPS = \"Times-Roman\";\n  t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n  t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n  t.TimesNewRomanPSMT = \"Times-Roman\";\n  t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n  t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n  t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\nexports.getStdFontMap = getStdFontMap;\nconst getFontNameToFileMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Courier = \"FoxitFixed.pfb\";\n  t[\"Courier-Bold\"] = \"FoxitFixedBold.pfb\";\n  t[\"Courier-BoldOblique\"] = \"FoxitFixedBoldItalic.pfb\";\n  t[\"Courier-Oblique\"] = \"FoxitFixedItalic.pfb\";\n  t.Helvetica = \"FoxitSans.pfb\";\n  t[\"Helvetica-Bold\"] = \"FoxitSansBold.pfb\";\n  t[\"Helvetica-BoldOblique\"] = \"FoxitSansBoldItalic.pfb\";\n  t[\"Helvetica-Oblique\"] = \"FoxitSansItalic.pfb\";\n  t[\"Times-Roman\"] = \"FoxitSerif.pfb\";\n  t[\"Times-Bold\"] = \"FoxitSerifBold.pfb\";\n  t[\"Times-BoldItalic\"] = \"FoxitSerifBoldItalic.pfb\";\n  t[\"Times-Italic\"] = \"FoxitSerifItalic.pfb\";\n  t.Symbol = \"FoxitSymbol.pfb\";\n  t.ZapfDingbats = \"FoxitDingbats.pfb\";\n  t[\"LiberationSans-Regular\"] = \"LiberationSans-Regular.ttf\";\n  t[\"LiberationSans-Bold\"] = \"LiberationSans-Bold.ttf\";\n  t[\"LiberationSans-Italic\"] = \"LiberationSans-Italic.ttf\";\n  t[\"LiberationSans-BoldItalic\"] = \"LiberationSans-BoldItalic.ttf\";\n});\nexports.getFontNameToFileMap = getFontNameToFileMap;\nconst getNonStdFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Calibri = \"Helvetica\";\n  t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n  t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n  t.CenturyGothic = \"Helvetica\";\n  t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n  t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n  t.ComicSansMS = \"Comic Sans MS\";\n  t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n  t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n  t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n  t[\"ItcSymbol-Bold\"] = \"Helvetica-Bold\";\n  t[\"ItcSymbol-BoldItalic\"] = \"Helvetica-BoldOblique\";\n  t[\"ItcSymbol-Book\"] = \"Helvetica\";\n  t[\"ItcSymbol-BookItalic\"] = \"Helvetica-Oblique\";\n  t[\"ItcSymbol-Medium\"] = \"Helvetica\";\n  t[\"ItcSymbol-MediumItalic\"] = \"Helvetica-Oblique\";\n  t.LucidaConsole = \"Courier\";\n  t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n  t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n  t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n  t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n  t[\"MS-Gothic\"] = \"MS Gothic\";\n  t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n  t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n  t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n  t[\"MS-Mincho\"] = \"MS Mincho\";\n  t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n  t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n  t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n  t[\"MS-PGothic\"] = \"MS PGothic\";\n  t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n  t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n  t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n  t[\"MS-PMincho\"] = \"MS PMincho\";\n  t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n  t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n  t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n  t.NuptialScript = \"Times-Italic\";\n  t.SegoeUISymbol = \"Helvetica\";\n  t.Wingdings = \"ZapfDingbats\";\n  t[\"Wingdings-Regular\"] = \"ZapfDingbats\";\n});\nexports.getNonStdFontMap = getNonStdFontMap;\nconst getSerifFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[\"Adobe Jenson\"] = true;\n  t[\"Adobe Text\"] = true;\n  t.Albertus = true;\n  t.Aldus = true;\n  t.Alexandria = true;\n  t.Algerian = true;\n  t[\"American Typewriter\"] = true;\n  t.Antiqua = true;\n  t.Apex = true;\n  t.Arno = true;\n  t.Aster = true;\n  t.Aurora = true;\n  t.Baskerville = true;\n  t.Bell = true;\n  t.Bembo = true;\n  t[\"Bembo Schoolbook\"] = true;\n  t.Benguiat = true;\n  t[\"Berkeley Old Style\"] = true;\n  t[\"Bernhard Modern\"] = true;\n  t[\"Berthold City\"] = true;\n  t.Bodoni = true;\n  t[\"Bauer Bodoni\"] = true;\n  t[\"Book Antiqua\"] = true;\n  t.Bookman = true;\n  t[\"Bordeaux Roman\"] = true;\n  t[\"Californian FB\"] = true;\n  t.Calisto = true;\n  t.Calvert = true;\n  t.Capitals = true;\n  t.Cambria = true;\n  t.Cartier = true;\n  t.Caslon = true;\n  t.Catull = true;\n  t.Centaur = true;\n  t[\"Century Old Style\"] = true;\n  t[\"Century Schoolbook\"] = true;\n  t.Chaparral = true;\n  t[\"Charis SIL\"] = true;\n  t.Cheltenham = true;\n  t[\"Cholla Slab\"] = true;\n  t.Clarendon = true;\n  t.Clearface = true;\n  t.Cochin = true;\n  t.Colonna = true;\n  t[\"Computer Modern\"] = true;\n  t[\"Concrete Roman\"] = true;\n  t.Constantia = true;\n  t[\"Cooper Black\"] = true;\n  t.Corona = true;\n  t.Ecotype = true;\n  t.Egyptienne = true;\n  t.Elephant = true;\n  t.Excelsior = true;\n  t.Fairfield = true;\n  t[\"FF Scala\"] = true;\n  t.Folkard = true;\n  t.Footlight = true;\n  t.FreeSerif = true;\n  t[\"Friz Quadrata\"] = true;\n  t.Garamond = true;\n  t.Gentium = true;\n  t.Georgia = true;\n  t.Gloucester = true;\n  t[\"Goudy Old Style\"] = true;\n  t[\"Goudy Schoolbook\"] = true;\n  t[\"Goudy Pro Font\"] = true;\n  t.Granjon = true;\n  t[\"Guardian Egyptian\"] = true;\n  t.Heather = true;\n  t.Hercules = true;\n  t[\"High Tower Text\"] = true;\n  t.Hiroshige = true;\n  t[\"Hoefler Text\"] = true;\n  t[\"Humana Serif\"] = true;\n  t.Imprint = true;\n  t[\"Ionic No. 5\"] = true;\n  t.Janson = true;\n  t.Joanna = true;\n  t.Korinna = true;\n  t.Lexicon = true;\n  t.LiberationSerif = true;\n  t[\"Liberation Serif\"] = true;\n  t[\"Linux Libertine\"] = true;\n  t.Literaturnaya = true;\n  t.Lucida = true;\n  t[\"Lucida Bright\"] = true;\n  t.Melior = true;\n  t.Memphis = true;\n  t.Miller = true;\n  t.Minion = true;\n  t.Modern = true;\n  t[\"Mona Lisa\"] = true;\n  t[\"Mrs Eaves\"] = true;\n  t[\"MS Serif\"] = true;\n  t[\"Museo Slab\"] = true;\n  t[\"New York\"] = true;\n  t[\"Nimbus Roman\"] = true;\n  t[\"NPS Rawlinson Roadway\"] = true;\n  t.NuptialScript = true;\n  t.Palatino = true;\n  t.Perpetua = true;\n  t.Plantin = true;\n  t[\"Plantin Schoolbook\"] = true;\n  t.Playbill = true;\n  t[\"Poor Richard\"] = true;\n  t[\"Rawlinson Roadway\"] = true;\n  t.Renault = true;\n  t.Requiem = true;\n  t.Rockwell = true;\n  t.Roman = true;\n  t[\"Rotis Serif\"] = true;\n  t.Sabon = true;\n  t.Scala = true;\n  t.Seagull = true;\n  t.Sistina = true;\n  t.Souvenir = true;\n  t.STIX = true;\n  t[\"Stone Informal\"] = true;\n  t[\"Stone Serif\"] = true;\n  t.Sylfaen = true;\n  t.Times = true;\n  t.Trajan = true;\n  t[\"Trinité\"] = true;\n  t[\"Trump Mediaeval\"] = true;\n  t.Utopia = true;\n  t[\"Vale Type\"] = true;\n  t[\"Bitstream Vera\"] = true;\n  t[\"Vera Serif\"] = true;\n  t.Versailles = true;\n  t.Wanted = true;\n  t.Weiss = true;\n  t[\"Wide Latin\"] = true;\n  t.Windsor = true;\n  t.XITS = true;\n});\nexports.getSerifFonts = getSerifFonts;\nconst getSymbolsFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Dingbats = true;\n  t.Symbol = true;\n  t.ZapfDingbats = true;\n});\nexports.getSymbolsFonts = getSymbolsFonts;\nconst getGlyphMapForStandardFonts = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[2] = 10;\n  t[3] = 32;\n  t[4] = 33;\n  t[5] = 34;\n  t[6] = 35;\n  t[7] = 36;\n  t[8] = 37;\n  t[9] = 38;\n  t[10] = 39;\n  t[11] = 40;\n  t[12] = 41;\n  t[13] = 42;\n  t[14] = 43;\n  t[15] = 44;\n  t[16] = 45;\n  t[17] = 46;\n  t[18] = 47;\n  t[19] = 48;\n  t[20] = 49;\n  t[21] = 50;\n  t[22] = 51;\n  t[23] = 52;\n  t[24] = 53;\n  t[25] = 54;\n  t[26] = 55;\n  t[27] = 56;\n  t[28] = 57;\n  t[29] = 58;\n  t[30] = 894;\n  t[31] = 60;\n  t[32] = 61;\n  t[33] = 62;\n  t[34] = 63;\n  t[35] = 64;\n  t[36] = 65;\n  t[37] = 66;\n  t[38] = 67;\n  t[39] = 68;\n  t[40] = 69;\n  t[41] = 70;\n  t[42] = 71;\n  t[43] = 72;\n  t[44] = 73;\n  t[45] = 74;\n  t[46] = 75;\n  t[47] = 76;\n  t[48] = 77;\n  t[49] = 78;\n  t[50] = 79;\n  t[51] = 80;\n  t[52] = 81;\n  t[53] = 82;\n  t[54] = 83;\n  t[55] = 84;\n  t[56] = 85;\n  t[57] = 86;\n  t[58] = 87;\n  t[59] = 88;\n  t[60] = 89;\n  t[61] = 90;\n  t[62] = 91;\n  t[63] = 92;\n  t[64] = 93;\n  t[65] = 94;\n  t[66] = 95;\n  t[67] = 96;\n  t[68] = 97;\n  t[69] = 98;\n  t[70] = 99;\n  t[71] = 100;\n  t[72] = 101;\n  t[73] = 102;\n  t[74] = 103;\n  t[75] = 104;\n  t[76] = 105;\n  t[77] = 106;\n  t[78] = 107;\n  t[79] = 108;\n  t[80] = 109;\n  t[81] = 110;\n  t[82] = 111;\n  t[83] = 112;\n  t[84] = 113;\n  t[85] = 114;\n  t[86] = 115;\n  t[87] = 116;\n  t[88] = 117;\n  t[89] = 118;\n  t[90] = 119;\n  t[91] = 120;\n  t[92] = 121;\n  t[93] = 122;\n  t[94] = 123;\n  t[95] = 124;\n  t[96] = 125;\n  t[97] = 126;\n  t[98] = 196;\n  t[99] = 197;\n  t[100] = 199;\n  t[101] = 201;\n  t[102] = 209;\n  t[103] = 214;\n  t[104] = 220;\n  t[105] = 225;\n  t[106] = 224;\n  t[107] = 226;\n  t[108] = 228;\n  t[109] = 227;\n  t[110] = 229;\n  t[111] = 231;\n  t[112] = 233;\n  t[113] = 232;\n  t[114] = 234;\n  t[115] = 235;\n  t[116] = 237;\n  t[117] = 236;\n  t[118] = 238;\n  t[119] = 239;\n  t[120] = 241;\n  t[121] = 243;\n  t[122] = 242;\n  t[123] = 244;\n  t[124] = 246;\n  t[125] = 245;\n  t[126] = 250;\n  t[127] = 249;\n  t[128] = 251;\n  t[129] = 252;\n  t[130] = 8224;\n  t[131] = 176;\n  t[132] = 162;\n  t[133] = 163;\n  t[134] = 167;\n  t[135] = 8226;\n  t[136] = 182;\n  t[137] = 223;\n  t[138] = 174;\n  t[139] = 169;\n  t[140] = 8482;\n  t[141] = 180;\n  t[142] = 168;\n  t[143] = 8800;\n  t[144] = 198;\n  t[145] = 216;\n  t[146] = 8734;\n  t[147] = 177;\n  t[148] = 8804;\n  t[149] = 8805;\n  t[150] = 165;\n  t[151] = 181;\n  t[152] = 8706;\n  t[153] = 8721;\n  t[154] = 8719;\n  t[156] = 8747;\n  t[157] = 170;\n  t[158] = 186;\n  t[159] = 8486;\n  t[160] = 230;\n  t[161] = 248;\n  t[162] = 191;\n  t[163] = 161;\n  t[164] = 172;\n  t[165] = 8730;\n  t[166] = 402;\n  t[167] = 8776;\n  t[168] = 8710;\n  t[169] = 171;\n  t[170] = 187;\n  t[171] = 8230;\n  t[200] = 193;\n  t[203] = 205;\n  t[210] = 218;\n  t[223] = 711;\n  t[224] = 321;\n  t[225] = 322;\n  t[226] = 352;\n  t[227] = 353;\n  t[228] = 381;\n  t[229] = 382;\n  t[233] = 221;\n  t[234] = 253;\n  t[252] = 263;\n  t[253] = 268;\n  t[254] = 269;\n  t[258] = 258;\n  t[260] = 260;\n  t[261] = 261;\n  t[265] = 280;\n  t[266] = 281;\n  t[267] = 282;\n  t[268] = 283;\n  t[269] = 313;\n  t[275] = 323;\n  t[276] = 324;\n  t[278] = 328;\n  t[283] = 344;\n  t[284] = 345;\n  t[285] = 346;\n  t[286] = 347;\n  t[292] = 367;\n  t[295] = 377;\n  t[296] = 378;\n  t[298] = 380;\n  t[305] = 963;\n  t[306] = 964;\n  t[307] = 966;\n  t[308] = 8215;\n  t[309] = 8252;\n  t[310] = 8319;\n  t[311] = 8359;\n  t[312] = 8592;\n  t[313] = 8593;\n  t[337] = 9552;\n  t[493] = 1039;\n  t[494] = 1040;\n  t[672] = 1488;\n  t[673] = 1489;\n  t[674] = 1490;\n  t[675] = 1491;\n  t[676] = 1492;\n  t[677] = 1493;\n  t[678] = 1494;\n  t[679] = 1495;\n  t[680] = 1496;\n  t[681] = 1497;\n  t[682] = 1498;\n  t[683] = 1499;\n  t[684] = 1500;\n  t[685] = 1501;\n  t[686] = 1502;\n  t[687] = 1503;\n  t[688] = 1504;\n  t[689] = 1505;\n  t[690] = 1506;\n  t[691] = 1507;\n  t[692] = 1508;\n  t[693] = 1509;\n  t[694] = 1510;\n  t[695] = 1511;\n  t[696] = 1512;\n  t[697] = 1513;\n  t[698] = 1514;\n  t[705] = 1524;\n  t[706] = 8362;\n  t[710] = 64288;\n  t[711] = 64298;\n  t[759] = 1617;\n  t[761] = 1776;\n  t[763] = 1778;\n  t[775] = 1652;\n  t[777] = 1764;\n  t[778] = 1780;\n  t[779] = 1781;\n  t[780] = 1782;\n  t[782] = 771;\n  t[783] = 64726;\n  t[786] = 8363;\n  t[788] = 8532;\n  t[790] = 768;\n  t[791] = 769;\n  t[792] = 768;\n  t[795] = 803;\n  t[797] = 64336;\n  t[798] = 64337;\n  t[799] = 64342;\n  t[800] = 64343;\n  t[801] = 64344;\n  t[802] = 64345;\n  t[803] = 64362;\n  t[804] = 64363;\n  t[805] = 64364;\n  t[2424] = 7821;\n  t[2425] = 7822;\n  t[2426] = 7823;\n  t[2427] = 7824;\n  t[2428] = 7825;\n  t[2429] = 7826;\n  t[2430] = 7827;\n  t[2433] = 7682;\n  t[2678] = 8045;\n  t[2679] = 8046;\n  t[2830] = 1552;\n  t[2838] = 686;\n  t[2840] = 751;\n  t[2842] = 753;\n  t[2843] = 754;\n  t[2844] = 755;\n  t[2846] = 757;\n  t[2856] = 767;\n  t[2857] = 848;\n  t[2858] = 849;\n  t[2862] = 853;\n  t[2863] = 854;\n  t[2864] = 855;\n  t[2865] = 861;\n  t[2866] = 862;\n  t[2906] = 7460;\n  t[2908] = 7462;\n  t[2909] = 7463;\n  t[2910] = 7464;\n  t[2912] = 7466;\n  t[2913] = 7467;\n  t[2914] = 7468;\n  t[2916] = 7470;\n  t[2917] = 7471;\n  t[2918] = 7472;\n  t[2920] = 7474;\n  t[2921] = 7475;\n  t[2922] = 7476;\n  t[2924] = 7478;\n  t[2925] = 7479;\n  t[2926] = 7480;\n  t[2928] = 7482;\n  t[2929] = 7483;\n  t[2930] = 7484;\n  t[2932] = 7486;\n  t[2933] = 7487;\n  t[2934] = 7488;\n  t[2936] = 7490;\n  t[2937] = 7491;\n  t[2938] = 7492;\n  t[2940] = 7494;\n  t[2941] = 7495;\n  t[2942] = 7496;\n  t[2944] = 7498;\n  t[2946] = 7500;\n  t[2948] = 7502;\n  t[2950] = 7504;\n  t[2951] = 7505;\n  t[2952] = 7506;\n  t[2954] = 7508;\n  t[2955] = 7509;\n  t[2956] = 7510;\n  t[2958] = 7512;\n  t[2959] = 7513;\n  t[2960] = 7514;\n  t[2962] = 7516;\n  t[2963] = 7517;\n  t[2964] = 7518;\n  t[2966] = 7520;\n  t[2967] = 7521;\n  t[2968] = 7522;\n  t[2970] = 7524;\n  t[2971] = 7525;\n  t[2972] = 7526;\n  t[2974] = 7528;\n  t[2975] = 7529;\n  t[2976] = 7530;\n  t[2978] = 1537;\n  t[2979] = 1538;\n  t[2980] = 1539;\n  t[2982] = 1549;\n  t[2983] = 1551;\n  t[2984] = 1552;\n  t[2986] = 1554;\n  t[2987] = 1555;\n  t[2988] = 1556;\n  t[2990] = 1623;\n  t[2991] = 1624;\n  t[2995] = 1775;\n  t[2999] = 1791;\n  t[3002] = 64290;\n  t[3003] = 64291;\n  t[3004] = 64292;\n  t[3006] = 64294;\n  t[3007] = 64295;\n  t[3008] = 64296;\n  t[3011] = 1900;\n  t[3014] = 8223;\n  t[3015] = 8244;\n  t[3017] = 7532;\n  t[3018] = 7533;\n  t[3019] = 7534;\n  t[3075] = 7590;\n  t[3076] = 7591;\n  t[3079] = 7594;\n  t[3080] = 7595;\n  t[3083] = 7598;\n  t[3084] = 7599;\n  t[3087] = 7602;\n  t[3088] = 7603;\n  t[3091] = 7606;\n  t[3092] = 7607;\n  t[3095] = 7610;\n  t[3096] = 7611;\n  t[3099] = 7614;\n  t[3100] = 7615;\n  t[3103] = 7618;\n  t[3104] = 7619;\n  t[3107] = 8337;\n  t[3108] = 8338;\n  t[3116] = 1884;\n  t[3119] = 1885;\n  t[3120] = 1885;\n  t[3123] = 1886;\n  t[3124] = 1886;\n  t[3127] = 1887;\n  t[3128] = 1887;\n  t[3131] = 1888;\n  t[3132] = 1888;\n  t[3135] = 1889;\n  t[3136] = 1889;\n  t[3139] = 1890;\n  t[3140] = 1890;\n  t[3143] = 1891;\n  t[3144] = 1891;\n  t[3147] = 1892;\n  t[3148] = 1892;\n  t[3153] = 580;\n  t[3154] = 581;\n  t[3157] = 584;\n  t[3158] = 585;\n  t[3161] = 588;\n  t[3162] = 589;\n  t[3165] = 891;\n  t[3166] = 892;\n  t[3169] = 1274;\n  t[3170] = 1275;\n  t[3173] = 1278;\n  t[3174] = 1279;\n  t[3181] = 7622;\n  t[3182] = 7623;\n  t[3282] = 11799;\n  t[3316] = 578;\n  t[3379] = 42785;\n  t[3393] = 1159;\n  t[3416] = 8377;\n});\nexports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\nconst getSupplementalGlyphMapForArialBlack = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[227] = 322;\n  t[264] = 261;\n  t[291] = 346;\n});\nexports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\nconst getSupplementalGlyphMapForCalibri = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[1] = 32;\n  t[4] = 65;\n  t[6] = 193;\n  t[17] = 66;\n  t[18] = 67;\n  t[21] = 268;\n  t[24] = 68;\n  t[28] = 69;\n  t[30] = 201;\n  t[32] = 282;\n  t[38] = 70;\n  t[39] = 71;\n  t[44] = 72;\n  t[47] = 73;\n  t[49] = 205;\n  t[58] = 74;\n  t[60] = 75;\n  t[62] = 76;\n  t[68] = 77;\n  t[69] = 78;\n  t[75] = 79;\n  t[87] = 80;\n  t[89] = 81;\n  t[90] = 82;\n  t[92] = 344;\n  t[94] = 83;\n  t[97] = 352;\n  t[100] = 84;\n  t[104] = 85;\n  t[115] = 86;\n  t[116] = 87;\n  t[121] = 88;\n  t[122] = 89;\n  t[124] = 221;\n  t[127] = 90;\n  t[129] = 381;\n  t[258] = 97;\n  t[260] = 225;\n  t[268] = 261;\n  t[271] = 98;\n  t[272] = 99;\n  t[273] = 263;\n  t[275] = 269;\n  t[282] = 100;\n  t[286] = 101;\n  t[288] = 233;\n  t[290] = 283;\n  t[295] = 281;\n  t[296] = 102;\n  t[336] = 103;\n  t[346] = 104;\n  t[349] = 105;\n  t[351] = 237;\n  t[361] = 106;\n  t[364] = 107;\n  t[367] = 108;\n  t[371] = 322;\n  t[373] = 109;\n  t[374] = 110;\n  t[381] = 111;\n  t[383] = 243;\n  t[393] = 112;\n  t[395] = 113;\n  t[396] = 114;\n  t[398] = 345;\n  t[400] = 115;\n  t[401] = 347;\n  t[403] = 353;\n  t[410] = 116;\n  t[437] = 117;\n  t[448] = 118;\n  t[449] = 119;\n  t[454] = 120;\n  t[455] = 121;\n  t[457] = 253;\n  t[460] = 122;\n  t[462] = 382;\n  t[463] = 380;\n  t[853] = 44;\n  t[855] = 58;\n  t[856] = 46;\n  t[876] = 47;\n  t[878] = 45;\n  t[882] = 45;\n  t[894] = 40;\n  t[895] = 41;\n  t[896] = 91;\n  t[897] = 93;\n  t[923] = 64;\n  t[1004] = 48;\n  t[1005] = 49;\n  t[1006] = 50;\n  t[1007] = 51;\n  t[1008] = 52;\n  t[1009] = 53;\n  t[1010] = 54;\n  t[1011] = 55;\n  t[1012] = 56;\n  t[1013] = 57;\n  t[1081] = 37;\n  t[1085] = 43;\n  t[1086] = 45;\n});\nexports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;\n\nfunction getStandardFontName(name) {\n  const fontName = (0, _fonts_utils.normalizeFontName)(name);\n  const stdFontMap = getStdFontMap();\n  return stdFontMap[fontName];\n}\n\n/***/ }),\n/* 42 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ToUnicodeMap = exports.IdentityToUnicodeMap = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass ToUnicodeMap {\n  constructor(cmap = []) {\n    this._map = cmap;\n  }\n\n  get length() {\n    return this._map.length;\n  }\n\n  forEach(callback) {\n    for (const charCode in this._map) {\n      callback(charCode, this._map[charCode].charCodeAt(0));\n    }\n  }\n\n  has(i) {\n    return this._map[i] !== undefined;\n  }\n\n  get(i) {\n    return this._map[i];\n  }\n\n  charCodeOf(value) {\n    const map = this._map;\n\n    if (map.length <= 0x10000) {\n      return map.indexOf(value);\n    }\n\n    for (const charCode in map) {\n      if (map[charCode] === value) {\n        return charCode | 0;\n      }\n    }\n\n    return -1;\n  }\n\n  amend(map) {\n    for (const charCode in map) {\n      this._map[charCode] = map[charCode];\n    }\n  }\n\n}\n\nexports.ToUnicodeMap = ToUnicodeMap;\n\nclass IdentityToUnicodeMap {\n  constructor(firstChar, lastChar) {\n    this.firstChar = firstChar;\n    this.lastChar = lastChar;\n  }\n\n  get length() {\n    return this.lastChar + 1 - this.firstChar;\n  }\n\n  forEach(callback) {\n    for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n      callback(i, i);\n    }\n  }\n\n  has(i) {\n    return this.firstChar <= i && i <= this.lastChar;\n  }\n\n  get(i) {\n    if (this.firstChar <= i && i <= this.lastChar) {\n      return String.fromCharCode(i);\n    }\n\n    return undefined;\n  }\n\n  charCodeOf(v) {\n    return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n  }\n\n  amend(map) {\n    (0, _util.unreachable)(\"Should not call amend()\");\n  }\n\n}\n\nexports.IdentityToUnicodeMap = IdentityToUnicodeMap;\n\n/***/ }),\n/* 43 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CFFFont = void 0;\n\nvar _cff_parser = __w_pdfjs_require__(35);\n\nvar _fonts_utils = __w_pdfjs_require__(38);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass CFFFont {\n  constructor(file, properties) {\n    this.properties = properties;\n    const parser = new _cff_parser.CFFParser(file, properties, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n    this.cff = parser.parse();\n    this.cff.duplicateFirstGlyph();\n    const compiler = new _cff_parser.CFFCompiler(this.cff);\n    this.seacs = this.cff.seacs;\n\n    try {\n      this.data = compiler.compile();\n    } catch (e) {\n      (0, _util.warn)(\"Failed to compile font \" + properties.loadedName);\n      this.data = file;\n    }\n\n    this._createBuiltInEncoding();\n  }\n\n  get numGlyphs() {\n    return this.cff.charStrings.count;\n  }\n\n  getCharset() {\n    return this.cff.charset.charset;\n  }\n\n  getGlyphMapping() {\n    const cff = this.cff;\n    const properties = this.properties;\n    const charsets = cff.charset.charset;\n    let charCodeToGlyphId;\n    let glyphId;\n\n    if (properties.composite) {\n      charCodeToGlyphId = Object.create(null);\n      let charCode;\n\n      if (cff.isCIDFont) {\n        for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n          const cid = charsets[glyphId];\n          charCode = properties.cMap.charCodeOf(cid);\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      } else {\n        for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n          charCode = properties.cMap.charCodeOf(glyphId);\n          charCodeToGlyphId[charCode] = glyphId;\n        }\n      }\n\n      return charCodeToGlyphId;\n    }\n\n    let encoding = cff.encoding ? cff.encoding.encoding : null;\n\n    if (properties.isInternalFont) {\n      encoding = properties.defaultEncoding;\n    }\n\n    charCodeToGlyphId = (0, _fonts_utils.type1FontGlyphMapping)(properties, encoding, charsets);\n    return charCodeToGlyphId;\n  }\n\n  hasGlyphId(id) {\n    return this.cff.hasGlyphId(id);\n  }\n\n  _createBuiltInEncoding() {\n    const {\n      charset,\n      encoding\n    } = this.cff;\n\n    if (!charset || !encoding) {\n      return;\n    }\n\n    const charsets = charset.charset,\n          encodings = encoding.encoding;\n    const map = [];\n\n    for (const charCode in encodings) {\n      const glyphId = encodings[charCode];\n\n      if (glyphId >= 0) {\n        const glyphName = charsets[glyphId];\n\n        if (glyphName) {\n          map[charCode] = glyphName;\n        }\n      }\n    }\n\n    if (map.length > 0) {\n      this.properties.builtInEncoding = map;\n    }\n  }\n\n}\n\nexports.CFFFont = CFFFont;\n\n/***/ }),\n/* 44 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FontRendererFactory = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _cff_parser = __w_pdfjs_require__(35);\n\nvar _glyphlist = __w_pdfjs_require__(39);\n\nvar _encodings = __w_pdfjs_require__(37);\n\nvar _stream = __w_pdfjs_require__(10);\n\nfunction getUint32(data, offset) {\n  return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction getUint16(data, offset) {\n  return data[offset] << 8 | data[offset + 1];\n}\n\nfunction getInt16(data, offset) {\n  return (data[offset] << 24 | data[offset + 1] << 16) >> 16;\n}\n\nfunction getInt8(data, offset) {\n  return data[offset] << 24 >> 24;\n}\n\nfunction getFloat214(data, offset) {\n  return getInt16(data, offset) / 16384;\n}\n\nfunction getSubroutineBias(subrs) {\n  const numSubrs = subrs.length;\n  let bias = 32768;\n\n  if (numSubrs < 1240) {\n    bias = 107;\n  } else if (numSubrs < 33900) {\n    bias = 1131;\n  }\n\n  return bias;\n}\n\nfunction parseCmap(data, start, end) {\n  const offset = getUint16(data, start + 2) === 1 ? getUint32(data, start + 8) : getUint32(data, start + 16);\n  const format = getUint16(data, start + offset);\n  let ranges, p, i;\n\n  if (format === 4) {\n    getUint16(data, start + offset + 2);\n    const segCount = getUint16(data, start + offset + 6) >> 1;\n    p = start + offset + 14;\n    ranges = [];\n\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i] = {\n        end: getUint16(data, p)\n      };\n    }\n\n    p += 2;\n\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i].start = getUint16(data, p);\n    }\n\n    for (i = 0; i < segCount; i++, p += 2) {\n      ranges[i].idDelta = getUint16(data, p);\n    }\n\n    for (i = 0; i < segCount; i++, p += 2) {\n      let idOffset = getUint16(data, p);\n\n      if (idOffset === 0) {\n        continue;\n      }\n\n      ranges[i].ids = [];\n\n      for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n        ranges[i].ids[j] = getUint16(data, p + idOffset);\n        idOffset += 2;\n      }\n    }\n\n    return ranges;\n  } else if (format === 12) {\n    const groups = getUint32(data, start + offset + 12);\n    p = start + offset + 16;\n    ranges = [];\n\n    for (i = 0; i < groups; i++) {\n      start = getUint32(data, p);\n      ranges.push({\n        start,\n        end: getUint32(data, p + 4),\n        idDelta: getUint32(data, p + 8) - start\n      });\n      p += 12;\n    }\n\n    return ranges;\n  }\n\n  throw new _util.FormatError(`unsupported cmap: ${format}`);\n}\n\nfunction parseCff(data, start, end, seacAnalysisEnabled) {\n  const properties = {};\n  const parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n  const cff = parser.parse();\n  return {\n    glyphs: cff.charStrings.objects,\n    subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects,\n    gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n    isCFFCIDFont: cff.isCIDFont,\n    fdSelect: cff.fdSelect,\n    fdArray: cff.fdArray\n  };\n}\n\nfunction parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n  let itemSize, itemDecode;\n\n  if (isGlyphLocationsLong) {\n    itemSize = 4;\n    itemDecode = getUint32;\n  } else {\n    itemSize = 2;\n\n    itemDecode = (data, offset) => 2 * getUint16(data, offset);\n  }\n\n  const glyphs = [];\n  let startOffset = itemDecode(loca, 0);\n\n  for (let j = itemSize; j < loca.length; j += itemSize) {\n    const endOffset = itemDecode(loca, j);\n    glyphs.push(glyf.subarray(startOffset, endOffset));\n    startOffset = endOffset;\n  }\n\n  return glyphs;\n}\n\nfunction lookupCmap(ranges, unicode) {\n  const code = unicode.codePointAt(0);\n  let gid = 0,\n      l = 0,\n      r = ranges.length - 1;\n\n  while (l < r) {\n    const c = l + r + 1 >> 1;\n\n    if (code < ranges[c].start) {\n      r = c - 1;\n    } else {\n      l = c;\n    }\n  }\n\n  if (ranges[l].start <= code && code <= ranges[l].end) {\n    gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xffff;\n  }\n\n  return {\n    charCode: code,\n    glyphId: gid\n  };\n}\n\nfunction compileGlyf(code, cmds, font) {\n  function moveTo(x, y) {\n    cmds.push({\n      cmd: \"moveTo\",\n      args: [x, y]\n    });\n  }\n\n  function lineTo(x, y) {\n    cmds.push({\n      cmd: \"lineTo\",\n      args: [x, y]\n    });\n  }\n\n  function quadraticCurveTo(xa, ya, x, y) {\n    cmds.push({\n      cmd: \"quadraticCurveTo\",\n      args: [xa, ya, x, y]\n    });\n  }\n\n  let i = 0;\n  const numberOfContours = getInt16(code, i);\n  let flags;\n  let x = 0,\n      y = 0;\n  i += 10;\n\n  if (numberOfContours < 0) {\n    do {\n      flags = getUint16(code, i);\n      const glyphIndex = getUint16(code, i + 2);\n      i += 4;\n      let arg1, arg2;\n\n      if (flags & 0x01) {\n        if (flags & 0x02) {\n          arg1 = getInt16(code, i);\n          arg2 = getInt16(code, i + 2);\n        } else {\n          arg1 = getUint16(code, i);\n          arg2 = getUint16(code, i + 2);\n        }\n\n        i += 4;\n      } else {\n        if (flags & 0x02) {\n          arg1 = getInt8(code, i++);\n          arg2 = getInt8(code, i++);\n        } else {\n          arg1 = code[i++];\n          arg2 = code[i++];\n        }\n      }\n\n      if (flags & 0x02) {\n        x = arg1;\n        y = arg2;\n      } else {\n        x = 0;\n        y = 0;\n      }\n\n      let scaleX = 1,\n          scaleY = 1,\n          scale01 = 0,\n          scale10 = 0;\n\n      if (flags & 0x08) {\n        scaleX = scaleY = getFloat214(code, i);\n        i += 2;\n      } else if (flags & 0x40) {\n        scaleX = getFloat214(code, i);\n        scaleY = getFloat214(code, i + 2);\n        i += 4;\n      } else if (flags & 0x80) {\n        scaleX = getFloat214(code, i);\n        scale01 = getFloat214(code, i + 2);\n        scale10 = getFloat214(code, i + 4);\n        scaleY = getFloat214(code, i + 6);\n        i += 8;\n      }\n\n      const subglyph = font.glyphs[glyphIndex];\n\n      if (subglyph) {\n        cmds.push({\n          cmd: \"save\"\n        }, {\n          cmd: \"transform\",\n          args: [scaleX, scale01, scale10, scaleY, x, y]\n        });\n\n        if (!(flags & 0x02)) {}\n\n        compileGlyf(subglyph, cmds, font);\n        cmds.push({\n          cmd: \"restore\"\n        });\n      }\n    } while (flags & 0x20);\n  } else {\n    const endPtsOfContours = [];\n    let j, jj;\n\n    for (j = 0; j < numberOfContours; j++) {\n      endPtsOfContours.push(getUint16(code, i));\n      i += 2;\n    }\n\n    const instructionLength = getUint16(code, i);\n    i += 2 + instructionLength;\n    const numberOfPoints = endPtsOfContours.at(-1) + 1;\n    const points = [];\n\n    while (points.length < numberOfPoints) {\n      flags = code[i++];\n      let repeat = 1;\n\n      if (flags & 0x08) {\n        repeat += code[i++];\n      }\n\n      while (repeat-- > 0) {\n        points.push({\n          flags\n        });\n      }\n    }\n\n    for (j = 0; j < numberOfPoints; j++) {\n      switch (points[j].flags & 0x12) {\n        case 0x00:\n          x += getInt16(code, i);\n          i += 2;\n          break;\n\n        case 0x02:\n          x -= code[i++];\n          break;\n\n        case 0x12:\n          x += code[i++];\n          break;\n      }\n\n      points[j].x = x;\n    }\n\n    for (j = 0; j < numberOfPoints; j++) {\n      switch (points[j].flags & 0x24) {\n        case 0x00:\n          y += getInt16(code, i);\n          i += 2;\n          break;\n\n        case 0x04:\n          y -= code[i++];\n          break;\n\n        case 0x24:\n          y += code[i++];\n          break;\n      }\n\n      points[j].y = y;\n    }\n\n    let startPoint = 0;\n\n    for (i = 0; i < numberOfContours; i++) {\n      const endPoint = endPtsOfContours[i];\n      const contour = points.slice(startPoint, endPoint + 1);\n\n      if (contour[0].flags & 1) {\n        contour.push(contour[0]);\n      } else if (contour.at(-1).flags & 1) {\n        contour.unshift(contour.at(-1));\n      } else {\n        const p = {\n          flags: 1,\n          x: (contour[0].x + contour.at(-1).x) / 2,\n          y: (contour[0].y + contour.at(-1).y) / 2\n        };\n        contour.unshift(p);\n        contour.push(p);\n      }\n\n      moveTo(contour[0].x, contour[0].y);\n\n      for (j = 1, jj = contour.length; j < jj; j++) {\n        if (contour[j].flags & 1) {\n          lineTo(contour[j].x, contour[j].y);\n        } else if (contour[j + 1].flags & 1) {\n          quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n          j++;\n        } else {\n          quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);\n        }\n      }\n\n      startPoint = endPoint + 1;\n    }\n  }\n}\n\nfunction compileCharString(charStringCode, cmds, font, glyphId) {\n  function moveTo(x, y) {\n    cmds.push({\n      cmd: \"moveTo\",\n      args: [x, y]\n    });\n  }\n\n  function lineTo(x, y) {\n    cmds.push({\n      cmd: \"lineTo\",\n      args: [x, y]\n    });\n  }\n\n  function bezierCurveTo(x1, y1, x2, y2, x, y) {\n    cmds.push({\n      cmd: \"bezierCurveTo\",\n      args: [x1, y1, x2, y2, x, y]\n    });\n  }\n\n  const stack = [];\n  let x = 0,\n      y = 0;\n  let stems = 0;\n\n  function parse(code) {\n    let i = 0;\n\n    while (i < code.length) {\n      let stackClean = false;\n      let v = code[i++];\n      let xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n\n      switch (v) {\n        case 1:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n\n        case 3:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n\n        case 4:\n          y += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n\n        case 5:\n          while (stack.length > 0) {\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n          }\n\n          break;\n\n        case 6:\n          while (stack.length > 0) {\n            x += stack.shift();\n            lineTo(x, y);\n\n            if (stack.length === 0) {\n              break;\n            }\n\n            y += stack.shift();\n            lineTo(x, y);\n          }\n\n          break;\n\n        case 7:\n          while (stack.length > 0) {\n            y += stack.shift();\n            lineTo(x, y);\n\n            if (stack.length === 0) {\n              break;\n            }\n\n            x += stack.shift();\n            lineTo(x, y);\n          }\n\n          break;\n\n        case 8:\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        case 10:\n          n = stack.pop();\n          subrCode = null;\n\n          if (font.isCFFCIDFont) {\n            const fdIndex = font.fdSelect.getFDIndex(glyphId);\n\n            if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n              const fontDict = font.fdArray[fdIndex];\n              let subrs;\n\n              if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n                subrs = fontDict.privateDict.subrsIndex.objects;\n              }\n\n              if (subrs) {\n                n += getSubroutineBias(subrs);\n                subrCode = subrs[n];\n              }\n            } else {\n              (0, _util.warn)(\"Invalid fd index for glyph index.\");\n            }\n          } else {\n            subrCode = font.subrs[n + font.subrsBias];\n          }\n\n          if (subrCode) {\n            parse(subrCode);\n          }\n\n          break;\n\n        case 11:\n          return;\n\n        case 12:\n          v = code[i++];\n\n          switch (v) {\n            case 34:\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              y1 = y + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y, xb, y1, x, y1);\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y1, xb, y, x, y);\n              break;\n\n            case 35:\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              stack.pop();\n              break;\n\n            case 36:\n              xa = x + stack.shift();\n              y1 = y + stack.shift();\n              xb = xa + stack.shift();\n              y2 = y1 + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y1, xb, y2, x, y2);\n              xa = x + stack.shift();\n              xb = xa + stack.shift();\n              y3 = y2 + stack.shift();\n              x = xb + stack.shift();\n              bezierCurveTo(xa, y2, xb, y3, x, y);\n              break;\n\n            case 37:\n              const x0 = x,\n                    y0 = y;\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb;\n              y = yb;\n\n              if (Math.abs(x - x0) > Math.abs(y - y0)) {\n                x += stack.shift();\n              } else {\n                y += stack.shift();\n              }\n\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n              break;\n\n            default:\n              throw new _util.FormatError(`unknown operator: 12 ${v}`);\n          }\n\n          break;\n\n        case 14:\n          if (stack.length >= 4) {\n            const achar = stack.pop();\n            const bchar = stack.pop();\n            y = stack.pop();\n            x = stack.pop();\n            cmds.push({\n              cmd: \"save\"\n            }, {\n              cmd: \"translate\",\n              args: [x, y]\n            });\n            let cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n            compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n            cmds.push({\n              cmd: \"restore\"\n            });\n            cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n            compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n          }\n\n          return;\n\n        case 18:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n\n        case 19:\n          stems += stack.length >> 1;\n          i += stems + 7 >> 3;\n          stackClean = true;\n          break;\n\n        case 20:\n          stems += stack.length >> 1;\n          i += stems + 7 >> 3;\n          stackClean = true;\n          break;\n\n        case 21:\n          y += stack.pop();\n          x += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n\n        case 22:\n          x += stack.pop();\n          moveTo(x, y);\n          stackClean = true;\n          break;\n\n        case 23:\n          stems += stack.length >> 1;\n          stackClean = true;\n          break;\n\n        case 24:\n          while (stack.length > 2) {\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          x += stack.shift();\n          y += stack.shift();\n          lineTo(x, y);\n          break;\n\n        case 25:\n          while (stack.length > 6) {\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n          }\n\n          xa = x + stack.shift();\n          ya = y + stack.shift();\n          xb = xa + stack.shift();\n          yb = ya + stack.shift();\n          x = xb + stack.shift();\n          y = yb + stack.shift();\n          bezierCurveTo(xa, ya, xb, yb, x, y);\n          break;\n\n        case 26:\n          if (stack.length % 2) {\n            x += stack.shift();\n          }\n\n          while (stack.length > 0) {\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb;\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        case 27:\n          if (stack.length % 2) {\n            y += stack.shift();\n          }\n\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb;\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        case 28:\n          stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n          i += 2;\n          break;\n\n        case 29:\n          n = stack.pop() + font.gsubrsBias;\n          subrCode = font.gsubrs[n];\n\n          if (subrCode) {\n            parse(subrCode);\n          }\n\n          break;\n\n        case 30:\n          while (stack.length > 0) {\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n\n            if (stack.length === 0) {\n              break;\n            }\n\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            y = yb + stack.shift();\n            x = xb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        case 31:\n          while (stack.length > 0) {\n            xa = x + stack.shift();\n            ya = y;\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            y = yb + stack.shift();\n            x = xb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n\n            if (stack.length === 0) {\n              break;\n            }\n\n            xa = x;\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + (stack.length === 1 ? stack.shift() : 0);\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n          }\n\n          break;\n\n        default:\n          if (v < 32) {\n            throw new _util.FormatError(`unknown operator: ${v}`);\n          }\n\n          if (v < 247) {\n            stack.push(v - 139);\n          } else if (v < 251) {\n            stack.push((v - 247) * 256 + code[i++] + 108);\n          } else if (v < 255) {\n            stack.push(-(v - 251) * 256 - code[i++] - 108);\n          } else {\n            stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n            i += 4;\n          }\n\n          break;\n      }\n\n      if (stackClean) {\n        stack.length = 0;\n      }\n    }\n  }\n\n  parse(charStringCode);\n}\n\nconst NOOP = [];\n\nclass CompiledFont {\n  constructor(fontMatrix) {\n    if (this.constructor === CompiledFont) {\n      (0, _util.unreachable)(\"Cannot initialize CompiledFont.\");\n    }\n\n    this.fontMatrix = fontMatrix;\n    this.compiledGlyphs = Object.create(null);\n    this.compiledCharCodeToGlyphId = Object.create(null);\n  }\n\n  getPathJs(unicode) {\n    const {\n      charCode,\n      glyphId\n    } = lookupCmap(this.cmap, unicode);\n    let fn = this.compiledGlyphs[glyphId];\n\n    if (!fn) {\n      try {\n        fn = this.compileGlyph(this.glyphs[glyphId], glyphId);\n        this.compiledGlyphs[glyphId] = fn;\n      } catch (ex) {\n        this.compiledGlyphs[glyphId] = NOOP;\n\n        if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n          this.compiledCharCodeToGlyphId[charCode] = glyphId;\n        }\n\n        throw ex;\n      }\n    }\n\n    if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n      this.compiledCharCodeToGlyphId[charCode] = glyphId;\n    }\n\n    return fn;\n  }\n\n  compileGlyph(code, glyphId) {\n    if (!code || code.length === 0 || code[0] === 14) {\n      return NOOP;\n    }\n\n    let fontMatrix = this.fontMatrix;\n\n    if (this.isCFFCIDFont) {\n      const fdIndex = this.fdSelect.getFDIndex(glyphId);\n\n      if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n        const fontDict = this.fdArray[fdIndex];\n        fontMatrix = fontDict.getByName(\"FontMatrix\") || _util.FONT_IDENTITY_MATRIX;\n      } else {\n        (0, _util.warn)(\"Invalid fd index for glyph index.\");\n      }\n    }\n\n    const cmds = [{\n      cmd: \"save\"\n    }, {\n      cmd: \"transform\",\n      args: fontMatrix.slice()\n    }, {\n      cmd: \"scale\",\n      args: [\"size\", \"-size\"]\n    }];\n    this.compileGlyphImpl(code, cmds, glyphId);\n    cmds.push({\n      cmd: \"restore\"\n    });\n    return cmds;\n  }\n\n  compileGlyphImpl() {\n    (0, _util.unreachable)(\"Children classes should implement this.\");\n  }\n\n  hasBuiltPath(unicode) {\n    const {\n      charCode,\n      glyphId\n    } = lookupCmap(this.cmap, unicode);\n    return this.compiledGlyphs[glyphId] !== undefined && this.compiledCharCodeToGlyphId[charCode] !== undefined;\n  }\n\n}\n\nclass TrueTypeCompiled extends CompiledFont {\n  constructor(glyphs, cmap, fontMatrix) {\n    super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n    this.glyphs = glyphs;\n    this.cmap = cmap;\n  }\n\n  compileGlyphImpl(code, cmds) {\n    compileGlyf(code, cmds, this);\n  }\n\n}\n\nclass Type2Compiled extends CompiledFont {\n  constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n    super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n    this.glyphs = cffInfo.glyphs;\n    this.gsubrs = cffInfo.gsubrs || [];\n    this.subrs = cffInfo.subrs || [];\n    this.cmap = cmap;\n    this.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n    this.gsubrsBias = getSubroutineBias(this.gsubrs);\n    this.subrsBias = getSubroutineBias(this.subrs);\n    this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n    this.fdSelect = cffInfo.fdSelect;\n    this.fdArray = cffInfo.fdArray;\n  }\n\n  compileGlyphImpl(code, cmds, glyphId) {\n    compileCharString(code, cmds, this, glyphId);\n  }\n\n}\n\nclass FontRendererFactory {\n  static create(font, seacAnalysisEnabled) {\n    const data = new Uint8Array(font.data);\n    let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n    const numTables = getUint16(data, 4);\n\n    for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n      const tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n      const offset = getUint32(data, p + 8);\n      const length = getUint32(data, p + 12);\n\n      switch (tag) {\n        case \"cmap\":\n          cmap = parseCmap(data, offset, offset + length);\n          break;\n\n        case \"glyf\":\n          glyf = data.subarray(offset, offset + length);\n          break;\n\n        case \"loca\":\n          loca = data.subarray(offset, offset + length);\n          break;\n\n        case \"head\":\n          unitsPerEm = getUint16(data, offset + 18);\n          indexToLocFormat = getUint16(data, offset + 50);\n          break;\n\n        case \"CFF \":\n          cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n          break;\n      }\n    }\n\n    if (glyf) {\n      const fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n      return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n    }\n\n    return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n  }\n\n}\n\nexports.FontRendererFactory = FontRendererFactory;\n\n/***/ }),\n/* 45 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getMetrics = exports.getFontBasicMetrics = void 0;\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nconst getMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Courier = 600;\n  t[\"Courier-Bold\"] = 600;\n  t[\"Courier-BoldOblique\"] = 600;\n  t[\"Courier-Oblique\"] = 600;\n  t.Helvetica = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t[\"Helvetica-Bold\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t[\"Helvetica-BoldOblique\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.exclam = 333;\n    t.quotedbl = 474;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 722;\n    t.quoteright = 278;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 611;\n    t.at = 975;\n    t.A = 722;\n    t.B = 722;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 556;\n    t.K = 722;\n    t.L = 611;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 584;\n    t.underscore = 556;\n    t.quoteleft = 278;\n    t.a = 556;\n    t.b = 611;\n    t.c = 556;\n    t.d = 611;\n    t.e = 556;\n    t.f = 333;\n    t.g = 611;\n    t.h = 611;\n    t.i = 278;\n    t.j = 278;\n    t.k = 556;\n    t.l = 278;\n    t.m = 889;\n    t.n = 611;\n    t.o = 611;\n    t.p = 611;\n    t.q = 611;\n    t.r = 389;\n    t.s = 556;\n    t.t = 333;\n    t.u = 611;\n    t.v = 556;\n    t.w = 778;\n    t.x = 556;\n    t.y = 556;\n    t.z = 500;\n    t.braceleft = 389;\n    t.bar = 280;\n    t.braceright = 389;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 238;\n    t.quotedblleft = 500;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 611;\n    t.fl = 611;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 556;\n    t.bullet = 350;\n    t.quotesinglbase = 278;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 611;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 611;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 722;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 556;\n    t.scommaaccent = 556;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 611;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 556;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 556;\n    t.scedilla = 556;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 611;\n    t.acircumflex = 556;\n    t.Amacron = 722;\n    t.rcaron = 389;\n    t.ccedilla = 556;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 743;\n    t.Umacron = 722;\n    t.uring = 611;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 584;\n    t.uacute = 611;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 556;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 556;\n    t.nacute = 611;\n    t.umacron = 611;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 280;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 611;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 389;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 611;\n    t.amacron = 556;\n    t.sacute = 556;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 611;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 611;\n    t.igrave = 278;\n    t.ohungarumlaut = 611;\n    t.Eogonek = 667;\n    t.dcroat = 611;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 400;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 611;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 611;\n    t.ntilde = 611;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 611;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 611;\n    t.Ccaron = 722;\n    t.ugrave = 611;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 611;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 556;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 611;\n    t.tcommaaccent = 333;\n    t.logicalnot = 584;\n    t.odieresis = 611;\n    t.udieresis = 611;\n    t.notequal = 549;\n    t.gcommaaccent = 611;\n    t.eth = 611;\n    t.zcaron = 500;\n    t.ncommaaccent = 611;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t[\"Helvetica-Oblique\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.exclam = 278;\n    t.quotedbl = 355;\n    t.numbersign = 556;\n    t.dollar = 556;\n    t.percent = 889;\n    t.ampersand = 667;\n    t.quoteright = 222;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 389;\n    t.plus = 584;\n    t.comma = 278;\n    t.hyphen = 333;\n    t.period = 278;\n    t.slash = 278;\n    t.zero = 556;\n    t.one = 556;\n    t.two = 556;\n    t.three = 556;\n    t.four = 556;\n    t.five = 556;\n    t.six = 556;\n    t.seven = 556;\n    t.eight = 556;\n    t.nine = 556;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 584;\n    t.equal = 584;\n    t.greater = 584;\n    t.question = 556;\n    t.at = 1015;\n    t.A = 667;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 722;\n    t.I = 278;\n    t.J = 500;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 722;\n    t.O = 778;\n    t.P = 667;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 667;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 944;\n    t.X = 667;\n    t.Y = 667;\n    t.Z = 611;\n    t.bracketleft = 278;\n    t.backslash = 278;\n    t.bracketright = 278;\n    t.asciicircum = 469;\n    t.underscore = 556;\n    t.quoteleft = 222;\n    t.a = 556;\n    t.b = 556;\n    t.c = 500;\n    t.d = 556;\n    t.e = 556;\n    t.f = 278;\n    t.g = 556;\n    t.h = 556;\n    t.i = 222;\n    t.j = 222;\n    t.k = 500;\n    t.l = 222;\n    t.m = 833;\n    t.n = 556;\n    t.o = 556;\n    t.p = 556;\n    t.q = 556;\n    t.r = 333;\n    t.s = 500;\n    t.t = 278;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 500;\n    t.braceleft = 334;\n    t.bar = 260;\n    t.braceright = 334;\n    t.asciitilde = 584;\n    t.exclamdown = 333;\n    t.cent = 556;\n    t.sterling = 556;\n    t.fraction = 167;\n    t.yen = 556;\n    t.florin = 556;\n    t.section = 556;\n    t.currency = 556;\n    t.quotesingle = 191;\n    t.quotedblleft = 333;\n    t.guillemotleft = 556;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 556;\n    t.dagger = 556;\n    t.daggerdbl = 556;\n    t.periodcentered = 278;\n    t.paragraph = 537;\n    t.bullet = 350;\n    t.quotesinglbase = 222;\n    t.quotedblbase = 333;\n    t.quotedblright = 333;\n    t.guillemotright = 556;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 611;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 370;\n    t.Lslash = 556;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 365;\n    t.ae = 889;\n    t.dotlessi = 278;\n    t.lslash = 222;\n    t.oslash = 611;\n    t.oe = 944;\n    t.germandbls = 611;\n    t.Idieresis = 278;\n    t.eacute = 556;\n    t.abreve = 556;\n    t.uhungarumlaut = 556;\n    t.ecaron = 556;\n    t.Ydieresis = 667;\n    t.divide = 584;\n    t.Yacute = 667;\n    t.Acircumflex = 667;\n    t.aacute = 556;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 500;\n    t.ecircumflex = 556;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 556;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 737;\n    t.Emacron = 667;\n    t.ccaron = 500;\n    t.aring = 556;\n    t.Ncommaaccent = 722;\n    t.lacute = 222;\n    t.agrave = 556;\n    t.Tcommaaccent = 611;\n    t.Cacute = 722;\n    t.atilde = 556;\n    t.Edotaccent = 667;\n    t.scaron = 500;\n    t.scedilla = 500;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 556;\n    t.Amacron = 667;\n    t.rcaron = 333;\n    t.ccedilla = 500;\n    t.Zdotaccent = 611;\n    t.Thorn = 667;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 667;\n    t.dcaron = 643;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 333;\n    t.Ograve = 778;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 584;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 556;\n    t.edieresis = 556;\n    t.cacute = 500;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 278;\n    t.plusminus = 584;\n    t.brokenbar = 260;\n    t.registered = 737;\n    t.Gbreve = 778;\n    t.Idotaccent = 278;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 333;\n    t.omacron = 556;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 222;\n    t.tcaron = 317;\n    t.eogonek = 556;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 556;\n    t.zacute = 500;\n    t.iogonek = 222;\n    t.Oacute = 778;\n    t.oacute = 556;\n    t.amacron = 556;\n    t.sacute = 500;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 333;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 556;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 834;\n    t.Scedilla = 667;\n    t.lcaron = 299;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 1000;\n    t.edotaccent = 556;\n    t.Igrave = 278;\n    t.Imacron = 278;\n    t.Lcaron = 556;\n    t.onehalf = 834;\n    t.lessequal = 549;\n    t.ocircumflex = 556;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 556;\n    t.gbreve = 556;\n    t.onequarter = 834;\n    t.Scaron = 667;\n    t.Scommaaccent = 667;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 556;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 556;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 556;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 778;\n    t.zdotaccent = 500;\n    t.Ecaron = 667;\n    t.Iogonek = 278;\n    t.kcommaaccent = 500;\n    t.minus = 584;\n    t.Icircumflex = 278;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 584;\n    t.odieresis = 556;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 556;\n    t.eth = 556;\n    t.zcaron = 500;\n    t.ncommaaccent = 556;\n    t.onesuperior = 333;\n    t.imacron = 278;\n    t.Euro = 556;\n  });\n  t.Symbol = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.universal = 713;\n    t.numbersign = 500;\n    t.existential = 549;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.suchthat = 439;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asteriskmath = 500;\n    t.plus = 549;\n    t.comma = 250;\n    t.minus = 549;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 549;\n    t.equal = 549;\n    t.greater = 549;\n    t.question = 444;\n    t.congruent = 549;\n    t.Alpha = 722;\n    t.Beta = 667;\n    t.Chi = 722;\n    t.Delta = 612;\n    t.Epsilon = 611;\n    t.Phi = 763;\n    t.Gamma = 603;\n    t.Eta = 722;\n    t.Iota = 333;\n    t.theta1 = 631;\n    t.Kappa = 722;\n    t.Lambda = 686;\n    t.Mu = 889;\n    t.Nu = 722;\n    t.Omicron = 722;\n    t.Pi = 768;\n    t.Theta = 741;\n    t.Rho = 556;\n    t.Sigma = 592;\n    t.Tau = 611;\n    t.Upsilon = 690;\n    t.sigma1 = 439;\n    t.Omega = 768;\n    t.Xi = 645;\n    t.Psi = 795;\n    t.Zeta = 611;\n    t.bracketleft = 333;\n    t.therefore = 863;\n    t.bracketright = 333;\n    t.perpendicular = 658;\n    t.underscore = 500;\n    t.radicalex = 500;\n    t.alpha = 631;\n    t.beta = 549;\n    t.chi = 549;\n    t.delta = 494;\n    t.epsilon = 439;\n    t.phi = 521;\n    t.gamma = 411;\n    t.eta = 603;\n    t.iota = 329;\n    t.phi1 = 603;\n    t.kappa = 549;\n    t.lambda = 549;\n    t.mu = 576;\n    t.nu = 521;\n    t.omicron = 549;\n    t.pi = 549;\n    t.theta = 521;\n    t.rho = 549;\n    t.sigma = 603;\n    t.tau = 439;\n    t.upsilon = 576;\n    t.omega1 = 713;\n    t.omega = 686;\n    t.xi = 493;\n    t.psi = 686;\n    t.zeta = 494;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.similar = 549;\n    t.Euro = 750;\n    t.Upsilon1 = 620;\n    t.minute = 247;\n    t.lessequal = 549;\n    t.fraction = 167;\n    t.infinity = 713;\n    t.florin = 500;\n    t.club = 753;\n    t.diamond = 753;\n    t.heart = 753;\n    t.spade = 753;\n    t.arrowboth = 1042;\n    t.arrowleft = 987;\n    t.arrowup = 603;\n    t.arrowright = 987;\n    t.arrowdown = 603;\n    t.degree = 400;\n    t.plusminus = 549;\n    t.second = 411;\n    t.greaterequal = 549;\n    t.multiply = 549;\n    t.proportional = 713;\n    t.partialdiff = 494;\n    t.bullet = 460;\n    t.divide = 549;\n    t.notequal = 549;\n    t.equivalence = 549;\n    t.approxequal = 549;\n    t.ellipsis = 1000;\n    t.arrowvertex = 603;\n    t.arrowhorizex = 1000;\n    t.carriagereturn = 658;\n    t.aleph = 823;\n    t.Ifraktur = 686;\n    t.Rfraktur = 795;\n    t.weierstrass = 987;\n    t.circlemultiply = 768;\n    t.circleplus = 768;\n    t.emptyset = 823;\n    t.intersection = 768;\n    t.union = 768;\n    t.propersuperset = 713;\n    t.reflexsuperset = 713;\n    t.notsubset = 713;\n    t.propersubset = 713;\n    t.reflexsubset = 713;\n    t.element = 713;\n    t.notelement = 713;\n    t.angle = 768;\n    t.gradient = 713;\n    t.registerserif = 790;\n    t.copyrightserif = 790;\n    t.trademarkserif = 890;\n    t.product = 823;\n    t.radical = 549;\n    t.dotmath = 250;\n    t.logicalnot = 713;\n    t.logicaland = 603;\n    t.logicalor = 603;\n    t.arrowdblboth = 1042;\n    t.arrowdblleft = 987;\n    t.arrowdblup = 603;\n    t.arrowdblright = 987;\n    t.arrowdbldown = 603;\n    t.lozenge = 494;\n    t.angleleft = 329;\n    t.registersans = 790;\n    t.copyrightsans = 790;\n    t.trademarksans = 786;\n    t.summation = 713;\n    t.parenlefttp = 384;\n    t.parenleftex = 384;\n    t.parenleftbt = 384;\n    t.bracketlefttp = 384;\n    t.bracketleftex = 384;\n    t.bracketleftbt = 384;\n    t.bracelefttp = 494;\n    t.braceleftmid = 494;\n    t.braceleftbt = 494;\n    t.braceex = 494;\n    t.angleright = 329;\n    t.integral = 274;\n    t.integraltp = 686;\n    t.integralex = 686;\n    t.integralbt = 686;\n    t.parenrighttp = 384;\n    t.parenrightex = 384;\n    t.parenrightbt = 384;\n    t.bracketrighttp = 384;\n    t.bracketrightex = 384;\n    t.bracketrightbt = 384;\n    t.bracerighttp = 494;\n    t.bracerightmid = 494;\n    t.bracerightbt = 494;\n    t.apple = 790;\n  });\n  t[\"Times-Roman\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 408;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 564;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 278;\n    t.semicolon = 278;\n    t.less = 564;\n    t.equal = 564;\n    t.greater = 564;\n    t.question = 444;\n    t.at = 921;\n    t.A = 722;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 556;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 389;\n    t.K = 722;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 556;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 722;\n    t.W = 944;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 469;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 444;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 333;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 480;\n    t.bar = 200;\n    t.braceright = 480;\n    t.asciitilde = 541;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 180;\n    t.quotedblleft = 444;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 453;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 444;\n    t.quotedblright = 444;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 444;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 889;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 444;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 564;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 444;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 444;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 444;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 444;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 444;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 444;\n    t.Amacron = 722;\n    t.rcaron = 333;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 556;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 588;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 564;\n    t.uacute = 500;\n    t.Tcaron = 611;\n    t.partialdiff = 476;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 444;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 722;\n    t.Iacute = 333;\n    t.plusminus = 564;\n    t.brokenbar = 200;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 333;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 326;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 444;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 344;\n    t.Kcommaaccent = 722;\n    t.Lacute = 611;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 333;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 722;\n    t.zdotaccent = 444;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 500;\n    t.minus = 564;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 564;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t[\"Times-Bold\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 1000;\n    t.ampersand = 833;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 930;\n    t.A = 722;\n    t.B = 667;\n    t.C = 722;\n    t.D = 722;\n    t.E = 667;\n    t.F = 611;\n    t.G = 778;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 778;\n    t.L = 667;\n    t.M = 944;\n    t.N = 722;\n    t.O = 778;\n    t.P = 611;\n    t.Q = 778;\n    t.R = 722;\n    t.S = 556;\n    t.T = 667;\n    t.U = 722;\n    t.V = 722;\n    t.W = 1000;\n    t.X = 722;\n    t.Y = 722;\n    t.Z = 667;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 581;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 556;\n    t.c = 444;\n    t.d = 556;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 333;\n    t.k = 556;\n    t.l = 278;\n    t.m = 833;\n    t.n = 556;\n    t.o = 500;\n    t.p = 556;\n    t.q = 556;\n    t.r = 444;\n    t.s = 389;\n    t.t = 333;\n    t.u = 556;\n    t.v = 500;\n    t.w = 722;\n    t.x = 500;\n    t.y = 500;\n    t.z = 444;\n    t.braceleft = 394;\n    t.bar = 220;\n    t.braceright = 394;\n    t.asciitilde = 520;\n    t.exclamdown = 333;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 540;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 1000;\n    t.ordfeminine = 300;\n    t.Lslash = 667;\n    t.Oslash = 778;\n    t.OE = 1000;\n    t.ordmasculine = 330;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 556;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 722;\n    t.divide = 570;\n    t.Yacute = 722;\n    t.Acircumflex = 722;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 500;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 667;\n    t.Cacute = 722;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 722;\n    t.Gcommaaccent = 778;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 722;\n    t.rcaron = 444;\n    t.ccedilla = 444;\n    t.Zdotaccent = 667;\n    t.Thorn = 611;\n    t.Omacron = 778;\n    t.Racute = 722;\n    t.Sacute = 556;\n    t.dcaron = 672;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 778;\n    t.Agrave = 722;\n    t.Abreve = 722;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 667;\n    t.partialdiff = 494;\n    t.ydieresis = 500;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 778;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 444;\n    t.omacron = 500;\n    t.Zacute = 667;\n    t.Zcaron = 667;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 722;\n    t.lcommaaccent = 278;\n    t.tcaron = 416;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 722;\n    t.Adieresis = 722;\n    t.egrave = 444;\n    t.zacute = 444;\n    t.iogonek = 278;\n    t.Oacute = 778;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 778;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 556;\n    t.twosuperior = 300;\n    t.Odieresis = 778;\n    t.mu = 556;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 556;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 394;\n    t.Kcommaaccent = 778;\n    t.Lacute = 667;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 667;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 778;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 722;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 444;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 722;\n    t.Lcommaaccent = 667;\n    t.Atilde = 722;\n    t.Aogonek = 722;\n    t.Aring = 722;\n    t.Otilde = 778;\n    t.zdotaccent = 444;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 556;\n    t.minus = 570;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 333;\n    t.logicalnot = 570;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 444;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t[\"Times-BoldItalic\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 389;\n    t.quotedbl = 555;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 570;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 570;\n    t.equal = 570;\n    t.greater = 570;\n    t.question = 500;\n    t.at = 832;\n    t.A = 667;\n    t.B = 667;\n    t.C = 667;\n    t.D = 722;\n    t.E = 667;\n    t.F = 667;\n    t.G = 722;\n    t.H = 778;\n    t.I = 389;\n    t.J = 500;\n    t.K = 667;\n    t.L = 611;\n    t.M = 889;\n    t.N = 722;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 667;\n    t.S = 556;\n    t.T = 611;\n    t.U = 722;\n    t.V = 667;\n    t.W = 889;\n    t.X = 667;\n    t.Y = 611;\n    t.Z = 611;\n    t.bracketleft = 333;\n    t.backslash = 278;\n    t.bracketright = 333;\n    t.asciicircum = 570;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 333;\n    t.g = 500;\n    t.h = 556;\n    t.i = 278;\n    t.j = 278;\n    t.k = 500;\n    t.l = 278;\n    t.m = 778;\n    t.n = 556;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 556;\n    t.v = 444;\n    t.w = 667;\n    t.x = 500;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 348;\n    t.bar = 220;\n    t.braceright = 348;\n    t.asciitilde = 570;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 278;\n    t.quotedblleft = 500;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 556;\n    t.fl = 556;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 500;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 500;\n    t.quotedblright = 500;\n    t.guillemotright = 500;\n    t.ellipsis = 1000;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 1000;\n    t.AE = 944;\n    t.ordfeminine = 266;\n    t.Lslash = 611;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 300;\n    t.ae = 722;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 722;\n    t.germandbls = 500;\n    t.Idieresis = 389;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 556;\n    t.ecaron = 444;\n    t.Ydieresis = 611;\n    t.divide = 570;\n    t.Yacute = 611;\n    t.Acircumflex = 667;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 556;\n    t.Edieresis = 667;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 747;\n    t.Emacron = 667;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 722;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 611;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 667;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 494;\n    t.Rcaron = 667;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 556;\n    t.acircumflex = 500;\n    t.Amacron = 667;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 611;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 667;\n    t.Sacute = 556;\n    t.dcaron = 608;\n    t.Umacron = 722;\n    t.uring = 556;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 667;\n    t.Abreve = 667;\n    t.multiply = 570;\n    t.uacute = 556;\n    t.Tcaron = 611;\n    t.partialdiff = 494;\n    t.ydieresis = 444;\n    t.Nacute = 722;\n    t.icircumflex = 278;\n    t.Ecircumflex = 667;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 556;\n    t.umacron = 556;\n    t.Ncaron = 722;\n    t.Iacute = 389;\n    t.plusminus = 570;\n    t.brokenbar = 220;\n    t.registered = 747;\n    t.Gbreve = 722;\n    t.Idotaccent = 389;\n    t.summation = 600;\n    t.Egrave = 667;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 611;\n    t.Zcaron = 611;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 366;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 667;\n    t.Adieresis = 667;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 576;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 667;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 556;\n    t.lcaron = 382;\n    t.Kcommaaccent = 667;\n    t.Lacute = 611;\n    t.trademark = 1000;\n    t.edotaccent = 444;\n    t.Igrave = 389;\n    t.Imacron = 389;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 556;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 667;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 556;\n    t.Scommaaccent = 556;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 556;\n    t.radical = 549;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 722;\n    t.otilde = 500;\n    t.Rcommaaccent = 667;\n    t.Lcommaaccent = 611;\n    t.Atilde = 667;\n    t.Aogonek = 667;\n    t.Aring = 667;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 667;\n    t.Iogonek = 389;\n    t.kcommaaccent = 500;\n    t.minus = 606;\n    t.Icircumflex = 389;\n    t.ncaron = 556;\n    t.tcommaaccent = 278;\n    t.logicalnot = 606;\n    t.odieresis = 500;\n    t.udieresis = 556;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 556;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t[\"Times-Italic\"] = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 250;\n    t.exclam = 333;\n    t.quotedbl = 420;\n    t.numbersign = 500;\n    t.dollar = 500;\n    t.percent = 833;\n    t.ampersand = 778;\n    t.quoteright = 333;\n    t.parenleft = 333;\n    t.parenright = 333;\n    t.asterisk = 500;\n    t.plus = 675;\n    t.comma = 250;\n    t.hyphen = 333;\n    t.period = 250;\n    t.slash = 278;\n    t.zero = 500;\n    t.one = 500;\n    t.two = 500;\n    t.three = 500;\n    t.four = 500;\n    t.five = 500;\n    t.six = 500;\n    t.seven = 500;\n    t.eight = 500;\n    t.nine = 500;\n    t.colon = 333;\n    t.semicolon = 333;\n    t.less = 675;\n    t.equal = 675;\n    t.greater = 675;\n    t.question = 500;\n    t.at = 920;\n    t.A = 611;\n    t.B = 611;\n    t.C = 667;\n    t.D = 722;\n    t.E = 611;\n    t.F = 611;\n    t.G = 722;\n    t.H = 722;\n    t.I = 333;\n    t.J = 444;\n    t.K = 667;\n    t.L = 556;\n    t.M = 833;\n    t.N = 667;\n    t.O = 722;\n    t.P = 611;\n    t.Q = 722;\n    t.R = 611;\n    t.S = 500;\n    t.T = 556;\n    t.U = 722;\n    t.V = 611;\n    t.W = 833;\n    t.X = 611;\n    t.Y = 556;\n    t.Z = 556;\n    t.bracketleft = 389;\n    t.backslash = 278;\n    t.bracketright = 389;\n    t.asciicircum = 422;\n    t.underscore = 500;\n    t.quoteleft = 333;\n    t.a = 500;\n    t.b = 500;\n    t.c = 444;\n    t.d = 500;\n    t.e = 444;\n    t.f = 278;\n    t.g = 500;\n    t.h = 500;\n    t.i = 278;\n    t.j = 278;\n    t.k = 444;\n    t.l = 278;\n    t.m = 722;\n    t.n = 500;\n    t.o = 500;\n    t.p = 500;\n    t.q = 500;\n    t.r = 389;\n    t.s = 389;\n    t.t = 278;\n    t.u = 500;\n    t.v = 444;\n    t.w = 667;\n    t.x = 444;\n    t.y = 444;\n    t.z = 389;\n    t.braceleft = 400;\n    t.bar = 275;\n    t.braceright = 400;\n    t.asciitilde = 541;\n    t.exclamdown = 389;\n    t.cent = 500;\n    t.sterling = 500;\n    t.fraction = 167;\n    t.yen = 500;\n    t.florin = 500;\n    t.section = 500;\n    t.currency = 500;\n    t.quotesingle = 214;\n    t.quotedblleft = 556;\n    t.guillemotleft = 500;\n    t.guilsinglleft = 333;\n    t.guilsinglright = 333;\n    t.fi = 500;\n    t.fl = 500;\n    t.endash = 500;\n    t.dagger = 500;\n    t.daggerdbl = 500;\n    t.periodcentered = 250;\n    t.paragraph = 523;\n    t.bullet = 350;\n    t.quotesinglbase = 333;\n    t.quotedblbase = 556;\n    t.quotedblright = 556;\n    t.guillemotright = 500;\n    t.ellipsis = 889;\n    t.perthousand = 1000;\n    t.questiondown = 500;\n    t.grave = 333;\n    t.acute = 333;\n    t.circumflex = 333;\n    t.tilde = 333;\n    t.macron = 333;\n    t.breve = 333;\n    t.dotaccent = 333;\n    t.dieresis = 333;\n    t.ring = 333;\n    t.cedilla = 333;\n    t.hungarumlaut = 333;\n    t.ogonek = 333;\n    t.caron = 333;\n    t.emdash = 889;\n    t.AE = 889;\n    t.ordfeminine = 276;\n    t.Lslash = 556;\n    t.Oslash = 722;\n    t.OE = 944;\n    t.ordmasculine = 310;\n    t.ae = 667;\n    t.dotlessi = 278;\n    t.lslash = 278;\n    t.oslash = 500;\n    t.oe = 667;\n    t.germandbls = 500;\n    t.Idieresis = 333;\n    t.eacute = 444;\n    t.abreve = 500;\n    t.uhungarumlaut = 500;\n    t.ecaron = 444;\n    t.Ydieresis = 556;\n    t.divide = 675;\n    t.Yacute = 556;\n    t.Acircumflex = 611;\n    t.aacute = 500;\n    t.Ucircumflex = 722;\n    t.yacute = 444;\n    t.scommaaccent = 389;\n    t.ecircumflex = 444;\n    t.Uring = 722;\n    t.Udieresis = 722;\n    t.aogonek = 500;\n    t.Uacute = 722;\n    t.uogonek = 500;\n    t.Edieresis = 611;\n    t.Dcroat = 722;\n    t.commaaccent = 250;\n    t.copyright = 760;\n    t.Emacron = 611;\n    t.ccaron = 444;\n    t.aring = 500;\n    t.Ncommaaccent = 667;\n    t.lacute = 278;\n    t.agrave = 500;\n    t.Tcommaaccent = 556;\n    t.Cacute = 667;\n    t.atilde = 500;\n    t.Edotaccent = 611;\n    t.scaron = 389;\n    t.scedilla = 389;\n    t.iacute = 278;\n    t.lozenge = 471;\n    t.Rcaron = 611;\n    t.Gcommaaccent = 722;\n    t.ucircumflex = 500;\n    t.acircumflex = 500;\n    t.Amacron = 611;\n    t.rcaron = 389;\n    t.ccedilla = 444;\n    t.Zdotaccent = 556;\n    t.Thorn = 611;\n    t.Omacron = 722;\n    t.Racute = 611;\n    t.Sacute = 500;\n    t.dcaron = 544;\n    t.Umacron = 722;\n    t.uring = 500;\n    t.threesuperior = 300;\n    t.Ograve = 722;\n    t.Agrave = 611;\n    t.Abreve = 611;\n    t.multiply = 675;\n    t.uacute = 500;\n    t.Tcaron = 556;\n    t.partialdiff = 476;\n    t.ydieresis = 444;\n    t.Nacute = 667;\n    t.icircumflex = 278;\n    t.Ecircumflex = 611;\n    t.adieresis = 500;\n    t.edieresis = 444;\n    t.cacute = 444;\n    t.nacute = 500;\n    t.umacron = 500;\n    t.Ncaron = 667;\n    t.Iacute = 333;\n    t.plusminus = 675;\n    t.brokenbar = 275;\n    t.registered = 760;\n    t.Gbreve = 722;\n    t.Idotaccent = 333;\n    t.summation = 600;\n    t.Egrave = 611;\n    t.racute = 389;\n    t.omacron = 500;\n    t.Zacute = 556;\n    t.Zcaron = 556;\n    t.greaterequal = 549;\n    t.Eth = 722;\n    t.Ccedilla = 667;\n    t.lcommaaccent = 278;\n    t.tcaron = 300;\n    t.eogonek = 444;\n    t.Uogonek = 722;\n    t.Aacute = 611;\n    t.Adieresis = 611;\n    t.egrave = 444;\n    t.zacute = 389;\n    t.iogonek = 278;\n    t.Oacute = 722;\n    t.oacute = 500;\n    t.amacron = 500;\n    t.sacute = 389;\n    t.idieresis = 278;\n    t.Ocircumflex = 722;\n    t.Ugrave = 722;\n    t.Delta = 612;\n    t.thorn = 500;\n    t.twosuperior = 300;\n    t.Odieresis = 722;\n    t.mu = 500;\n    t.igrave = 278;\n    t.ohungarumlaut = 500;\n    t.Eogonek = 611;\n    t.dcroat = 500;\n    t.threequarters = 750;\n    t.Scedilla = 500;\n    t.lcaron = 300;\n    t.Kcommaaccent = 667;\n    t.Lacute = 556;\n    t.trademark = 980;\n    t.edotaccent = 444;\n    t.Igrave = 333;\n    t.Imacron = 333;\n    t.Lcaron = 611;\n    t.onehalf = 750;\n    t.lessequal = 549;\n    t.ocircumflex = 500;\n    t.ntilde = 500;\n    t.Uhungarumlaut = 722;\n    t.Eacute = 611;\n    t.emacron = 444;\n    t.gbreve = 500;\n    t.onequarter = 750;\n    t.Scaron = 500;\n    t.Scommaaccent = 500;\n    t.Ohungarumlaut = 722;\n    t.degree = 400;\n    t.ograve = 500;\n    t.Ccaron = 667;\n    t.ugrave = 500;\n    t.radical = 453;\n    t.Dcaron = 722;\n    t.rcommaaccent = 389;\n    t.Ntilde = 667;\n    t.otilde = 500;\n    t.Rcommaaccent = 611;\n    t.Lcommaaccent = 556;\n    t.Atilde = 611;\n    t.Aogonek = 611;\n    t.Aring = 611;\n    t.Otilde = 722;\n    t.zdotaccent = 389;\n    t.Ecaron = 611;\n    t.Iogonek = 333;\n    t.kcommaaccent = 444;\n    t.minus = 675;\n    t.Icircumflex = 333;\n    t.ncaron = 500;\n    t.tcommaaccent = 278;\n    t.logicalnot = 675;\n    t.odieresis = 500;\n    t.udieresis = 500;\n    t.notequal = 549;\n    t.gcommaaccent = 500;\n    t.eth = 500;\n    t.zcaron = 389;\n    t.ncommaaccent = 500;\n    t.onesuperior = 300;\n    t.imacron = 278;\n    t.Euro = 500;\n  });\n  t.ZapfDingbats = (0, _core_utils.getLookupTableFactory)(function (t) {\n    t.space = 278;\n    t.a1 = 974;\n    t.a2 = 961;\n    t.a202 = 974;\n    t.a3 = 980;\n    t.a4 = 719;\n    t.a5 = 789;\n    t.a119 = 790;\n    t.a118 = 791;\n    t.a117 = 690;\n    t.a11 = 960;\n    t.a12 = 939;\n    t.a13 = 549;\n    t.a14 = 855;\n    t.a15 = 911;\n    t.a16 = 933;\n    t.a105 = 911;\n    t.a17 = 945;\n    t.a18 = 974;\n    t.a19 = 755;\n    t.a20 = 846;\n    t.a21 = 762;\n    t.a22 = 761;\n    t.a23 = 571;\n    t.a24 = 677;\n    t.a25 = 763;\n    t.a26 = 760;\n    t.a27 = 759;\n    t.a28 = 754;\n    t.a6 = 494;\n    t.a7 = 552;\n    t.a8 = 537;\n    t.a9 = 577;\n    t.a10 = 692;\n    t.a29 = 786;\n    t.a30 = 788;\n    t.a31 = 788;\n    t.a32 = 790;\n    t.a33 = 793;\n    t.a34 = 794;\n    t.a35 = 816;\n    t.a36 = 823;\n    t.a37 = 789;\n    t.a38 = 841;\n    t.a39 = 823;\n    t.a40 = 833;\n    t.a41 = 816;\n    t.a42 = 831;\n    t.a43 = 923;\n    t.a44 = 744;\n    t.a45 = 723;\n    t.a46 = 749;\n    t.a47 = 790;\n    t.a48 = 792;\n    t.a49 = 695;\n    t.a50 = 776;\n    t.a51 = 768;\n    t.a52 = 792;\n    t.a53 = 759;\n    t.a54 = 707;\n    t.a55 = 708;\n    t.a56 = 682;\n    t.a57 = 701;\n    t.a58 = 826;\n    t.a59 = 815;\n    t.a60 = 789;\n    t.a61 = 789;\n    t.a62 = 707;\n    t.a63 = 687;\n    t.a64 = 696;\n    t.a65 = 689;\n    t.a66 = 786;\n    t.a67 = 787;\n    t.a68 = 713;\n    t.a69 = 791;\n    t.a70 = 785;\n    t.a71 = 791;\n    t.a72 = 873;\n    t.a73 = 761;\n    t.a74 = 762;\n    t.a203 = 762;\n    t.a75 = 759;\n    t.a204 = 759;\n    t.a76 = 892;\n    t.a77 = 892;\n    t.a78 = 788;\n    t.a79 = 784;\n    t.a81 = 438;\n    t.a82 = 138;\n    t.a83 = 277;\n    t.a84 = 415;\n    t.a97 = 392;\n    t.a98 = 392;\n    t.a99 = 668;\n    t.a100 = 668;\n    t.a89 = 390;\n    t.a90 = 390;\n    t.a93 = 317;\n    t.a94 = 317;\n    t.a91 = 276;\n    t.a92 = 276;\n    t.a205 = 509;\n    t.a85 = 509;\n    t.a206 = 410;\n    t.a86 = 410;\n    t.a87 = 234;\n    t.a88 = 234;\n    t.a95 = 334;\n    t.a96 = 334;\n    t.a101 = 732;\n    t.a102 = 544;\n    t.a103 = 544;\n    t.a104 = 910;\n    t.a106 = 667;\n    t.a107 = 760;\n    t.a108 = 760;\n    t.a112 = 776;\n    t.a111 = 595;\n    t.a110 = 694;\n    t.a109 = 626;\n    t.a120 = 788;\n    t.a121 = 788;\n    t.a122 = 788;\n    t.a123 = 788;\n    t.a124 = 788;\n    t.a125 = 788;\n    t.a126 = 788;\n    t.a127 = 788;\n    t.a128 = 788;\n    t.a129 = 788;\n    t.a130 = 788;\n    t.a131 = 788;\n    t.a132 = 788;\n    t.a133 = 788;\n    t.a134 = 788;\n    t.a135 = 788;\n    t.a136 = 788;\n    t.a137 = 788;\n    t.a138 = 788;\n    t.a139 = 788;\n    t.a140 = 788;\n    t.a141 = 788;\n    t.a142 = 788;\n    t.a143 = 788;\n    t.a144 = 788;\n    t.a145 = 788;\n    t.a146 = 788;\n    t.a147 = 788;\n    t.a148 = 788;\n    t.a149 = 788;\n    t.a150 = 788;\n    t.a151 = 788;\n    t.a152 = 788;\n    t.a153 = 788;\n    t.a154 = 788;\n    t.a155 = 788;\n    t.a156 = 788;\n    t.a157 = 788;\n    t.a158 = 788;\n    t.a159 = 788;\n    t.a160 = 894;\n    t.a161 = 838;\n    t.a163 = 1016;\n    t.a164 = 458;\n    t.a196 = 748;\n    t.a165 = 924;\n    t.a192 = 748;\n    t.a166 = 918;\n    t.a167 = 927;\n    t.a168 = 928;\n    t.a169 = 928;\n    t.a170 = 834;\n    t.a171 = 873;\n    t.a172 = 828;\n    t.a173 = 924;\n    t.a162 = 924;\n    t.a174 = 917;\n    t.a175 = 930;\n    t.a176 = 931;\n    t.a177 = 463;\n    t.a178 = 883;\n    t.a179 = 836;\n    t.a193 = 836;\n    t.a180 = 867;\n    t.a199 = 867;\n    t.a181 = 696;\n    t.a200 = 696;\n    t.a182 = 874;\n    t.a201 = 874;\n    t.a183 = 760;\n    t.a184 = 946;\n    t.a197 = 771;\n    t.a185 = 865;\n    t.a194 = 771;\n    t.a198 = 888;\n    t.a186 = 967;\n    t.a195 = 888;\n    t.a187 = 831;\n    t.a188 = 873;\n    t.a189 = 927;\n    t.a190 = 970;\n    t.a191 = 918;\n  });\n});\nexports.getMetrics = getMetrics;\nconst getFontBasicMetrics = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t.Courier = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: -426\n  };\n  t[\"Courier-Bold\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 439\n  };\n  t[\"Courier-Oblique\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 426\n  };\n  t[\"Courier-BoldOblique\"] = {\n    ascent: 629,\n    descent: -157,\n    capHeight: 562,\n    xHeight: 426\n  };\n  t.Helvetica = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 523\n  };\n  t[\"Helvetica-Bold\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 532\n  };\n  t[\"Helvetica-Oblique\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 523\n  };\n  t[\"Helvetica-BoldOblique\"] = {\n    ascent: 718,\n    descent: -207,\n    capHeight: 718,\n    xHeight: 532\n  };\n  t[\"Times-Roman\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 662,\n    xHeight: 450\n  };\n  t[\"Times-Bold\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 676,\n    xHeight: 461\n  };\n  t[\"Times-Italic\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 653,\n    xHeight: 441\n  };\n  t[\"Times-BoldItalic\"] = {\n    ascent: 683,\n    descent: -217,\n    capHeight: 669,\n    xHeight: 462\n  };\n  t.Symbol = {\n    ascent: Math.NaN,\n    descent: Math.NaN,\n    capHeight: Math.NaN,\n    xHeight: Math.NaN\n  };\n  t.ZapfDingbats = {\n    ascent: Math.NaN,\n    descent: Math.NaN,\n    capHeight: Math.NaN,\n    xHeight: Math.NaN\n  };\n});\nexports.getFontBasicMetrics = getFontBasicMetrics;\n\n/***/ }),\n/* 46 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.GlyfTable = void 0;\nconst ON_CURVE_POINT = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT_FLAG = 1 << 3;\nconst X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4;\nconst Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5;\nconst OVERLAP_SIMPLE = 1 << 6;\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\n\nclass GlyfTable {\n  constructor({\n    glyfTable,\n    isGlyphLocationsLong,\n    locaTable,\n    numGlyphs\n  }) {\n    this.glyphs = [];\n    const loca = new DataView(locaTable.buffer, locaTable.byteOffset, locaTable.byteLength);\n    const glyf = new DataView(glyfTable.buffer, glyfTable.byteOffset, glyfTable.byteLength);\n    const offsetSize = isGlyphLocationsLong ? 4 : 2;\n    let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0);\n    let pos = 0;\n\n    for (let i = 0; i < numGlyphs; i++) {\n      pos += offsetSize;\n      const next = isGlyphLocationsLong ? loca.getUint32(pos) : 2 * loca.getUint16(pos);\n\n      if (next === prev) {\n        this.glyphs.push(new Glyph({}));\n        continue;\n      }\n\n      const glyph = Glyph.parse(prev, glyf);\n      this.glyphs.push(glyph);\n      prev = next;\n    }\n  }\n\n  getSize() {\n    return this.glyphs.reduce((a, g) => {\n      const size = g.getSize();\n      return a + (size + 3 & ~3);\n    }, 0);\n  }\n\n  write() {\n    const totalSize = this.getSize();\n    const glyfTable = new DataView(new ArrayBuffer(totalSize));\n    const isLocationLong = totalSize > 0x1fffe;\n    const offsetSize = isLocationLong ? 4 : 2;\n    const locaTable = new DataView(new ArrayBuffer((this.glyphs.length + 1) * offsetSize));\n\n    if (isLocationLong) {\n      locaTable.setUint32(0, 0);\n    } else {\n      locaTable.setUint16(0, 0);\n    }\n\n    let pos = 0;\n    let locaIndex = 0;\n\n    for (const glyph of this.glyphs) {\n      pos += glyph.write(pos, glyfTable);\n      pos = pos + 3 & ~3;\n      locaIndex += offsetSize;\n\n      if (isLocationLong) {\n        locaTable.setUint32(locaIndex, pos);\n      } else {\n        locaTable.setUint16(locaIndex, pos >> 1);\n      }\n    }\n\n    return {\n      isLocationLong,\n      loca: new Uint8Array(locaTable.buffer),\n      glyf: new Uint8Array(glyfTable.buffer)\n    };\n  }\n\n  scale(factors) {\n    for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n      this.glyphs[i].scale(factors[i]);\n    }\n  }\n\n}\n\nexports.GlyfTable = GlyfTable;\n\nclass Glyph {\n  constructor({\n    header = null,\n    simple = null,\n    composites = null\n  }) {\n    this.header = header;\n    this.simple = simple;\n    this.composites = composites;\n  }\n\n  static parse(pos, glyf) {\n    const [read, header] = GlyphHeader.parse(pos, glyf);\n    pos += read;\n\n    if (header.numberOfContours < 0) {\n      const composites = [];\n\n      while (true) {\n        const [n, composite] = CompositeGlyph.parse(pos, glyf);\n        pos += n;\n        composites.push(composite);\n\n        if (!(composite.flags & MORE_COMPONENTS)) {\n          break;\n        }\n      }\n\n      return new Glyph({\n        header,\n        composites\n      });\n    }\n\n    const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours);\n    return new Glyph({\n      header,\n      simple\n    });\n  }\n\n  getSize() {\n    if (!this.header) {\n      return 0;\n    }\n\n    const size = this.simple ? this.simple.getSize() : this.composites.reduce((a, c) => a + c.getSize(), 0);\n    return this.header.getSize() + size;\n  }\n\n  write(pos, buf) {\n    if (!this.header) {\n      return 0;\n    }\n\n    const spos = pos;\n    pos += this.header.write(pos, buf);\n\n    if (this.simple) {\n      pos += this.simple.write(pos, buf);\n    } else {\n      for (const composite of this.composites) {\n        pos += composite.write(pos, buf);\n      }\n    }\n\n    return pos - spos;\n  }\n\n  scale(factor) {\n    if (!this.header) {\n      return;\n    }\n\n    const xMiddle = (this.header.xMin + this.header.xMax) / 2;\n    this.header.scale(xMiddle, factor);\n\n    if (this.simple) {\n      this.simple.scale(xMiddle, factor);\n    } else {\n      for (const composite of this.composites) {\n        composite.scale(xMiddle, factor);\n      }\n    }\n  }\n\n}\n\nclass GlyphHeader {\n  constructor({\n    numberOfContours,\n    xMin,\n    yMin,\n    xMax,\n    yMax\n  }) {\n    this.numberOfContours = numberOfContours;\n    this.xMin = xMin;\n    this.yMin = yMin;\n    this.xMax = xMax;\n    this.yMax = yMax;\n  }\n\n  static parse(pos, glyf) {\n    return [10, new GlyphHeader({\n      numberOfContours: glyf.getInt16(pos),\n      xMin: glyf.getInt16(pos + 2),\n      yMin: glyf.getInt16(pos + 4),\n      xMax: glyf.getInt16(pos + 6),\n      yMax: glyf.getInt16(pos + 8)\n    })];\n  }\n\n  getSize() {\n    return 10;\n  }\n\n  write(pos, buf) {\n    buf.setInt16(pos, this.numberOfContours);\n    buf.setInt16(pos + 2, this.xMin);\n    buf.setInt16(pos + 4, this.yMin);\n    buf.setInt16(pos + 6, this.xMax);\n    buf.setInt16(pos + 8, this.yMax);\n    return 10;\n  }\n\n  scale(x, factor) {\n    this.xMin = Math.round(x + (this.xMin - x) * factor);\n    this.xMax = Math.round(x + (this.xMax - x) * factor);\n  }\n\n}\n\nclass Contour {\n  constructor({\n    flags,\n    xCoordinates,\n    yCoordinates\n  }) {\n    this.xCoordinates = xCoordinates;\n    this.yCoordinates = yCoordinates;\n    this.flags = flags;\n  }\n\n}\n\nclass SimpleGlyph {\n  constructor({\n    contours,\n    instructions\n  }) {\n    this.contours = contours;\n    this.instructions = instructions;\n  }\n\n  static parse(pos, glyf, numberOfContours) {\n    const endPtsOfContours = [];\n\n    for (let i = 0; i < numberOfContours; i++) {\n      const endPt = glyf.getUint16(pos);\n      pos += 2;\n      endPtsOfContours.push(endPt);\n    }\n\n    const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1;\n    const instructionLength = glyf.getUint16(pos);\n    pos += 2;\n    const instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n    pos += instructionLength;\n    const flags = [];\n\n    for (let i = 0; i < numberOfPt; pos++, i++) {\n      let flag = glyf.getUint8(pos);\n      flags.push(flag);\n\n      if (flag & REPEAT_FLAG) {\n        const count = glyf.getUint8(++pos);\n        flag ^= REPEAT_FLAG;\n\n        for (let m = 0; m < count; m++) {\n          flags.push(flag);\n        }\n\n        i += count;\n      }\n    }\n\n    const allXCoordinates = [];\n    let xCoordinates = [];\n    let yCoordinates = [];\n    let pointFlags = [];\n    const contours = [];\n    let endPtsOfContoursIndex = 0;\n    let lastCoordinate = 0;\n\n    for (let i = 0; i < numberOfPt; i++) {\n      const flag = flags[i];\n\n      if (flag & X_SHORT_VECTOR) {\n        const x = glyf.getUint8(pos++);\n        lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x;\n        xCoordinates.push(lastCoordinate);\n      } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) {\n        xCoordinates.push(lastCoordinate);\n      } else {\n        lastCoordinate += glyf.getInt16(pos);\n        pos += 2;\n        xCoordinates.push(lastCoordinate);\n      }\n\n      if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n        endPtsOfContoursIndex++;\n        allXCoordinates.push(xCoordinates);\n        xCoordinates = [];\n      }\n    }\n\n    lastCoordinate = 0;\n    endPtsOfContoursIndex = 0;\n\n    for (let i = 0; i < numberOfPt; i++) {\n      const flag = flags[i];\n\n      if (flag & Y_SHORT_VECTOR) {\n        const y = glyf.getUint8(pos++);\n        lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;\n        yCoordinates.push(lastCoordinate);\n      } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {\n        yCoordinates.push(lastCoordinate);\n      } else {\n        lastCoordinate += glyf.getInt16(pos);\n        pos += 2;\n        yCoordinates.push(lastCoordinate);\n      }\n\n      pointFlags.push(flag & ON_CURVE_POINT | flag & OVERLAP_SIMPLE);\n\n      if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n        xCoordinates = allXCoordinates[endPtsOfContoursIndex];\n        endPtsOfContoursIndex++;\n        contours.push(new Contour({\n          flags: pointFlags,\n          xCoordinates,\n          yCoordinates\n        }));\n        yCoordinates = [];\n        pointFlags = [];\n      }\n    }\n\n    return new SimpleGlyph({\n      contours,\n      instructions\n    });\n  }\n\n  getSize() {\n    let size = this.contours.length * 2 + 2 + this.instructions.length;\n    let lastX = 0;\n    let lastY = 0;\n\n    for (const contour of this.contours) {\n      size += contour.flags.length;\n\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        const x = contour.xCoordinates[i];\n        const y = contour.yCoordinates[i];\n        let abs = Math.abs(x - lastX);\n\n        if (abs > 255) {\n          size += 2;\n        } else if (abs > 0) {\n          size += 1;\n        }\n\n        lastX = x;\n        abs = Math.abs(y - lastY);\n\n        if (abs > 255) {\n          size += 2;\n        } else if (abs > 0) {\n          size += 1;\n        }\n\n        lastY = y;\n      }\n    }\n\n    return size;\n  }\n\n  write(pos, buf) {\n    const spos = pos;\n    const xCoordinates = [];\n    const yCoordinates = [];\n    const flags = [];\n    let lastX = 0;\n    let lastY = 0;\n\n    for (const contour of this.contours) {\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        let flag = contour.flags[i];\n        const x = contour.xCoordinates[i];\n        let delta = x - lastX;\n\n        if (delta === 0) {\n          flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;\n          xCoordinates.push(0);\n        } else {\n          const abs = Math.abs(delta);\n\n          if (abs <= 255) {\n            flag |= delta >= 0 ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR : X_SHORT_VECTOR;\n            xCoordinates.push(abs);\n          } else {\n            xCoordinates.push(delta);\n          }\n        }\n\n        lastX = x;\n        const y = contour.yCoordinates[i];\n        delta = y - lastY;\n\n        if (delta === 0) {\n          flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;\n          yCoordinates.push(0);\n        } else {\n          const abs = Math.abs(delta);\n\n          if (abs <= 255) {\n            flag |= delta >= 0 ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR : Y_SHORT_VECTOR;\n            yCoordinates.push(abs);\n          } else {\n            yCoordinates.push(delta);\n          }\n        }\n\n        lastY = y;\n        flags.push(flag);\n      }\n\n      buf.setUint16(pos, xCoordinates.length - 1);\n      pos += 2;\n    }\n\n    buf.setUint16(pos, this.instructions.length);\n    pos += 2;\n\n    if (this.instructions.length) {\n      new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos);\n      pos += this.instructions.length;\n    }\n\n    for (const flag of flags) {\n      buf.setUint8(pos++, flag);\n    }\n\n    for (let i = 0, ii = xCoordinates.length; i < ii; i++) {\n      const x = xCoordinates[i];\n      const flag = flags[i];\n\n      if (flag & X_SHORT_VECTOR) {\n        buf.setUint8(pos++, x);\n      } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {\n        buf.setInt16(pos, x);\n        pos += 2;\n      }\n    }\n\n    for (let i = 0, ii = yCoordinates.length; i < ii; i++) {\n      const y = yCoordinates[i];\n      const flag = flags[i];\n\n      if (flag & Y_SHORT_VECTOR) {\n        buf.setUint8(pos++, y);\n      } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {\n        buf.setInt16(pos, y);\n        pos += 2;\n      }\n    }\n\n    return pos - spos;\n  }\n\n  scale(x, factor) {\n    for (const contour of this.contours) {\n      if (contour.xCoordinates.length === 0) {\n        continue;\n      }\n\n      for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n        contour.xCoordinates[i] = Math.round(x + (contour.xCoordinates[i] - x) * factor);\n      }\n    }\n  }\n\n}\n\nclass CompositeGlyph {\n  constructor({\n    flags,\n    glyphIndex,\n    argument1,\n    argument2,\n    transf,\n    instructions\n  }) {\n    this.flags = flags;\n    this.glyphIndex = glyphIndex;\n    this.argument1 = argument1;\n    this.argument2 = argument2;\n    this.transf = transf;\n    this.instructions = instructions;\n  }\n\n  static parse(pos, glyf) {\n    const spos = pos;\n    const transf = [];\n    let flags = glyf.getUint16(pos);\n    const glyphIndex = glyf.getUint16(pos + 2);\n    pos += 4;\n    let argument1, argument2;\n\n    if (flags & ARG_1_AND_2_ARE_WORDS) {\n      if (flags & ARGS_ARE_XY_VALUES) {\n        argument1 = glyf.getInt16(pos);\n        argument2 = glyf.getInt16(pos + 2);\n      } else {\n        argument1 = glyf.getUint16(pos);\n        argument2 = glyf.getUint16(pos + 2);\n      }\n\n      pos += 4;\n      flags ^= ARG_1_AND_2_ARE_WORDS;\n    } else {\n      if (flags & ARGS_ARE_XY_VALUES) {\n        argument1 = glyf.getInt8(pos);\n        argument2 = glyf.getInt8(pos + 1);\n      } else {\n        argument1 = glyf.getUint8(pos);\n        argument2 = glyf.getUint8(pos + 1);\n      }\n\n      pos += 2;\n    }\n\n    if (flags & WE_HAVE_A_SCALE) {\n      transf.push(glyf.getUint16(pos));\n      pos += 2;\n    } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n      transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));\n      pos += 4;\n    } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n      transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2), glyf.getUint16(pos + 4), glyf.getUint16(pos + 6));\n      pos += 8;\n    }\n\n    let instructions = null;\n\n    if (flags & WE_HAVE_INSTRUCTIONS) {\n      const instructionLength = glyf.getUint16(pos);\n      pos += 2;\n      instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n      pos += instructionLength;\n    }\n\n    return [pos - spos, new CompositeGlyph({\n      flags,\n      glyphIndex,\n      argument1,\n      argument2,\n      transf,\n      instructions\n    })];\n  }\n\n  getSize() {\n    let size = 2 + 2 + this.transf.length * 2;\n\n    if (this.flags & WE_HAVE_INSTRUCTIONS) {\n      size += 2 + this.instructions.length;\n    }\n\n    size += 2;\n\n    if (this.flags & 2) {\n      if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) {\n        size += 2;\n      }\n    } else {\n      if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) {\n        size += 2;\n      }\n    }\n\n    return size;\n  }\n\n  write(pos, buf) {\n    const spos = pos;\n\n    if (this.flags & ARGS_ARE_XY_VALUES) {\n      if (!(this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127)) {\n        this.flags |= ARG_1_AND_2_ARE_WORDS;\n      }\n    } else {\n      if (!(this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255)) {\n        this.flags |= ARG_1_AND_2_ARE_WORDS;\n      }\n    }\n\n    buf.setUint16(pos, this.flags);\n    buf.setUint16(pos + 2, this.glyphIndex);\n    pos += 4;\n\n    if (this.flags & ARG_1_AND_2_ARE_WORDS) {\n      if (this.flags & ARGS_ARE_XY_VALUES) {\n        buf.setInt16(pos, this.argument1);\n        buf.setInt16(pos + 2, this.argument2);\n      } else {\n        buf.setUint16(pos, this.argument1);\n        buf.setUint16(pos + 2, this.argument2);\n      }\n\n      pos += 4;\n    } else {\n      buf.setUint8(pos, this.argument1);\n      buf.setUint8(pos + 1, this.argument2);\n      pos += 2;\n    }\n\n    if (this.flags & WE_HAVE_INSTRUCTIONS) {\n      buf.setUint16(pos, this.instructions.length);\n      pos += 2;\n\n      if (this.instructions.length) {\n        new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(this.instructions, pos);\n        pos += this.instructions.length;\n      }\n    }\n\n    return pos - spos;\n  }\n\n  scale(x, factor) {}\n\n}\n\n/***/ }),\n/* 47 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.OpenTypeFileBuilder = void 0;\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction writeInt16(dest, offset, num) {\n  dest[offset] = num >> 8 & 0xff;\n  dest[offset + 1] = num & 0xff;\n}\n\nfunction writeInt32(dest, offset, num) {\n  dest[offset] = num >> 24 & 0xff;\n  dest[offset + 1] = num >> 16 & 0xff;\n  dest[offset + 2] = num >> 8 & 0xff;\n  dest[offset + 3] = num & 0xff;\n}\n\nfunction writeData(dest, offset, data) {\n  if (data instanceof Uint8Array) {\n    dest.set(data, offset);\n  } else if (typeof data === \"string\") {\n    for (let i = 0, ii = data.length; i < ii; i++) {\n      dest[offset++] = data.charCodeAt(i) & 0xff;\n    }\n  } else {\n    for (let i = 0, ii = data.length; i < ii; i++) {\n      dest[offset++] = data[i] & 0xff;\n    }\n  }\n}\n\nconst OTF_HEADER_SIZE = 12;\nconst OTF_TABLE_ENTRY_SIZE = 16;\n\nclass OpenTypeFileBuilder {\n  constructor(sfnt) {\n    this.sfnt = sfnt;\n    this.tables = Object.create(null);\n  }\n\n  static getSearchParams(entriesCount, entrySize) {\n    let maxPower2 = 1,\n        log2 = 0;\n\n    while ((maxPower2 ^ entriesCount) > maxPower2) {\n      maxPower2 <<= 1;\n      log2++;\n    }\n\n    const searchRange = maxPower2 * entrySize;\n    return {\n      range: searchRange,\n      entry: log2,\n      rangeShift: entrySize * entriesCount - searchRange\n    };\n  }\n\n  toArray() {\n    let sfnt = this.sfnt;\n    const tables = this.tables;\n    const tablesNames = Object.keys(tables);\n    tablesNames.sort();\n    const numTables = tablesNames.length;\n    let i, j, jj, table, tableName;\n    let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n    const tableOffsets = [offset];\n\n    for (i = 0; i < numTables; i++) {\n      table = tables[tablesNames[i]];\n      const paddedLength = (table.length + 3 & ~3) >>> 0;\n      offset += paddedLength;\n      tableOffsets.push(offset);\n    }\n\n    const file = new Uint8Array(offset);\n\n    for (i = 0; i < numTables; i++) {\n      table = tables[tablesNames[i]];\n      writeData(file, tableOffsets[i], table);\n    }\n\n    if (sfnt === \"true\") {\n      sfnt = (0, _util.string32)(0x00010000);\n    }\n\n    file[0] = sfnt.charCodeAt(0) & 0xff;\n    file[1] = sfnt.charCodeAt(1) & 0xff;\n    file[2] = sfnt.charCodeAt(2) & 0xff;\n    file[3] = sfnt.charCodeAt(3) & 0xff;\n    writeInt16(file, 4, numTables);\n    const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n    writeInt16(file, 6, searchParams.range);\n    writeInt16(file, 8, searchParams.entry);\n    writeInt16(file, 10, searchParams.rangeShift);\n    offset = OTF_HEADER_SIZE;\n\n    for (i = 0; i < numTables; i++) {\n      tableName = tablesNames[i];\n      file[offset] = tableName.charCodeAt(0) & 0xff;\n      file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n      file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n      file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n      let checksum = 0;\n\n      for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n        const quad = (0, _core_utils.readUint32)(file, j);\n        checksum = checksum + quad >>> 0;\n      }\n\n      writeInt32(file, offset + 4, checksum);\n      writeInt32(file, offset + 8, tableOffsets[i]);\n      writeInt32(file, offset + 12, tables[tableName].length);\n      offset += OTF_TABLE_ENTRY_SIZE;\n    }\n\n    return file;\n  }\n\n  addTable(tag, data) {\n    if (tag in this.tables) {\n      throw new Error(\"Table \" + tag + \" already exists\");\n    }\n\n    this.tables[tag] = data;\n  }\n\n}\n\nexports.OpenTypeFileBuilder = OpenTypeFileBuilder;\n\n/***/ }),\n/* 48 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Type1Font = void 0;\n\nvar _cff_parser = __w_pdfjs_require__(35);\n\nvar _fonts_utils = __w_pdfjs_require__(38);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _stream = __w_pdfjs_require__(10);\n\nvar _type1_parser = __w_pdfjs_require__(49);\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction findBlock(streamBytes, signature, startIndex) {\n  const streamBytesLength = streamBytes.length;\n  const signatureLength = signature.length;\n  const scanLength = streamBytesLength - signatureLength;\n  let i = startIndex,\n      found = false;\n\n  while (i < scanLength) {\n    let j = 0;\n\n    while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n      j++;\n    }\n\n    if (j >= signatureLength) {\n      i += j;\n\n      while (i < streamBytesLength && (0, _core_utils.isWhiteSpace)(streamBytes[i])) {\n        i++;\n      }\n\n      found = true;\n      break;\n    }\n\n    i++;\n  }\n\n  return {\n    found,\n    length: i\n  };\n}\n\nfunction getHeaderBlock(stream, suggestedLength) {\n  const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n  const streamStartPos = stream.pos;\n  let headerBytes, headerBytesLength, block;\n\n  try {\n    headerBytes = stream.getBytes(suggestedLength);\n    headerBytesLength = headerBytes.length;\n  } catch (ex) {}\n\n  if (headerBytesLength === suggestedLength) {\n    block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n\n    if (block.found && block.length === suggestedLength) {\n      return {\n        stream: new _stream.Stream(headerBytes),\n        length: suggestedLength\n      };\n    }\n  }\n\n  (0, _util.warn)('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n  stream.pos = streamStartPos;\n  const SCAN_BLOCK_LENGTH = 2048;\n  let actualLength;\n\n  while (true) {\n    const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n    block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n    if (block.length === 0) {\n      break;\n    }\n\n    stream.pos += block.length;\n\n    if (block.found) {\n      actualLength = stream.pos - streamStartPos;\n      break;\n    }\n  }\n\n  stream.pos = streamStartPos;\n\n  if (actualLength) {\n    return {\n      stream: new _stream.Stream(stream.getBytes(actualLength)),\n      length: actualLength\n    };\n  }\n\n  (0, _util.warn)('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n  return {\n    stream: new _stream.Stream(stream.getBytes(suggestedLength)),\n    length: suggestedLength\n  };\n}\n\nfunction getEexecBlock(stream, suggestedLength) {\n  const eexecBytes = stream.getBytes();\n  return {\n    stream: new _stream.Stream(eexecBytes),\n    length: eexecBytes.length\n  };\n}\n\nclass Type1Font {\n  constructor(name, file, properties) {\n    const PFB_HEADER_SIZE = 6;\n    let headerBlockLength = properties.length1;\n    let eexecBlockLength = properties.length2;\n    let pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n    const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n\n    if (pfbHeaderPresent) {\n      file.skip(PFB_HEADER_SIZE);\n      headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n\n    const headerBlock = getHeaderBlock(file, headerBlockLength);\n    const headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n    headerBlockParser.extractFontHeader(properties);\n\n    if (pfbHeaderPresent) {\n      pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n      eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n\n    const eexecBlock = getEexecBlock(file, eexecBlockLength);\n    const eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, _fonts_utils.SEAC_ANALYSIS_ENABLED);\n    const data = eexecBlockParser.extractFontProgram(properties);\n\n    for (const key in data.properties) {\n      properties[key] = data.properties[key];\n    }\n\n    const charstrings = data.charstrings;\n    const type2Charstrings = this.getType2Charstrings(charstrings);\n    const subrs = this.getType2Subrs(data.subrs);\n    this.charstrings = charstrings;\n    this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\n    this.seacs = this.getSeacs(data.charstrings);\n  }\n\n  get numGlyphs() {\n    return this.charstrings.length + 1;\n  }\n\n  getCharset() {\n    const charset = [\".notdef\"];\n\n    for (const {\n      glyphName\n    } of this.charstrings) {\n      charset.push(glyphName);\n    }\n\n    return charset;\n  }\n\n  getGlyphMapping(properties) {\n    const charstrings = this.charstrings;\n\n    if (properties.composite) {\n      const charCodeToGlyphId = Object.create(null);\n\n      for (let glyphId = 0, charstringsLen = charstrings.length; glyphId < charstringsLen; glyphId++) {\n        const charCode = properties.cMap.charCodeOf(glyphId);\n        charCodeToGlyphId[charCode] = glyphId + 1;\n      }\n\n      return charCodeToGlyphId;\n    }\n\n    const glyphNames = [\".notdef\"];\n    let builtInEncoding, glyphId;\n\n    for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n      glyphNames.push(charstrings[glyphId].glyphName);\n    }\n\n    const encoding = properties.builtInEncoding;\n\n    if (encoding) {\n      builtInEncoding = Object.create(null);\n\n      for (const charCode in encoding) {\n        glyphId = glyphNames.indexOf(encoding[charCode]);\n\n        if (glyphId >= 0) {\n          builtInEncoding[charCode] = glyphId;\n        }\n      }\n    }\n\n    return (0, _fonts_utils.type1FontGlyphMapping)(properties, builtInEncoding, glyphNames);\n  }\n\n  hasGlyphId(id) {\n    if (id < 0 || id >= this.numGlyphs) {\n      return false;\n    }\n\n    if (id === 0) {\n      return true;\n    }\n\n    const glyph = this.charstrings[id - 1];\n    return glyph.charstring.length > 0;\n  }\n\n  getSeacs(charstrings) {\n    const seacMap = [];\n\n    for (let i = 0, ii = charstrings.length; i < ii; i++) {\n      const charstring = charstrings[i];\n\n      if (charstring.seac) {\n        seacMap[i + 1] = charstring.seac;\n      }\n    }\n\n    return seacMap;\n  }\n\n  getType2Charstrings(type1Charstrings) {\n    const type2Charstrings = [];\n\n    for (let i = 0, ii = type1Charstrings.length; i < ii; i++) {\n      type2Charstrings.push(type1Charstrings[i].charstring);\n    }\n\n    return type2Charstrings;\n  }\n\n  getType2Subrs(type1Subrs) {\n    let bias = 0;\n    const count = type1Subrs.length;\n\n    if (count < 1133) {\n      bias = 107;\n    } else if (count < 33769) {\n      bias = 1131;\n    } else {\n      bias = 32768;\n    }\n\n    const type2Subrs = [];\n    let i;\n\n    for (i = 0; i < bias; i++) {\n      type2Subrs.push([0x0b]);\n    }\n\n    for (i = 0; i < count; i++) {\n      type2Subrs.push(type1Subrs[i]);\n    }\n\n    return type2Subrs;\n  }\n\n  wrap(name, glyphs, charstrings, subrs, properties) {\n    const cff = new _cff_parser.CFF();\n    cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4);\n    cff.names = [name];\n    const topDict = new _cff_parser.CFFTopDict();\n    topDict.setByName(\"version\", 391);\n    topDict.setByName(\"Notice\", 392);\n    topDict.setByName(\"FullName\", 393);\n    topDict.setByName(\"FamilyName\", 394);\n    topDict.setByName(\"Weight\", 395);\n    topDict.setByName(\"Encoding\", null);\n    topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n    topDict.setByName(\"FontBBox\", properties.bbox);\n    topDict.setByName(\"charset\", null);\n    topDict.setByName(\"CharStrings\", null);\n    topDict.setByName(\"Private\", null);\n    cff.topDict = topDict;\n    const strings = new _cff_parser.CFFStrings();\n    strings.add(\"Version 0.11\");\n    strings.add(\"See original notice\");\n    strings.add(name);\n    strings.add(name);\n    strings.add(\"Medium\");\n    cff.strings = strings;\n    cff.globalSubrIndex = new _cff_parser.CFFIndex();\n    const count = glyphs.length;\n    const charsetArray = [\".notdef\"];\n    let i, ii;\n\n    for (i = 0; i < count; i++) {\n      const glyphName = charstrings[i].glyphName;\n\n      const index = _cff_parser.CFFStandardStrings.indexOf(glyphName);\n\n      if (index === -1) {\n        strings.add(glyphName);\n      }\n\n      charsetArray.push(glyphName);\n    }\n\n    cff.charset = new _cff_parser.CFFCharset(false, 0, charsetArray);\n    const charStringsIndex = new _cff_parser.CFFIndex();\n    charStringsIndex.add([0x8b, 0x0e]);\n\n    for (i = 0; i < count; i++) {\n      charStringsIndex.add(glyphs[i]);\n    }\n\n    cff.charStrings = charStringsIndex;\n    const privateDict = new _cff_parser.CFFPrivateDict();\n    privateDict.setByName(\"Subrs\", null);\n    const fields = [\"BlueValues\", \"OtherBlues\", \"FamilyBlues\", \"FamilyOtherBlues\", \"StemSnapH\", \"StemSnapV\", \"BlueShift\", \"BlueFuzz\", \"BlueScale\", \"LanguageGroup\", \"ExpansionFactor\", \"ForceBold\", \"StdHW\", \"StdVW\"];\n\n    for (i = 0, ii = fields.length; i < ii; i++) {\n      const field = fields[i];\n\n      if (!(field in properties.privateData)) {\n        continue;\n      }\n\n      const value = properties.privateData[field];\n\n      if (Array.isArray(value)) {\n        for (let j = value.length - 1; j > 0; j--) {\n          value[j] -= value[j - 1];\n        }\n      }\n\n      privateDict.setByName(field, value);\n    }\n\n    cff.topDict.privateDict = privateDict;\n    const subrIndex = new _cff_parser.CFFIndex();\n\n    for (i = 0, ii = subrs.length; i < ii; i++) {\n      subrIndex.add(subrs[i]);\n    }\n\n    privateDict.subrsIndex = subrIndex;\n    const compiler = new _cff_parser.CFFCompiler(cff);\n    return compiler.compile();\n  }\n\n}\n\nexports.Type1Font = Type1Font;\n\n/***/ }),\n/* 49 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Type1Parser = void 0;\n\nvar _encodings = __w_pdfjs_require__(37);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _stream = __w_pdfjs_require__(10);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst HINTING_ENABLED = false;\nconst COMMAND_MAP = {\n  hstem: [1],\n  vstem: [3],\n  vmoveto: [4],\n  rlineto: [5],\n  hlineto: [6],\n  vlineto: [7],\n  rrcurveto: [8],\n  callsubr: [10],\n  flex: [12, 35],\n  drop: [12, 18],\n  endchar: [14],\n  rmoveto: [21],\n  hmoveto: [22],\n  vhcurveto: [30],\n  hvcurveto: [31]\n};\n\nclass Type1CharString {\n  constructor() {\n    this.width = 0;\n    this.lsb = 0;\n    this.flexing = false;\n    this.output = [];\n    this.stack = [];\n  }\n\n  convert(encoded, subrs, seacAnalysisEnabled) {\n    const count = encoded.length;\n    let error = false;\n    let wx, sbx, subrNumber;\n\n    for (let i = 0; i < count; i++) {\n      let value = encoded[i];\n\n      if (value < 32) {\n        if (value === 12) {\n          value = (value << 8) + encoded[++i];\n        }\n\n        switch (value) {\n          case 1:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.hstem);\n            break;\n\n          case 3:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.vstem);\n            break;\n\n          case 4:\n            if (this.flexing) {\n              if (this.stack.length < 1) {\n                error = true;\n                break;\n              }\n\n              const dy = this.stack.pop();\n              this.stack.push(0, dy);\n              break;\n            }\n\n            error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n            break;\n\n          case 5:\n            error = this.executeCommand(2, COMMAND_MAP.rlineto);\n            break;\n\n          case 6:\n            error = this.executeCommand(1, COMMAND_MAP.hlineto);\n            break;\n\n          case 7:\n            error = this.executeCommand(1, COMMAND_MAP.vlineto);\n            break;\n\n          case 8:\n            error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n            break;\n\n          case 9:\n            this.stack = [];\n            break;\n\n          case 10:\n            if (this.stack.length < 1) {\n              error = true;\n              break;\n            }\n\n            subrNumber = this.stack.pop();\n\n            if (!subrs[subrNumber]) {\n              error = true;\n              break;\n            }\n\n            error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n            break;\n\n          case 11:\n            return error;\n\n          case 13:\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n\n            wx = this.stack.pop();\n            sbx = this.stack.pop();\n            this.lsb = sbx;\n            this.width = wx;\n            this.stack.push(wx, sbx);\n            error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n            break;\n\n          case 14:\n            this.output.push(COMMAND_MAP.endchar[0]);\n            break;\n\n          case 21:\n            if (this.flexing) {\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n            break;\n\n          case 22:\n            if (this.flexing) {\n              this.stack.push(0);\n              break;\n            }\n\n            error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n            break;\n\n          case 30:\n            error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n            break;\n\n          case 31:\n            error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n            break;\n\n          case (12 << 8) + 0:\n            this.stack = [];\n            break;\n\n          case (12 << 8) + 1:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.vstem);\n            break;\n\n          case (12 << 8) + 2:\n            if (!HINTING_ENABLED) {\n              this.stack = [];\n              break;\n            }\n\n            error = this.executeCommand(2, COMMAND_MAP.hstem);\n            break;\n\n          case (12 << 8) + 6:\n            if (seacAnalysisEnabled) {\n              const asb = this.stack.at(-5);\n              this.seac = this.stack.splice(-4, 4);\n              this.seac[0] += this.lsb - asb;\n              error = this.executeCommand(0, COMMAND_MAP.endchar);\n            } else {\n              error = this.executeCommand(4, COMMAND_MAP.endchar);\n            }\n\n            break;\n\n          case (12 << 8) + 7:\n            if (this.stack.length < 4) {\n              error = true;\n              break;\n            }\n\n            this.stack.pop();\n            wx = this.stack.pop();\n            const sby = this.stack.pop();\n            sbx = this.stack.pop();\n            this.lsb = sbx;\n            this.width = wx;\n            this.stack.push(wx, sbx, sby);\n            error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n            break;\n\n          case (12 << 8) + 12:\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n\n            const num2 = this.stack.pop();\n            const num1 = this.stack.pop();\n            this.stack.push(num1 / num2);\n            break;\n\n          case (12 << 8) + 16:\n            if (this.stack.length < 2) {\n              error = true;\n              break;\n            }\n\n            subrNumber = this.stack.pop();\n            const numArgs = this.stack.pop();\n\n            if (subrNumber === 0 && numArgs === 3) {\n              const flexArgs = this.stack.splice(this.stack.length - 17, 17);\n              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]);\n              error = this.executeCommand(13, COMMAND_MAP.flex, true);\n              this.flexing = false;\n              this.stack.push(flexArgs[15], flexArgs[16]);\n            } else if (subrNumber === 1 && numArgs === 0) {\n              this.flexing = true;\n            }\n\n            break;\n\n          case (12 << 8) + 17:\n            break;\n\n          case (12 << 8) + 33:\n            this.stack = [];\n            break;\n\n          default:\n            (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n            break;\n        }\n\n        if (error) {\n          break;\n        }\n\n        continue;\n      } else if (value <= 246) {\n        value -= 139;\n      } else if (value <= 250) {\n        value = (value - 247) * 256 + encoded[++i] + 108;\n      } else if (value <= 254) {\n        value = -((value - 251) * 256) - encoded[++i] - 108;\n      } else {\n        value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n      }\n\n      this.stack.push(value);\n    }\n\n    return error;\n  }\n\n  executeCommand(howManyArgs, command, keepStack) {\n    const stackLength = this.stack.length;\n\n    if (howManyArgs > stackLength) {\n      return true;\n    }\n\n    const start = stackLength - howManyArgs;\n\n    for (let i = start; i < stackLength; i++) {\n      let value = this.stack[i];\n\n      if (Number.isInteger(value)) {\n        this.output.push(28, value >> 8 & 0xff, value & 0xff);\n      } else {\n        value = 65536 * value | 0;\n        this.output.push(255, value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n      }\n    }\n\n    this.output.push(...command);\n\n    if (keepStack) {\n      this.stack.splice(start, howManyArgs);\n    } else {\n      this.stack.length = 0;\n    }\n\n    return false;\n  }\n\n}\n\nconst EEXEC_ENCRYPT_KEY = 55665;\nconst CHAR_STRS_ENCRYPT_KEY = 4330;\n\nfunction isHexDigit(code) {\n  return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n}\n\nfunction decrypt(data, key, discardNumber) {\n  if (discardNumber >= data.length) {\n    return new Uint8Array(0);\n  }\n\n  const c1 = 52845,\n        c2 = 22719;\n  let r = key | 0,\n      i,\n      j;\n\n  for (i = 0; i < discardNumber; i++) {\n    r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n  }\n\n  const count = data.length - discardNumber;\n  const decrypted = new Uint8Array(count);\n\n  for (i = discardNumber, j = 0; j < count; i++, j++) {\n    const value = data[i];\n    decrypted[j] = value ^ r >> 8;\n    r = (value + r) * c1 + c2 & (1 << 16) - 1;\n  }\n\n  return decrypted;\n}\n\nfunction decryptAscii(data, key, discardNumber) {\n  const c1 = 52845,\n        c2 = 22719;\n  let r = key | 0;\n  const count = data.length,\n        maybeLength = count >>> 1;\n  const decrypted = new Uint8Array(maybeLength);\n  let i, j;\n\n  for (i = 0, j = 0; i < count; i++) {\n    const digit1 = data[i];\n\n    if (!isHexDigit(digit1)) {\n      continue;\n    }\n\n    i++;\n    let digit2;\n\n    while (i < count && !isHexDigit(digit2 = data[i])) {\n      i++;\n    }\n\n    if (i < count) {\n      const value = parseInt(String.fromCharCode(digit1, digit2), 16);\n      decrypted[j++] = value ^ r >> 8;\n      r = (value + r) * c1 + c2 & (1 << 16) - 1;\n    }\n  }\n\n  return decrypted.slice(discardNumber, j);\n}\n\nfunction isSpecial(c) {\n  return c === 0x2f || c === 0x5b || c === 0x5d || c === 0x7b || c === 0x7d || c === 0x28 || c === 0x29;\n}\n\nclass Type1Parser {\n  constructor(stream, encrypted, seacAnalysisEnabled) {\n    if (encrypted) {\n      const data = stream.getBytes();\n      const isBinary = !((isHexDigit(data[0]) || (0, _core_utils.isWhiteSpace)(data[0])) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]) && isHexDigit(data[4]) && isHexDigit(data[5]) && isHexDigit(data[6]) && isHexDigit(data[7]));\n      stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n    }\n\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n    this.stream = stream;\n    this.nextChar();\n  }\n\n  readNumberArray() {\n    this.getToken();\n    const array = [];\n\n    while (true) {\n      const token = this.getToken();\n\n      if (token === null || token === \"]\" || token === \"}\") {\n        break;\n      }\n\n      array.push(parseFloat(token || 0));\n    }\n\n    return array;\n  }\n\n  readNumber() {\n    const token = this.getToken();\n    return parseFloat(token || 0);\n  }\n\n  readInt() {\n    const token = this.getToken();\n    return parseInt(token || 0, 10) | 0;\n  }\n\n  readBoolean() {\n    const token = this.getToken();\n    return token === \"true\" ? 1 : 0;\n  }\n\n  nextChar() {\n    return this.currentChar = this.stream.getByte();\n  }\n\n  prevChar() {\n    this.stream.skip(-2);\n    return this.currentChar = this.stream.getByte();\n  }\n\n  getToken() {\n    let comment = false;\n    let ch = this.currentChar;\n\n    while (true) {\n      if (ch === -1) {\n        return null;\n      }\n\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === 0x25) {\n        comment = true;\n      } else if (!(0, _core_utils.isWhiteSpace)(ch)) {\n        break;\n      }\n\n      ch = this.nextChar();\n    }\n\n    if (isSpecial(ch)) {\n      this.nextChar();\n      return String.fromCharCode(ch);\n    }\n\n    let token = \"\";\n\n    do {\n      token += String.fromCharCode(ch);\n      ch = this.nextChar();\n    } while (ch >= 0 && !(0, _core_utils.isWhiteSpace)(ch) && !isSpecial(ch));\n\n    return token;\n  }\n\n  readCharStrings(bytes, lenIV) {\n    if (lenIV === -1) {\n      return bytes;\n    }\n\n    return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n  }\n\n  extractFontProgram(properties) {\n    const stream = this.stream;\n    const subrs = [],\n          charstrings = [];\n    const privateData = Object.create(null);\n    privateData.lenIV = 4;\n    const program = {\n      subrs: [],\n      charstrings: [],\n      properties: {\n        privateData\n      }\n    };\n    let token, length, data, lenIV;\n\n    while ((token = this.getToken()) !== null) {\n      if (token !== \"/\") {\n        continue;\n      }\n\n      token = this.getToken();\n\n      switch (token) {\n        case \"CharStrings\":\n          this.getToken();\n          this.getToken();\n          this.getToken();\n          this.getToken();\n\n          while (true) {\n            token = this.getToken();\n\n            if (token === null || token === \"end\") {\n              break;\n            }\n\n            if (token !== \"/\") {\n              continue;\n            }\n\n            const glyph = this.getToken();\n            length = this.readInt();\n            this.getToken();\n            data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n            lenIV = program.properties.privateData.lenIV;\n            const encoded = this.readCharStrings(data, lenIV);\n            this.nextChar();\n            token = this.getToken();\n\n            if (token === \"noaccess\") {\n              this.getToken();\n            } else if (token === \"/\") {\n              this.prevChar();\n            }\n\n            charstrings.push({\n              glyph,\n              encoded\n            });\n          }\n\n          break;\n\n        case \"Subrs\":\n          this.readInt();\n          this.getToken();\n\n          while (this.getToken() === \"dup\") {\n            const index = this.readInt();\n            length = this.readInt();\n            this.getToken();\n            data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n            lenIV = program.properties.privateData.lenIV;\n            const encoded = this.readCharStrings(data, lenIV);\n            this.nextChar();\n            token = this.getToken();\n\n            if (token === \"noaccess\") {\n              this.getToken();\n            }\n\n            subrs[index] = encoded;\n          }\n\n          break;\n\n        case \"BlueValues\":\n        case \"OtherBlues\":\n        case \"FamilyBlues\":\n        case \"FamilyOtherBlues\":\n          const blueArray = this.readNumberArray();\n\n          if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n            program.properties.privateData[token] = blueArray;\n          }\n\n          break;\n\n        case \"StemSnapH\":\n        case \"StemSnapV\":\n          program.properties.privateData[token] = this.readNumberArray();\n          break;\n\n        case \"StdHW\":\n        case \"StdVW\":\n          program.properties.privateData[token] = this.readNumberArray()[0];\n          break;\n\n        case \"BlueShift\":\n        case \"lenIV\":\n        case \"BlueFuzz\":\n        case \"BlueScale\":\n        case \"LanguageGroup\":\n        case \"ExpansionFactor\":\n          program.properties.privateData[token] = this.readNumber();\n          break;\n\n        case \"ForceBold\":\n          program.properties.privateData[token] = this.readBoolean();\n          break;\n      }\n    }\n\n    for (const {\n      encoded,\n      glyph\n    } of charstrings) {\n      const charString = new Type1CharString();\n      const error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n      let output = charString.output;\n\n      if (error) {\n        output = [14];\n      }\n\n      const charStringObject = {\n        glyphName: glyph,\n        charstring: output,\n        width: charString.width,\n        lsb: charString.lsb,\n        seac: charString.seac\n      };\n\n      if (glyph === \".notdef\") {\n        program.charstrings.unshift(charStringObject);\n      } else {\n        program.charstrings.push(charStringObject);\n      }\n\n      if (properties.builtInEncoding) {\n        const index = properties.builtInEncoding.indexOf(glyph);\n\n        if (index > -1 && properties.widths[index] === undefined && index >= properties.firstChar && index <= properties.lastChar) {\n          properties.widths[index] = charString.width;\n        }\n      }\n    }\n\n    return program;\n  }\n\n  extractFontHeader(properties) {\n    let token;\n\n    while ((token = this.getToken()) !== null) {\n      if (token !== \"/\") {\n        continue;\n      }\n\n      token = this.getToken();\n\n      switch (token) {\n        case \"FontMatrix\":\n          const matrix = this.readNumberArray();\n          properties.fontMatrix = matrix;\n          break;\n\n        case \"Encoding\":\n          const encodingArg = this.getToken();\n          let encoding;\n\n          if (!/^\\d+$/.test(encodingArg)) {\n            encoding = (0, _encodings.getEncoding)(encodingArg);\n          } else {\n            encoding = [];\n            const size = parseInt(encodingArg, 10) | 0;\n            this.getToken();\n\n            for (let j = 0; j < size; j++) {\n              token = this.getToken();\n\n              while (token !== \"dup\" && token !== \"def\") {\n                token = this.getToken();\n\n                if (token === null) {\n                  return;\n                }\n              }\n\n              if (token === \"def\") {\n                break;\n              }\n\n              const index = this.readInt();\n              this.getToken();\n              const glyph = this.getToken();\n              encoding[index] = glyph;\n              this.getToken();\n            }\n          }\n\n          properties.builtInEncoding = encoding;\n          break;\n\n        case \"FontBBox\":\n          const fontBBox = this.readNumberArray();\n          properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n          properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n          properties.ascentScaled = true;\n          break;\n      }\n    }\n  }\n\n}\n\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 50 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Pattern = void 0;\nexports.getTilingPatternIR = getTilingPatternIR;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _colorspace = __w_pdfjs_require__(14);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nconst ShadingType = {\n  FUNCTION_BASED: 1,\n  AXIAL: 2,\n  RADIAL: 3,\n  FREE_FORM_MESH: 4,\n  LATTICE_FORM_MESH: 5,\n  COONS_PATCH_MESH: 6,\n  TENSOR_PATCH_MESH: 7\n};\n\nclass Pattern {\n  constructor() {\n    (0, _util.unreachable)(\"Cannot initialize Pattern.\");\n  }\n\n  static parseShading(shading, xref, res, handler, pdfFunctionFactory, localColorSpaceCache) {\n    const dict = shading instanceof _base_stream.BaseStream ? shading.dict : shading;\n    const type = dict.get(\"ShadingType\");\n\n    try {\n      switch (type) {\n        case ShadingType.AXIAL:\n        case ShadingType.RADIAL:\n          return new RadialAxialShading(dict, xref, res, pdfFunctionFactory, localColorSpaceCache);\n\n        case ShadingType.FREE_FORM_MESH:\n        case ShadingType.LATTICE_FORM_MESH:\n        case ShadingType.COONS_PATCH_MESH:\n        case ShadingType.TENSOR_PATCH_MESH:\n          return new MeshShading(shading, xref, res, pdfFunctionFactory, localColorSpaceCache);\n\n        default:\n          throw new _util.FormatError(\"Unsupported ShadingType: \" + type);\n      }\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      handler.send(\"UnsupportedFeature\", {\n        featureId: _util.UNSUPPORTED_FEATURES.shadingPattern\n      });\n      (0, _util.warn)(ex);\n      return new DummyShading();\n    }\n  }\n\n}\n\nexports.Pattern = Pattern;\n\nclass BaseShading {\n  static get SMALL_NUMBER() {\n    return (0, _util.shadow)(this, \"SMALL_NUMBER\", 1e-6);\n  }\n\n  constructor() {\n    if (this.constructor === BaseShading) {\n      (0, _util.unreachable)(\"Cannot initialize BaseShading.\");\n    }\n  }\n\n  getIR() {\n    (0, _util.unreachable)(\"Abstract method `getIR` called.\");\n  }\n\n}\n\nclass RadialAxialShading extends BaseShading {\n  constructor(dict, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n    super();\n    this.coordsArr = dict.getArray(\"Coords\");\n    this.shadingType = dict.get(\"ShadingType\");\n\n    const cs = _colorspace.ColorSpace.parse({\n      cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n      xref,\n      resources,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    });\n\n    const bbox = dict.getArray(\"BBox\");\n\n    if (Array.isArray(bbox) && bbox.length === 4) {\n      this.bbox = _util.Util.normalizeRect(bbox);\n    } else {\n      this.bbox = null;\n    }\n\n    let t0 = 0.0,\n        t1 = 1.0;\n\n    if (dict.has(\"Domain\")) {\n      const domainArr = dict.getArray(\"Domain\");\n      t0 = domainArr[0];\n      t1 = domainArr[1];\n    }\n\n    let extendStart = false,\n        extendEnd = false;\n\n    if (dict.has(\"Extend\")) {\n      const extendArr = dict.getArray(\"Extend\");\n      extendStart = extendArr[0];\n      extendEnd = extendArr[1];\n    }\n\n    if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n      const [x1, y1, r1, x2, y2, r2] = this.coordsArr;\n      const distance = Math.hypot(x1 - x2, y1 - y2);\n\n      if (r1 <= r2 + distance && r2 <= r1 + distance) {\n        (0, _util.warn)(\"Unsupported radial gradient.\");\n      }\n    }\n\n    this.extendStart = extendStart;\n    this.extendEnd = extendEnd;\n    const fnObj = dict.getRaw(\"Function\");\n    const fn = pdfFunctionFactory.createFromArray(fnObj);\n    const NUMBER_OF_SAMPLES = 10;\n    const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n    const colorStops = this.colorStops = [];\n\n    if (t0 >= t1 || step <= 0) {\n      (0, _util.info)(\"Bad shading domain.\");\n      return;\n    }\n\n    const color = new Float32Array(cs.numComps),\n          ratio = new Float32Array(1);\n    let rgbColor;\n\n    for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {\n      ratio[0] = t0 + i * step;\n      fn(ratio, 0, color, 0);\n      rgbColor = cs.getRgb(color, 0);\n\n      const cssColor = _util.Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n\n      colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n    }\n\n    let background = \"transparent\";\n\n    if (dict.has(\"Background\")) {\n      rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n      background = _util.Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n    }\n\n    if (!extendStart) {\n      colorStops.unshift([0, background]);\n      colorStops[1][0] += BaseShading.SMALL_NUMBER;\n    }\n\n    if (!extendEnd) {\n      colorStops.at(-1)[0] -= BaseShading.SMALL_NUMBER;\n      colorStops.push([1, background]);\n    }\n\n    this.colorStops = colorStops;\n  }\n\n  getIR() {\n    const coordsArr = this.coordsArr;\n    const shadingType = this.shadingType;\n    let type, p0, p1, r0, r1;\n\n    if (shadingType === ShadingType.AXIAL) {\n      p0 = [coordsArr[0], coordsArr[1]];\n      p1 = [coordsArr[2], coordsArr[3]];\n      r0 = null;\n      r1 = null;\n      type = \"axial\";\n    } else if (shadingType === ShadingType.RADIAL) {\n      p0 = [coordsArr[0], coordsArr[1]];\n      p1 = [coordsArr[3], coordsArr[4]];\n      r0 = coordsArr[2];\n      r1 = coordsArr[5];\n      type = \"radial\";\n    } else {\n      (0, _util.unreachable)(`getPattern type unknown: ${shadingType}`);\n    }\n\n    return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n  }\n\n}\n\nclass MeshStreamReader {\n  constructor(stream, context) {\n    this.stream = stream;\n    this.context = context;\n    this.buffer = 0;\n    this.bufferLength = 0;\n    const numComps = context.numComps;\n    this.tmpCompsBuf = new Float32Array(numComps);\n    const csNumComps = context.colorSpace.numComps;\n    this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n  }\n\n  get hasData() {\n    if (this.stream.end) {\n      return this.stream.pos < this.stream.end;\n    }\n\n    if (this.bufferLength > 0) {\n      return true;\n    }\n\n    const nextByte = this.stream.getByte();\n\n    if (nextByte < 0) {\n      return false;\n    }\n\n    this.buffer = nextByte;\n    this.bufferLength = 8;\n    return true;\n  }\n\n  readBits(n) {\n    let buffer = this.buffer;\n    let bufferLength = this.bufferLength;\n\n    if (n === 32) {\n      if (bufferLength === 0) {\n        return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n      }\n\n      buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n      const nextByte = this.stream.getByte();\n      this.buffer = nextByte & (1 << bufferLength) - 1;\n      return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0;\n    }\n\n    if (n === 8 && bufferLength === 0) {\n      return this.stream.getByte();\n    }\n\n    while (bufferLength < n) {\n      buffer = buffer << 8 | this.stream.getByte();\n      bufferLength += 8;\n    }\n\n    bufferLength -= n;\n    this.bufferLength = bufferLength;\n    this.buffer = buffer & (1 << bufferLength) - 1;\n    return buffer >> bufferLength;\n  }\n\n  align() {\n    this.buffer = 0;\n    this.bufferLength = 0;\n  }\n\n  readFlag() {\n    return this.readBits(this.context.bitsPerFlag);\n  }\n\n  readCoordinate() {\n    const bitsPerCoordinate = this.context.bitsPerCoordinate;\n    const xi = this.readBits(bitsPerCoordinate);\n    const yi = this.readBits(bitsPerCoordinate);\n    const decode = this.context.decode;\n    const scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n    return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n  }\n\n  readComponents() {\n    const numComps = this.context.numComps;\n    const bitsPerComponent = this.context.bitsPerComponent;\n    const scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n    const decode = this.context.decode;\n    const components = this.tmpCompsBuf;\n\n    for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n      const ci = this.readBits(bitsPerComponent);\n      components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n    }\n\n    const color = this.tmpCsCompsBuf;\n\n    if (this.context.colorFn) {\n      this.context.colorFn(components, 0, color, 0);\n    }\n\n    return this.context.colorSpace.getRgb(color, 0);\n  }\n\n}\n\nconst getB = function getBClosure() {\n  function buildB(count) {\n    const lut = [];\n\n    for (let i = 0; i <= count; i++) {\n      const t = i / count,\n            t_ = 1 - t;\n      lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n    }\n\n    return lut;\n  }\n\n  const cache = [];\n  return function (count) {\n    if (!cache[count]) {\n      cache[count] = buildB(count);\n    }\n\n    return cache[count];\n  };\n}();\n\nclass MeshShading extends BaseShading {\n  static get MIN_SPLIT_PATCH_CHUNKS_AMOUNT() {\n    return (0, _util.shadow)(this, \"MIN_SPLIT_PATCH_CHUNKS_AMOUNT\", 3);\n  }\n\n  static get MAX_SPLIT_PATCH_CHUNKS_AMOUNT() {\n    return (0, _util.shadow)(this, \"MAX_SPLIT_PATCH_CHUNKS_AMOUNT\", 20);\n  }\n\n  static get TRIANGLE_DENSITY() {\n    return (0, _util.shadow)(this, \"TRIANGLE_DENSITY\", 20);\n  }\n\n  constructor(stream, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n    super();\n\n    if (!(stream instanceof _base_stream.BaseStream)) {\n      throw new _util.FormatError(\"Mesh data is not a stream\");\n    }\n\n    const dict = stream.dict;\n    this.shadingType = dict.get(\"ShadingType\");\n    const bbox = dict.getArray(\"BBox\");\n\n    if (Array.isArray(bbox) && bbox.length === 4) {\n      this.bbox = _util.Util.normalizeRect(bbox);\n    } else {\n      this.bbox = null;\n    }\n\n    const cs = _colorspace.ColorSpace.parse({\n      cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n      xref,\n      resources,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    });\n\n    this.background = dict.has(\"Background\") ? cs.getRgb(dict.get(\"Background\"), 0) : null;\n    const fnObj = dict.getRaw(\"Function\");\n    const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n    this.coords = [];\n    this.colors = [];\n    this.figures = [];\n    const decodeContext = {\n      bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n      bitsPerComponent: dict.get(\"BitsPerComponent\"),\n      bitsPerFlag: dict.get(\"BitsPerFlag\"),\n      decode: dict.getArray(\"Decode\"),\n      colorFn: fn,\n      colorSpace: cs,\n      numComps: fn ? 1 : cs.numComps\n    };\n    const reader = new MeshStreamReader(stream, decodeContext);\n    let patchMesh = false;\n\n    switch (this.shadingType) {\n      case ShadingType.FREE_FORM_MESH:\n        this._decodeType4Shading(reader);\n\n        break;\n\n      case ShadingType.LATTICE_FORM_MESH:\n        const verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n\n        if (verticesPerRow < 2) {\n          throw new _util.FormatError(\"Invalid VerticesPerRow\");\n        }\n\n        this._decodeType5Shading(reader, verticesPerRow);\n\n        break;\n\n      case ShadingType.COONS_PATCH_MESH:\n        this._decodeType6Shading(reader);\n\n        patchMesh = true;\n        break;\n\n      case ShadingType.TENSOR_PATCH_MESH:\n        this._decodeType7Shading(reader);\n\n        patchMesh = true;\n        break;\n\n      default:\n        (0, _util.unreachable)(\"Unsupported mesh type.\");\n        break;\n    }\n\n    if (patchMesh) {\n      this._updateBounds();\n\n      for (let i = 0, ii = this.figures.length; i < ii; i++) {\n        this._buildFigureFromPatch(i);\n      }\n    }\n\n    this._updateBounds();\n\n    this._packData();\n  }\n\n  _decodeType4Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const operators = [];\n    const ps = [];\n    let verticesLeft = 0;\n\n    while (reader.hasData) {\n      const f = reader.readFlag();\n      const coord = reader.readCoordinate();\n      const color = reader.readComponents();\n\n      if (verticesLeft === 0) {\n        if (!(0 <= f && f <= 2)) {\n          throw new _util.FormatError(\"Unknown type4 flag\");\n        }\n\n        switch (f) {\n          case 0:\n            verticesLeft = 3;\n            break;\n\n          case 1:\n            ps.push(ps.at(-2), ps.at(-1));\n            verticesLeft = 1;\n            break;\n\n          case 2:\n            ps.push(ps.at(-3), ps.at(-1));\n            verticesLeft = 1;\n            break;\n        }\n\n        operators.push(f);\n      }\n\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n      verticesLeft--;\n      reader.align();\n    }\n\n    this.figures.push({\n      type: \"triangles\",\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps)\n    });\n  }\n\n  _decodeType5Shading(reader, verticesPerRow) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = [];\n\n    while (reader.hasData) {\n      const coord = reader.readCoordinate();\n      const color = reader.readComponents();\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n    }\n\n    this.figures.push({\n      type: \"lattice\",\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps),\n      verticesPerRow\n    });\n  }\n\n  _decodeType6Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = new Int32Array(16);\n    const cs = new Int32Array(4);\n\n    while (reader.hasData) {\n      const f = reader.readFlag();\n\n      if (!(0 <= f && f <= 3)) {\n        throw new _util.FormatError(\"Unknown type6 flag\");\n      }\n\n      const pi = coords.length;\n\n      for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n\n      const ci = colors.length;\n\n      for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n\n      let tmp1, tmp2, tmp3, tmp4;\n\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n\n      ps[5] = coords.length;\n      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]);\n      ps[6] = coords.length;\n      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]);\n      ps[9] = coords.length;\n      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]);\n      ps[10] = coords.length;\n      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]);\n      this.figures.push({\n        type: \"patch\",\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n\n  _decodeType7Shading(reader) {\n    const coords = this.coords;\n    const colors = this.colors;\n    const ps = new Int32Array(16);\n    const cs = new Int32Array(4);\n\n    while (reader.hasData) {\n      const f = reader.readFlag();\n\n      if (!(0 <= f && f <= 3)) {\n        throw new _util.FormatError(\"Unknown type7 flag\");\n      }\n\n      const pi = coords.length;\n\n      for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n\n      const ci = colors.length;\n\n      for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n\n      let tmp1, tmp2, tmp3, tmp4;\n\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[9] = pi + 13;\n          ps[10] = pi + 14;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[5] = pi + 12;\n          ps[6] = pi + 15;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n\n      this.figures.push({\n        type: \"patch\",\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n\n  _buildFigureFromPatch(index) {\n    const figure = this.figures[index];\n    (0, _util.assert)(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n    const coords = this.coords,\n          colors = this.colors;\n    const pi = figure.coords;\n    const ci = figure.colors;\n    const figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    const figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    const figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    const figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    let splitXBy = Math.ceil((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY / (this.bounds[2] - this.bounds[0]));\n    splitXBy = Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n    let splitYBy = Math.ceil((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY / (this.bounds[3] - this.bounds[1]));\n    splitYBy = Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\n    const verticesPerRow = splitXBy + 1;\n    const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n    const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n    let k = 0;\n    const cl = new Uint8Array(3),\n          cr = new Uint8Array(3);\n    const c0 = colors[ci[0]],\n          c1 = colors[ci[1]],\n          c2 = colors[ci[2]],\n          c3 = colors[ci[3]];\n    const bRow = getB(splitYBy),\n          bCol = getB(splitXBy);\n\n    for (let row = 0; row <= splitYBy; row++) {\n      cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n      cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n      cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n      cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n      cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n      cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n\n      for (let col = 0; col <= splitXBy; col++, k++) {\n        if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n          continue;\n        }\n\n        let x = 0,\n            y = 0;\n        let q = 0;\n\n        for (let i = 0; i <= 3; i++) {\n          for (let j = 0; j <= 3; j++, q++) {\n            const m = bRow[row][i] * bCol[col][j];\n            x += coords[pi[q]][0] * m;\n            y += coords[pi[q]][1] * m;\n          }\n        }\n\n        figureCoords[k] = coords.length;\n        coords.push([x, y]);\n        figureColors[k] = colors.length;\n        const newColor = new Uint8Array(3);\n        newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n        newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n        newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n        colors.push(newColor);\n      }\n    }\n\n    figureCoords[0] = pi[0];\n    figureColors[0] = ci[0];\n    figureCoords[splitXBy] = pi[3];\n    figureColors[splitXBy] = ci[1];\n    figureCoords[verticesPerRow * splitYBy] = pi[12];\n    figureColors[verticesPerRow * splitYBy] = ci[2];\n    figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n    figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n    this.figures[index] = {\n      type: \"lattice\",\n      coords: figureCoords,\n      colors: figureColors,\n      verticesPerRow\n    };\n  }\n\n  _updateBounds() {\n    let minX = this.coords[0][0],\n        minY = this.coords[0][1],\n        maxX = minX,\n        maxY = minY;\n\n    for (let i = 1, ii = this.coords.length; i < ii; i++) {\n      const x = this.coords[i][0],\n            y = this.coords[i][1];\n      minX = minX > x ? x : minX;\n      minY = minY > y ? y : minY;\n      maxX = maxX < x ? x : maxX;\n      maxY = maxY < y ? y : maxY;\n    }\n\n    this.bounds = [minX, minY, maxX, maxY];\n  }\n\n  _packData() {\n    let i, ii, j, jj;\n    const coords = this.coords;\n    const coordsPacked = new Float32Array(coords.length * 2);\n\n    for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n      const xy = coords[i];\n      coordsPacked[j++] = xy[0];\n      coordsPacked[j++] = xy[1];\n    }\n\n    this.coords = coordsPacked;\n    const colors = this.colors;\n    const colorsPacked = new Uint8Array(colors.length * 3);\n\n    for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n      const c = colors[i];\n      colorsPacked[j++] = c[0];\n      colorsPacked[j++] = c[1];\n      colorsPacked[j++] = c[2];\n    }\n\n    this.colors = colorsPacked;\n    const figures = this.figures;\n\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      const figure = figures[i],\n            ps = figure.coords,\n            cs = figure.colors;\n\n      for (j = 0, jj = ps.length; j < jj; j++) {\n        ps[j] *= 2;\n        cs[j] *= 3;\n      }\n    }\n  }\n\n  getIR() {\n    return [\"Mesh\", this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.bbox, this.background];\n  }\n\n}\n\nclass DummyShading extends BaseShading {\n  getIR() {\n    return [\"Dummy\"];\n  }\n\n}\n\nfunction getTilingPatternIR(operatorList, dict, color) {\n  const matrix = dict.getArray(\"Matrix\");\n\n  const bbox = _util.Util.normalizeRect(dict.getArray(\"BBox\"));\n\n  const xstep = dict.get(\"XStep\");\n  const ystep = dict.get(\"YStep\");\n  const paintType = dict.get(\"PaintType\");\n  const tilingType = dict.get(\"TilingType\");\n\n  if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n    throw new _util.FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n  }\n\n  return [\"TilingPattern\", color, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\n\n/***/ }),\n/* 51 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getXfaFontDict = getXfaFontDict;\nexports.getXfaFontName = getXfaFontName;\n\nvar _calibri_factors = __w_pdfjs_require__(52);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _helvetica_factors = __w_pdfjs_require__(53);\n\nvar _liberationsans_widths = __w_pdfjs_require__(54);\n\nvar _myriadpro_factors = __w_pdfjs_require__(55);\n\nvar _segoeui_factors = __w_pdfjs_require__(56);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _fonts_utils = __w_pdfjs_require__(38);\n\nconst getXFAFontMap = (0, _core_utils.getLookupTableFactory)(function (t) {\n  t[\"MyriadPro-Regular\"] = t[\"PdfJS-Fallback-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: _myriadpro_factors.MyriadProRegularFactors,\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping,\n    metrics: _myriadpro_factors.MyriadProRegularMetrics\n  };\n  t[\"MyriadPro-Bold\"] = t[\"PdfJS-Fallback-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: _myriadpro_factors.MyriadProBoldFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping,\n    metrics: _myriadpro_factors.MyriadProBoldMetrics\n  };\n  t[\"MyriadPro-It\"] = t[\"MyriadPro-Italic\"] = t[\"PdfJS-Fallback-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: _myriadpro_factors.MyriadProItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping,\n    metrics: _myriadpro_factors.MyriadProItalicMetrics\n  };\n  t[\"MyriadPro-BoldIt\"] = t[\"MyriadPro-BoldItalic\"] = t[\"PdfJS-Fallback-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: _myriadpro_factors.MyriadProBoldItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,\n    metrics: _myriadpro_factors.MyriadProBoldItalicMetrics\n  };\n  t.ArialMT = t.Arial = t[\"Arial-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping\n  };\n  t[\"Arial-BoldMT\"] = t[\"Arial-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping\n  };\n  t[\"Arial-ItalicMT\"] = t[\"Arial-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping\n  };\n  t[\"Arial-BoldItalicMT\"] = t[\"Arial-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping\n  };\n  t[\"Calibri-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: _calibri_factors.CalibriRegularFactors,\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping,\n    metrics: _calibri_factors.CalibriRegularMetrics\n  };\n  t[\"Calibri-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: _calibri_factors.CalibriBoldFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping,\n    metrics: _calibri_factors.CalibriBoldMetrics\n  };\n  t[\"Calibri-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: _calibri_factors.CalibriItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping,\n    metrics: _calibri_factors.CalibriItalicMetrics\n  };\n  t[\"Calibri-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: _calibri_factors.CalibriBoldItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,\n    metrics: _calibri_factors.CalibriBoldItalicMetrics\n  };\n  t[\"Segoeui-Regular\"] = {\n    name: \"LiberationSans-Regular\",\n    factors: _segoeui_factors.SegoeuiRegularFactors,\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping,\n    metrics: _segoeui_factors.SegoeuiRegularMetrics\n  };\n  t[\"Segoeui-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: _segoeui_factors.SegoeuiBoldFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping,\n    metrics: _segoeui_factors.SegoeuiBoldMetrics\n  };\n  t[\"Segoeui-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: _segoeui_factors.SegoeuiItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping,\n    metrics: _segoeui_factors.SegoeuiItalicMetrics\n  };\n  t[\"Segoeui-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: _segoeui_factors.SegoeuiBoldItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,\n    metrics: _segoeui_factors.SegoeuiBoldItalicMetrics\n  };\n  t[\"Helvetica-Regular\"] = t.Helvetica = {\n    name: \"LiberationSans-Regular\",\n    factors: _helvetica_factors.HelveticaRegularFactors,\n    baseWidths: _liberationsans_widths.LiberationSansRegularWidths,\n    baseMapping: _liberationsans_widths.LiberationSansRegularMapping,\n    metrics: _helvetica_factors.HelveticaRegularMetrics\n  };\n  t[\"Helvetica-Bold\"] = {\n    name: \"LiberationSans-Bold\",\n    factors: _helvetica_factors.HelveticaBoldFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldMapping,\n    metrics: _helvetica_factors.HelveticaBoldMetrics\n  };\n  t[\"Helvetica-Italic\"] = {\n    name: \"LiberationSans-Italic\",\n    factors: _helvetica_factors.HelveticaItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansItalicMapping,\n    metrics: _helvetica_factors.HelveticaItalicMetrics\n  };\n  t[\"Helvetica-BoldItalic\"] = {\n    name: \"LiberationSans-BoldItalic\",\n    factors: _helvetica_factors.HelveticaBoldItalicFactors,\n    baseWidths: _liberationsans_widths.LiberationSansBoldItalicWidths,\n    baseMapping: _liberationsans_widths.LiberationSansBoldItalicMapping,\n    metrics: _helvetica_factors.HelveticaBoldItalicMetrics\n  };\n});\n\nfunction getXfaFontName(name) {\n  const fontName = (0, _fonts_utils.normalizeFontName)(name);\n  const fontMap = getXFAFontMap();\n  return fontMap[fontName];\n}\n\nfunction getXfaFontWidths(name) {\n  const info = getXfaFontName(name);\n\n  if (!info) {\n    return null;\n  }\n\n  const {\n    baseWidths,\n    baseMapping,\n    factors\n  } = info;\n  let rescaledBaseWidths;\n\n  if (!factors) {\n    rescaledBaseWidths = baseWidths;\n  } else {\n    rescaledBaseWidths = baseWidths.map((w, i) => w * factors[i]);\n  }\n\n  let currentCode = -2;\n  let currentArray;\n  const newWidths = [];\n\n  for (const [unicode, glyphIndex] of baseMapping.map((charUnicode, index) => [charUnicode, index]).sort(([unicode1], [unicode2]) => unicode1 - unicode2)) {\n    if (unicode === -1) {\n      continue;\n    }\n\n    if (unicode === currentCode + 1) {\n      currentArray.push(rescaledBaseWidths[glyphIndex]);\n      currentCode += 1;\n    } else {\n      currentCode = unicode;\n      currentArray = [rescaledBaseWidths[glyphIndex]];\n      newWidths.push(unicode, currentArray);\n    }\n  }\n\n  return newWidths;\n}\n\nfunction getXfaFontDict(name) {\n  const widths = getXfaFontWidths(name);\n  const dict = new _primitives.Dict(null);\n  dict.set(\"BaseFont\", _primitives.Name.get(name));\n  dict.set(\"Type\", _primitives.Name.get(\"Font\"));\n  dict.set(\"Subtype\", _primitives.Name.get(\"CIDFontType2\"));\n  dict.set(\"Encoding\", _primitives.Name.get(\"Identity-H\"));\n  dict.set(\"CIDToGIDMap\", _primitives.Name.get(\"Identity\"));\n  dict.set(\"W\", widths);\n  dict.set(\"FirstChar\", widths[0]);\n  dict.set(\"LastChar\", widths.at(-2) + widths.at(-1).length - 1);\n  const descriptor = new _primitives.Dict(null);\n  dict.set(\"FontDescriptor\", descriptor);\n  const systemInfo = new _primitives.Dict(null);\n  systemInfo.set(\"Ordering\", \"Identity\");\n  systemInfo.set(\"Registry\", \"Adobe\");\n  systemInfo.set(\"Supplement\", 0);\n  dict.set(\"CIDSystemInfo\", systemInfo);\n  return dict;\n}\n\n/***/ }),\n/* 52 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CalibriRegularMetrics = exports.CalibriRegularFactors = exports.CalibriItalicMetrics = exports.CalibriItalicFactors = exports.CalibriBoldMetrics = exports.CalibriBoldItalicMetrics = exports.CalibriBoldItalicFactors = exports.CalibriBoldFactors = void 0;\nconst CalibriBoldFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795, 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577, 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176, 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401, 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343, 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518, 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785, 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785, 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762, 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785, 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823, 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785, 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958, 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029, 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257, 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943, 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819, 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211, 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813, 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638, 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926, 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90264, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1, 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527, 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 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, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.CalibriBoldFactors = CalibriBoldFactors;\nconst CalibriBoldMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nexports.CalibriBoldMetrics = CalibriBoldMetrics;\nconst CalibriBoldItalicFactors = [1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795, 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577, 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908, 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401, 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411, 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938, 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887, 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411, 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289, 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921, 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331, 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958, 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908, 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387, 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346, 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356, 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938, 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466, 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733, 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988, 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581, 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015, 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90631, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794, 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527, 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 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, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.CalibriBoldItalicFactors = CalibriBoldItalicFactors;\nconst CalibriBoldItalicMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nexports.CalibriBoldItalicMetrics = CalibriBoldItalicMetrics;\nconst CalibriItalicFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374, 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306, 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245, 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918, 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562, 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118, 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274, 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245, 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875, 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105, 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249, 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118, 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776, 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306, 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824, 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206, 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249, 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782, 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516, 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297, 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507, 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248, 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89693, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309, 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055, 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 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, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.CalibriItalicFactors = CalibriItalicFactors;\nconst CalibriItalicMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nexports.CalibriItalicMetrics = CalibriItalicMetrics;\nconst CalibriRegularFactors = [1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503, 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306, 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128, 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297, 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469, 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284, 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464, 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469, 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675, 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105, 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872, 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429, 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122, 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692, 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128, 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254, 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275, 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122, 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772, 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018, 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516, 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442, 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181, 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88844, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986, 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055, 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 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, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.CalibriRegularFactors = CalibriRegularFactors;\nconst CalibriRegularMetrics = {\n  lineHeight: 1.2207,\n  lineGap: 0.2207\n};\nexports.CalibriRegularMetrics = CalibriRegularMetrics;\n\n/***/ }),\n/* 53 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.HelveticaRegularMetrics = exports.HelveticaRegularFactors = exports.HelveticaItalicMetrics = exports.HelveticaItalicFactors = exports.HelveticaBoldMetrics = exports.HelveticaBoldItalicMetrics = exports.HelveticaBoldItalicFactors = exports.HelveticaBoldFactors = void 0;\nconst HelveticaBoldFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973, 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069, 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001, 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995, 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087, 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056, 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006, 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019, 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942, 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944, 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057, 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994, 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973, 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999, 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041, 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973, 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026, 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.HelveticaBoldFactors = HelveticaBoldFactors;\nconst HelveticaBoldMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.HelveticaBoldMetrics = HelveticaBoldMetrics;\nconst HelveticaBoldItalicFactors = [0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998, 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022, 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1, 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064, 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014, 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064, 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948, 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035, 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967, 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001, 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977, 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001, 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999, 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995, 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026, 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999, 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973, 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975, 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1, 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.HelveticaBoldItalicFactors = HelveticaBoldItalicFactors;\nconst HelveticaBoldItalicMetrics = {\n  lineHeight: 1.35,\n  lineGap: 0.2\n};\nexports.HelveticaBoldItalicMetrics = HelveticaBoldItalicMetrics;\nconst HelveticaItalicFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013, 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022, 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1, 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945, 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962, 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036, 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036, 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006, 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001, 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954, 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001, 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016, 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089, 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973, 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1, 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023, 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1, 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1, 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.HelveticaItalicFactors = HelveticaItalicFactors;\nconst HelveticaItalicMetrics = {\n  lineHeight: 1.35,\n  lineGap: 0.2\n};\nexports.HelveticaItalicMetrics = HelveticaItalicMetrics;\nconst HelveticaRegularFactors = [0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924, 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941, 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022, 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1, 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978, 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1, 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023, 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023, 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006, 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962, 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035, 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053, 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043, 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073, 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1, 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1, 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006, 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1, 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.HelveticaRegularFactors = HelveticaRegularFactors;\nconst HelveticaRegularMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.HelveticaRegularMetrics = HelveticaRegularMetrics;\n\n/***/ }),\n/* 54 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.LiberationSansRegularWidths = exports.LiberationSansRegularMapping = exports.LiberationSansItalicWidths = exports.LiberationSansItalicMapping = exports.LiberationSansBoldWidths = exports.LiberationSansBoldMapping = exports.LiberationSansBoldItalicWidths = exports.LiberationSansBoldItalicMapping = void 0;\nconst LiberationSansBoldWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906, 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722, 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278, 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278, 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753, 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556, 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626, 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730, 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556, 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875, 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417, 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487, 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333];\nexports.LiberationSansBoldWidths = LiberationSansBoldWidths;\nconst LiberationSansBoldMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nexports.LiberationSansBoldMapping = LiberationSansBoldMapping;\nconst LiberationSansBoldItalicWidths = [365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611, 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906, 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722, 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278, 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278, 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773, 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556, 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643, 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729, 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556, 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885, 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469, 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575, 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552, 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333, 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600, 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333];\nexports.LiberationSansBoldItalicWidths = LiberationSansBoldItalicWidths;\nconst LiberationSansBoldItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nexports.LiberationSansBoldItalicMapping = LiberationSansBoldItalicMapping;\nconst LiberationSansItalicWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556, 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846, 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667, 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278, 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222, 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728, 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500, 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614, 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727, 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556, 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835, 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378, 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492, 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285];\nexports.LiberationSansItalicWidths = LiberationSansItalicWidths;\nconst LiberationSansItalicMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nexports.LiberationSansItalicMapping = LiberationSansItalicMapping;\nconst LiberationSansRegularWidths = [365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722, 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278, 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556, 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778, 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838, 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667, 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278, 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222, 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713, 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500, 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604, 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740, 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556, 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823, 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365, 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489, 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552, 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333, 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600, 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604, 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285];\nexports.LiberationSansRegularWidths = LiberationSansRegularWidths;\nconst LiberationSansRegularMapping = [-1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593, 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1];\nexports.LiberationSansRegularMapping = LiberationSansRegularMapping;\n\n/***/ }),\n/* 55 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MyriadProRegularMetrics = exports.MyriadProRegularFactors = exports.MyriadProItalicMetrics = exports.MyriadProItalicFactors = exports.MyriadProBoldMetrics = exports.MyriadProBoldItalicMetrics = exports.MyriadProBoldItalicFactors = exports.MyriadProBoldFactors = void 0;\nconst MyriadProBoldFactors = [1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884, 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582, 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275, 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179, 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083, 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903, 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933, 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407, 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938, 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793, 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295, 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1, 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061, 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179, 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438, 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938, 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446, 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039, 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768, 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1, 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1, 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446, 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646, 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713, 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083, 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446, 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1, 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261, 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019, 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156, 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704, 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933, 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933, 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367, 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774, 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 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, 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, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083, 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582, 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1, 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169, 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595, 1.08595, 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, 1, 1, 1, 1, 1, 1.16161, 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];\nexports.MyriadProBoldFactors = MyriadProBoldFactors;\nconst MyriadProBoldMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.MyriadProBoldMetrics = MyriadProBoldMetrics;\nconst MyriadProBoldItalicFactors = [1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222, 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582, 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655, 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222, 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605, 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058, 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796, 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168, 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236, 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276, 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074, 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1, 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043, 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729, 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621, 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058, 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216, 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381, 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595, 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364, 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783, 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523, 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036, 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726, 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222, 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513, 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077, 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651, 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236, 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1, 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275, 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927, 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805, 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655, 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275, 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886, 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276, 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699, 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646, 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646, 0.85923, 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, 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, 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694, 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896, 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1, 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026, 1.08595, 1.08595, 1, 1.08595, 1.08595, 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, 1, 1, 1, 1, 1, 1.20006, 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];\nexports.MyriadProBoldItalicFactors = MyriadProBoldItalicFactors;\nconst MyriadProBoldItalicMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.MyriadProBoldItalicMetrics = MyriadProBoldItalicMetrics;\nconst MyriadProItalicFactors = [1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307, 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945, 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058, 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125, 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588, 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832, 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012, 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075, 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493, 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537, 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537, 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353, 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446, 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864, 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588, 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512, 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424, 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882, 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1, 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728, 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475, 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865, 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867, 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866, 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512, 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773, 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012, 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901, 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947, 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588, 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701, 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386, 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298, 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787, 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737, 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859, 0.91123, 0.86799, 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, 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, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219, 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027, 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1, 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233, 1.08595, 1.08595, 1, 1.08595, 1.08595, 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, 1, 1, 1, 1, 1, 1.05233, 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];\nexports.MyriadProItalicFactors = MyriadProItalicFactors;\nconst MyriadProItalicMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.MyriadProItalicMetrics = MyriadProItalicMetrics;\nconst MyriadProRegularFactors = [1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706, 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002, 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051, 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761, 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111, 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231, 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938, 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137, 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034, 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332, 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519, 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339, 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023, 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858, 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611, 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896, 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224, 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595, 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755, 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284, 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377, 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441, 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991, 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434, 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1, 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856, 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936, 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138, 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226, 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023, 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297, 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157, 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088, 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938, 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007, 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 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, 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, 0.89633, 1.01915, 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1, 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903, 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241, 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1, 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1, 1.08595, 1.08595, 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, 1, 1, 1, 1, 1, 1.05638, 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];\nexports.MyriadProRegularFactors = MyriadProRegularFactors;\nconst MyriadProRegularMetrics = {\n  lineHeight: 1.2,\n  lineGap: 0.2\n};\nexports.MyriadProRegularMetrics = MyriadProRegularMetrics;\n\n/***/ }),\n/* 56 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.SegoeuiRegularMetrics = exports.SegoeuiRegularFactors = exports.SegoeuiItalicMetrics = exports.SegoeuiItalicFactors = exports.SegoeuiBoldMetrics = exports.SegoeuiBoldItalicMetrics = exports.SegoeuiBoldItalicFactors = exports.SegoeuiBoldFactors = void 0;\nconst SegoeuiBoldFactors = [1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647, 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847, 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406, 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489, 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361, 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304, 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527, 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862, 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579, 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727, 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826, 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866, 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795, 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426, 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135, 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278, 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826, 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1, 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285, 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418, 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251, 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931, 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752, 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733, 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923, 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912, 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167, 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134, 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889, 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996, 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008, 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008, 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434, 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439, 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09466, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511, 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1, 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633, 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1, 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416, 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004, 1.29004, 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.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.SegoeuiBoldFactors = SegoeuiBoldFactors;\nconst SegoeuiBoldMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nexports.SegoeuiBoldMetrics = SegoeuiBoldMetrics;\nconst SegoeuiBoldItalicFactors = [1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953, 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378, 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723, 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128, 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527, 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293, 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042, 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236, 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922, 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107, 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754, 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047, 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356, 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429, 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552, 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135, 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236, 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165, 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922, 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363, 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042, 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236, 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922, 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552, 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641, 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168, 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385, 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126, 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205, 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815, 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552, 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945, 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961, 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518, 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377, 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514, 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09097, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777, 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1, 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633, 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1, 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279, 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416, 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004, 1.29004, 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.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.SegoeuiBoldItalicFactors = SegoeuiBoldItalicFactors;\nconst SegoeuiBoldItalicMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nexports.SegoeuiBoldItalicMetrics = SegoeuiBoldItalicMetrics;\nconst SegoeuiItalicFactors = [1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373, 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383, 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308, 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016, 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989, 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143, 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627, 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454, 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225, 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973, 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748, 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781, 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971, 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836, 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782, 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402, 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146, 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225, 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351, 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729, 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454, 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484, 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231, 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989, 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225, 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1, 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043, 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498, 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965, 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2, 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924, 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642, 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284, 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205, 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119, 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679, 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675, 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973, 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945, 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621, 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836, 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622, 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 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.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.SegoeuiItalicFactors = SegoeuiItalicFactors;\nconst SegoeuiItalicMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nexports.SegoeuiItalicMetrics = SegoeuiItalicMetrics;\nconst SegoeuiRegularFactors = [1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985, 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084, 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831, 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968, 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433, 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484, 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011, 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399, 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043, 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912, 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808, 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032, 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734, 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782, 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714, 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383, 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527, 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923, 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706, 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093, 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1, 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011, 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298, 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444, 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066, 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771, 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287, 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571, 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771, 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572, 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366, 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491, 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796, 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287, 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424, 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424, 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087, 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205, 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03719, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965, 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196, 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714, 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238, 1.24822, 1.24822, 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.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1, 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];\nexports.SegoeuiRegularFactors = SegoeuiRegularFactors;\nconst SegoeuiRegularMetrics = {\n  lineHeight: 1.33008,\n  lineGap: 0\n};\nexports.SegoeuiRegularMetrics = SegoeuiRegularMetrics;\n\n/***/ }),\n/* 57 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PostScriptEvaluator = exports.PostScriptCompiler = exports.PDFFunctionFactory = void 0;\nexports.isPDFFunction = isPDFFunction;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _ps_parser = __w_pdfjs_require__(58);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _image_utils = __w_pdfjs_require__(59);\n\nclass PDFFunctionFactory {\n  constructor({\n    xref,\n    isEvalSupported = true\n  }) {\n    this.xref = xref;\n    this.isEvalSupported = isEvalSupported !== false;\n  }\n\n  create(fn) {\n    const cachedFunction = this.getCached(fn);\n\n    if (cachedFunction) {\n      return cachedFunction;\n    }\n\n    const parsedFunction = PDFFunction.parse({\n      xref: this.xref,\n      isEvalSupported: this.isEvalSupported,\n      fn: fn instanceof _primitives.Ref ? this.xref.fetch(fn) : fn\n    });\n\n    this._cache(fn, parsedFunction);\n\n    return parsedFunction;\n  }\n\n  createFromArray(fnObj) {\n    const cachedFunction = this.getCached(fnObj);\n\n    if (cachedFunction) {\n      return cachedFunction;\n    }\n\n    const parsedFunction = PDFFunction.parseArray({\n      xref: this.xref,\n      isEvalSupported: this.isEvalSupported,\n      fnObj: fnObj instanceof _primitives.Ref ? this.xref.fetch(fnObj) : fnObj\n    });\n\n    this._cache(fnObj, parsedFunction);\n\n    return parsedFunction;\n  }\n\n  getCached(cacheKey) {\n    let fnRef;\n\n    if (cacheKey instanceof _primitives.Ref) {\n      fnRef = cacheKey;\n    } else if (cacheKey instanceof _primitives.Dict) {\n      fnRef = cacheKey.objId;\n    } else if (cacheKey instanceof _base_stream.BaseStream) {\n      fnRef = cacheKey.dict && cacheKey.dict.objId;\n    }\n\n    if (fnRef) {\n      const localFunction = this._localFunctionCache.getByRef(fnRef);\n\n      if (localFunction) {\n        return localFunction;\n      }\n    }\n\n    return null;\n  }\n\n  _cache(cacheKey, parsedFunction) {\n    if (!parsedFunction) {\n      throw new Error('PDFFunctionFactory._cache - expected \"parsedFunction\" argument.');\n    }\n\n    let fnRef;\n\n    if (cacheKey instanceof _primitives.Ref) {\n      fnRef = cacheKey;\n    } else if (cacheKey instanceof _primitives.Dict) {\n      fnRef = cacheKey.objId;\n    } else if (cacheKey instanceof _base_stream.BaseStream) {\n      fnRef = cacheKey.dict && cacheKey.dict.objId;\n    }\n\n    if (fnRef) {\n      this._localFunctionCache.set(null, fnRef, parsedFunction);\n    }\n  }\n\n  get _localFunctionCache() {\n    return (0, _util.shadow)(this, \"_localFunctionCache\", new _image_utils.LocalFunctionCache());\n  }\n\n}\n\nexports.PDFFunctionFactory = PDFFunctionFactory;\n\nfunction toNumberArray(arr) {\n  if (!Array.isArray(arr)) {\n    return null;\n  }\n\n  const length = arr.length;\n\n  for (let i = 0; i < length; i++) {\n    if (typeof arr[i] !== \"number\") {\n      const result = new Array(length);\n\n      for (let j = 0; j < length; j++) {\n        result[j] = +arr[j];\n      }\n\n      return result;\n    }\n  }\n\n  return arr;\n}\n\nclass PDFFunction {\n  static getSampleArray(size, outputSize, bps, stream) {\n    let i, ii;\n    let length = 1;\n\n    for (i = 0, ii = size.length; i < ii; i++) {\n      length *= size[i];\n    }\n\n    length *= outputSize;\n    const array = new Array(length);\n    let codeSize = 0;\n    let codeBuf = 0;\n    const sampleMul = 1.0 / (2.0 ** bps - 1);\n    const strBytes = stream.getBytes((length * bps + 7) / 8);\n    let strIdx = 0;\n\n    for (i = 0; i < length; i++) {\n      while (codeSize < bps) {\n        codeBuf <<= 8;\n        codeBuf |= strBytes[strIdx++];\n        codeSize += 8;\n      }\n\n      codeSize -= bps;\n      array[i] = (codeBuf >> codeSize) * sampleMul;\n      codeBuf &= (1 << codeSize) - 1;\n    }\n\n    return array;\n  }\n\n  static parse({\n    xref,\n    isEvalSupported,\n    fn\n  }) {\n    const dict = fn.dict || fn;\n    const typeNum = dict.get(\"FunctionType\");\n\n    switch (typeNum) {\n      case 0:\n        return this.constructSampled({\n          xref,\n          isEvalSupported,\n          fn,\n          dict\n        });\n\n      case 1:\n        break;\n\n      case 2:\n        return this.constructInterpolated({\n          xref,\n          isEvalSupported,\n          dict\n        });\n\n      case 3:\n        return this.constructStiched({\n          xref,\n          isEvalSupported,\n          dict\n        });\n\n      case 4:\n        return this.constructPostScript({\n          xref,\n          isEvalSupported,\n          fn,\n          dict\n        });\n    }\n\n    throw new _util.FormatError(\"Unknown type of function\");\n  }\n\n  static parseArray({\n    xref,\n    isEvalSupported,\n    fnObj\n  }) {\n    if (!Array.isArray(fnObj)) {\n      return this.parse({\n        xref,\n        isEvalSupported,\n        fn: fnObj\n      });\n    }\n\n    const fnArray = [];\n\n    for (let j = 0, jj = fnObj.length; j < jj; j++) {\n      fnArray.push(this.parse({\n        xref,\n        isEvalSupported,\n        fn: xref.fetchIfRef(fnObj[j])\n      }));\n    }\n\n    return function (src, srcOffset, dest, destOffset) {\n      for (let i = 0, ii = fnArray.length; i < ii; i++) {\n        fnArray[i](src, srcOffset, dest, destOffset + i);\n      }\n    };\n  }\n\n  static constructSampled({\n    xref,\n    isEvalSupported,\n    fn,\n    dict\n  }) {\n    function toMultiArray(arr) {\n      const inputLength = arr.length;\n      const out = [];\n      let index = 0;\n\n      for (let i = 0; i < inputLength; i += 2) {\n        out[index++] = [arr[i], arr[i + 1]];\n      }\n\n      return out;\n    }\n\n    function interpolate(x, xmin, xmax, ymin, ymax) {\n      return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n    }\n\n    let domain = toNumberArray(dict.getArray(\"Domain\"));\n    let range = toNumberArray(dict.getArray(\"Range\"));\n\n    if (!domain || !range) {\n      throw new _util.FormatError(\"No domain or range\");\n    }\n\n    const inputSize = domain.length / 2;\n    const outputSize = range.length / 2;\n    domain = toMultiArray(domain);\n    range = toMultiArray(range);\n    const size = toNumberArray(dict.getArray(\"Size\"));\n    const bps = dict.get(\"BitsPerSample\");\n    const order = dict.get(\"Order\") || 1;\n\n    if (order !== 1) {\n      (0, _util.info)(\"No support for cubic spline interpolation: \" + order);\n    }\n\n    let encode = toNumberArray(dict.getArray(\"Encode\"));\n\n    if (!encode) {\n      encode = [];\n\n      for (let i = 0; i < inputSize; ++i) {\n        encode.push([0, size[i] - 1]);\n      }\n    } else {\n      encode = toMultiArray(encode);\n    }\n\n    let decode = toNumberArray(dict.getArray(\"Decode\"));\n\n    if (!decode) {\n      decode = range;\n    } else {\n      decode = toMultiArray(decode);\n    }\n\n    const samples = this.getSampleArray(size, outputSize, bps, fn);\n    return function constructSampledFn(src, srcOffset, dest, destOffset) {\n      const cubeVertices = 1 << inputSize;\n      const cubeN = new Float64Array(cubeVertices);\n      const cubeVertex = new Uint32Array(cubeVertices);\n      let i, j;\n\n      for (j = 0; j < cubeVertices; j++) {\n        cubeN[j] = 1;\n      }\n\n      let k = outputSize,\n          pos = 1;\n\n      for (i = 0; i < inputSize; ++i) {\n        const domain_2i = domain[i][0];\n        const domain_2i_1 = domain[i][1];\n        const xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1);\n        let e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]);\n        const size_i = size[i];\n        e = Math.min(Math.max(e, 0), size_i - 1);\n        const e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n        const n0 = e0 + 1 - e;\n        const n1 = e - e0;\n        const offset0 = e0 * k;\n        const offset1 = offset0 + k;\n\n        for (j = 0; j < cubeVertices; j++) {\n          if (j & pos) {\n            cubeN[j] *= n1;\n            cubeVertex[j] += offset1;\n          } else {\n            cubeN[j] *= n0;\n            cubeVertex[j] += offset0;\n          }\n        }\n\n        k *= size_i;\n        pos <<= 1;\n      }\n\n      for (j = 0; j < outputSize; ++j) {\n        let rj = 0;\n\n        for (i = 0; i < cubeVertices; i++) {\n          rj += samples[cubeVertex[i] + j] * cubeN[i];\n        }\n\n        rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n        dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n      }\n    };\n  }\n\n  static constructInterpolated({\n    xref,\n    isEvalSupported,\n    dict\n  }) {\n    const c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n    const c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n    const n = dict.get(\"N\");\n    const diff = [];\n\n    for (let i = 0, ii = c0.length; i < ii; ++i) {\n      diff.push(c1[i] - c0[i]);\n    }\n\n    const length = diff.length;\n    return function constructInterpolatedFn(src, srcOffset, dest, destOffset) {\n      const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n      for (let j = 0; j < length; ++j) {\n        dest[destOffset + j] = c0[j] + x * diff[j];\n      }\n    };\n  }\n\n  static constructStiched({\n    xref,\n    isEvalSupported,\n    dict\n  }) {\n    const domain = toNumberArray(dict.getArray(\"Domain\"));\n\n    if (!domain) {\n      throw new _util.FormatError(\"No domain\");\n    }\n\n    const inputSize = domain.length / 2;\n\n    if (inputSize !== 1) {\n      throw new _util.FormatError(\"Bad domain for stiched function\");\n    }\n\n    const fnRefs = dict.get(\"Functions\");\n    const fns = [];\n\n    for (let i = 0, ii = fnRefs.length; i < ii; ++i) {\n      fns.push(this.parse({\n        xref,\n        isEvalSupported,\n        fn: xref.fetchIfRef(fnRefs[i])\n      }));\n    }\n\n    const bounds = toNumberArray(dict.getArray(\"Bounds\"));\n    const encode = toNumberArray(dict.getArray(\"Encode\"));\n    const tmpBuf = new Float32Array(1);\n    return function constructStichedFn(src, srcOffset, dest, destOffset) {\n      const clip = function constructStichedFromIRClip(v, min, max) {\n        if (v > max) {\n          v = max;\n        } else if (v < min) {\n          v = min;\n        }\n\n        return v;\n      };\n\n      const v = clip(src[srcOffset], domain[0], domain[1]);\n      const length = bounds.length;\n      let i;\n\n      for (i = 0; i < length; ++i) {\n        if (v < bounds[i]) {\n          break;\n        }\n      }\n\n      let dmin = domain[0];\n\n      if (i > 0) {\n        dmin = bounds[i - 1];\n      }\n\n      let dmax = domain[1];\n\n      if (i < bounds.length) {\n        dmax = bounds[i];\n      }\n\n      const rmin = encode[2 * i];\n      const rmax = encode[2 * i + 1];\n      tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n      fns[i](tmpBuf, 0, dest, destOffset);\n    };\n  }\n\n  static constructPostScript({\n    xref,\n    isEvalSupported,\n    fn,\n    dict\n  }) {\n    const domain = toNumberArray(dict.getArray(\"Domain\"));\n    const range = toNumberArray(dict.getArray(\"Range\"));\n\n    if (!domain) {\n      throw new _util.FormatError(\"No domain.\");\n    }\n\n    if (!range) {\n      throw new _util.FormatError(\"No range.\");\n    }\n\n    const lexer = new _ps_parser.PostScriptLexer(fn);\n    const parser = new _ps_parser.PostScriptParser(lexer);\n    const code = parser.parse();\n\n    if (isEvalSupported && _util.FeatureTest.isEvalSupported) {\n      const compiled = new PostScriptCompiler().compile(code, domain, range);\n\n      if (compiled) {\n        return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n      }\n    }\n\n    (0, _util.info)(\"Unable to compile PS function\");\n    const numOutputs = range.length >> 1;\n    const numInputs = domain.length >> 1;\n    const evaluator = new PostScriptEvaluator(code);\n    const cache = Object.create(null);\n    const MAX_CACHE_SIZE = 2048 * 4;\n    let cache_available = MAX_CACHE_SIZE;\n    const tmpBuf = new Float32Array(numInputs);\n    return function constructPostScriptFn(src, srcOffset, dest, destOffset) {\n      let i, value;\n      let key = \"\";\n      const input = tmpBuf;\n\n      for (i = 0; i < numInputs; i++) {\n        value = src[srcOffset + i];\n        input[i] = value;\n        key += value + \"_\";\n      }\n\n      const cachedValue = cache[key];\n\n      if (cachedValue !== undefined) {\n        dest.set(cachedValue, destOffset);\n        return;\n      }\n\n      const output = new Float32Array(numOutputs);\n      const stack = evaluator.execute(input);\n      const stackIndex = stack.length - numOutputs;\n\n      for (i = 0; i < numOutputs; i++) {\n        value = stack[stackIndex + i];\n        let bound = range[i * 2];\n\n        if (value < bound) {\n          value = bound;\n        } else {\n          bound = range[i * 2 + 1];\n\n          if (value > bound) {\n            value = bound;\n          }\n        }\n\n        output[i] = value;\n      }\n\n      if (cache_available > 0) {\n        cache_available--;\n        cache[key] = output;\n      }\n\n      dest.set(output, destOffset);\n    };\n  }\n\n}\n\nfunction isPDFFunction(v) {\n  let fnDict;\n\n  if (typeof v !== \"object\") {\n    return false;\n  } else if (v instanceof _primitives.Dict) {\n    fnDict = v;\n  } else if (v instanceof _base_stream.BaseStream) {\n    fnDict = v.dict;\n  } else {\n    return false;\n  }\n\n  return fnDict.has(\"FunctionType\");\n}\n\nclass PostScriptStack {\n  static get MAX_STACK_SIZE() {\n    return (0, _util.shadow)(this, \"MAX_STACK_SIZE\", 100);\n  }\n\n  constructor(initialStack) {\n    this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n  }\n\n  push(value) {\n    if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) {\n      throw new Error(\"PostScript function stack overflow.\");\n    }\n\n    this.stack.push(value);\n  }\n\n  pop() {\n    if (this.stack.length <= 0) {\n      throw new Error(\"PostScript function stack underflow.\");\n    }\n\n    return this.stack.pop();\n  }\n\n  copy(n) {\n    if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) {\n      throw new Error(\"PostScript function stack overflow.\");\n    }\n\n    const stack = this.stack;\n\n    for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n      stack.push(stack[i]);\n    }\n  }\n\n  index(n) {\n    this.push(this.stack[this.stack.length - n - 1]);\n  }\n\n  roll(n, p) {\n    const stack = this.stack;\n    const l = stack.length - n;\n    const r = stack.length - 1;\n    const c = l + (p - Math.floor(p / n) * n);\n\n    for (let i = l, j = r; i < j; i++, j--) {\n      const t = stack[i];\n      stack[i] = stack[j];\n      stack[j] = t;\n    }\n\n    for (let i = l, j = c - 1; i < j; i++, j--) {\n      const t = stack[i];\n      stack[i] = stack[j];\n      stack[j] = t;\n    }\n\n    for (let i = c, j = r; i < j; i++, j--) {\n      const t = stack[i];\n      stack[i] = stack[j];\n      stack[j] = t;\n    }\n  }\n\n}\n\nclass PostScriptEvaluator {\n  constructor(operators) {\n    this.operators = operators;\n  }\n\n  execute(initialStack) {\n    const stack = new PostScriptStack(initialStack);\n    let counter = 0;\n    const operators = this.operators;\n    const length = operators.length;\n    let operator, a, b;\n\n    while (counter < length) {\n      operator = operators[counter++];\n\n      if (typeof operator === \"number\") {\n        stack.push(operator);\n        continue;\n      }\n\n      switch (operator) {\n        case \"jz\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (!a) {\n            counter = b;\n          }\n\n          break;\n\n        case \"j\":\n          a = stack.pop();\n          counter = a;\n          break;\n\n        case \"abs\":\n          a = stack.pop();\n          stack.push(Math.abs(a));\n          break;\n\n        case \"add\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a + b);\n          break;\n\n        case \"and\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n            stack.push(a && b);\n          } else {\n            stack.push(a & b);\n          }\n\n          break;\n\n        case \"atan\":\n          a = stack.pop();\n          stack.push(Math.atan(a));\n          break;\n\n        case \"bitshift\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (a > 0) {\n            stack.push(a << b);\n          } else {\n            stack.push(a >> b);\n          }\n\n          break;\n\n        case \"ceiling\":\n          a = stack.pop();\n          stack.push(Math.ceil(a));\n          break;\n\n        case \"copy\":\n          a = stack.pop();\n          stack.copy(a);\n          break;\n\n        case \"cos\":\n          a = stack.pop();\n          stack.push(Math.cos(a));\n          break;\n\n        case \"cvi\":\n          a = stack.pop() | 0;\n          stack.push(a);\n          break;\n\n        case \"cvr\":\n          break;\n\n        case \"div\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a / b);\n          break;\n\n        case \"dup\":\n          stack.copy(1);\n          break;\n\n        case \"eq\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a === b);\n          break;\n\n        case \"exch\":\n          stack.roll(2, 1);\n          break;\n\n        case \"exp\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a ** b);\n          break;\n\n        case \"false\":\n          stack.push(false);\n          break;\n\n        case \"floor\":\n          a = stack.pop();\n          stack.push(Math.floor(a));\n          break;\n\n        case \"ge\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a >= b);\n          break;\n\n        case \"gt\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a > b);\n          break;\n\n        case \"idiv\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a / b | 0);\n          break;\n\n        case \"index\":\n          a = stack.pop();\n          stack.index(a);\n          break;\n\n        case \"le\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a <= b);\n          break;\n\n        case \"ln\":\n          a = stack.pop();\n          stack.push(Math.log(a));\n          break;\n\n        case \"log\":\n          a = stack.pop();\n          stack.push(Math.log(a) / Math.LN10);\n          break;\n\n        case \"lt\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a < b);\n          break;\n\n        case \"mod\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a % b);\n          break;\n\n        case \"mul\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a * b);\n          break;\n\n        case \"ne\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a !== b);\n          break;\n\n        case \"neg\":\n          a = stack.pop();\n          stack.push(-a);\n          break;\n\n        case \"not\":\n          a = stack.pop();\n\n          if (typeof a === \"boolean\") {\n            stack.push(!a);\n          } else {\n            stack.push(~a);\n          }\n\n          break;\n\n        case \"or\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n            stack.push(a || b);\n          } else {\n            stack.push(a | b);\n          }\n\n          break;\n\n        case \"pop\":\n          stack.pop();\n          break;\n\n        case \"roll\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.roll(a, b);\n          break;\n\n        case \"round\":\n          a = stack.pop();\n          stack.push(Math.round(a));\n          break;\n\n        case \"sin\":\n          a = stack.pop();\n          stack.push(Math.sin(a));\n          break;\n\n        case \"sqrt\":\n          a = stack.pop();\n          stack.push(Math.sqrt(a));\n          break;\n\n        case \"sub\":\n          b = stack.pop();\n          a = stack.pop();\n          stack.push(a - b);\n          break;\n\n        case \"true\":\n          stack.push(true);\n          break;\n\n        case \"truncate\":\n          a = stack.pop();\n          a = a < 0 ? Math.ceil(a) : Math.floor(a);\n          stack.push(a);\n          break;\n\n        case \"xor\":\n          b = stack.pop();\n          a = stack.pop();\n\n          if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n            stack.push(a !== b);\n          } else {\n            stack.push(a ^ b);\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError(`Unknown operator ${operator}`);\n      }\n    }\n\n    return stack.stack;\n  }\n\n}\n\nexports.PostScriptEvaluator = PostScriptEvaluator;\n\nclass AstNode {\n  constructor(type) {\n    this.type = type;\n  }\n\n  visit(visitor) {\n    (0, _util.unreachable)(\"abstract method\");\n  }\n\n}\n\nclass AstArgument extends AstNode {\n  constructor(index, min, max) {\n    super(\"args\");\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitArgument(this);\n  }\n\n}\n\nclass AstLiteral extends AstNode {\n  constructor(number) {\n    super(\"literal\");\n    this.number = number;\n    this.min = number;\n    this.max = number;\n  }\n\n  visit(visitor) {\n    visitor.visitLiteral(this);\n  }\n\n}\n\nclass AstBinaryOperation extends AstNode {\n  constructor(op, arg1, arg2, min, max) {\n    super(\"binary\");\n    this.op = op;\n    this.arg1 = arg1;\n    this.arg2 = arg2;\n    this.min = min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitBinaryOperation(this);\n  }\n\n}\n\nclass AstMin extends AstNode {\n  constructor(arg, max) {\n    super(\"max\");\n    this.arg = arg;\n    this.min = arg.min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitMin(this);\n  }\n\n}\n\nclass AstVariable extends AstNode {\n  constructor(index, min, max) {\n    super(\"var\");\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  visit(visitor) {\n    visitor.visitVariable(this);\n  }\n\n}\n\nclass AstVariableDefinition extends AstNode {\n  constructor(variable, arg) {\n    super(\"definition\");\n    this.variable = variable;\n    this.arg = arg;\n  }\n\n  visit(visitor) {\n    visitor.visitVariableDefinition(this);\n  }\n\n}\n\nclass ExpressionBuilderVisitor {\n  constructor() {\n    this.parts = [];\n  }\n\n  visitArgument(arg) {\n    this.parts.push(\"Math.max(\", arg.min, \", Math.min(\", arg.max, \", src[srcOffset + \", arg.index, \"]))\");\n  }\n\n  visitVariable(variable) {\n    this.parts.push(\"v\", variable.index);\n  }\n\n  visitLiteral(literal) {\n    this.parts.push(literal.number);\n  }\n\n  visitBinaryOperation(operation) {\n    this.parts.push(\"(\");\n    operation.arg1.visit(this);\n    this.parts.push(\" \", operation.op, \" \");\n    operation.arg2.visit(this);\n    this.parts.push(\")\");\n  }\n\n  visitVariableDefinition(definition) {\n    this.parts.push(\"var \");\n    definition.variable.visit(this);\n    this.parts.push(\" = \");\n    definition.arg.visit(this);\n    this.parts.push(\";\");\n  }\n\n  visitMin(max) {\n    this.parts.push(\"Math.min(\");\n    max.arg.visit(this);\n    this.parts.push(\", \", max.max, \")\");\n  }\n\n  toString() {\n    return this.parts.join(\"\");\n  }\n\n}\n\nfunction buildAddOperation(num1, num2) {\n  if (num2.type === \"literal\" && num2.number === 0) {\n    return num1;\n  }\n\n  if (num1.type === \"literal\" && num1.number === 0) {\n    return num2;\n  }\n\n  if (num2.type === \"literal\" && num1.type === \"literal\") {\n    return new AstLiteral(num1.number + num2.number);\n  }\n\n  return new AstBinaryOperation(\"+\", num1, num2, num1.min + num2.min, num1.max + num2.max);\n}\n\nfunction buildMulOperation(num1, num2) {\n  if (num2.type === \"literal\") {\n    if (num2.number === 0) {\n      return new AstLiteral(0);\n    } else if (num2.number === 1) {\n      return num1;\n    } else if (num1.type === \"literal\") {\n      return new AstLiteral(num1.number * num2.number);\n    }\n  }\n\n  if (num1.type === \"literal\") {\n    if (num1.number === 0) {\n      return new AstLiteral(0);\n    } else if (num1.number === 1) {\n      return num2;\n    }\n  }\n\n  const min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n  const max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n  return new AstBinaryOperation(\"*\", num1, num2, min, max);\n}\n\nfunction buildSubOperation(num1, num2) {\n  if (num2.type === \"literal\") {\n    if (num2.number === 0) {\n      return num1;\n    } else if (num1.type === \"literal\") {\n      return new AstLiteral(num1.number - num2.number);\n    }\n  }\n\n  if (num2.type === \"binary\" && num2.op === \"-\" && num1.type === \"literal\" && num1.number === 1 && num2.arg1.type === \"literal\" && num2.arg1.number === 1) {\n    return num2.arg2;\n  }\n\n  return new AstBinaryOperation(\"-\", num1, num2, num1.min - num2.max, num1.max - num2.min);\n}\n\nfunction buildMinOperation(num1, max) {\n  if (num1.min >= max) {\n    return new AstLiteral(max);\n  } else if (num1.max <= max) {\n    return num1;\n  }\n\n  return new AstMin(num1, max);\n}\n\nclass PostScriptCompiler {\n  compile(code, domain, range) {\n    const stack = [];\n    const instructions = [];\n    const inputSize = domain.length >> 1,\n          outputSize = range.length >> 1;\n    let lastRegister = 0;\n    let n, j;\n    let num1, num2, ast1, ast2, tmpVar, item;\n\n    for (let i = 0; i < inputSize; i++) {\n      stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n    }\n\n    for (let i = 0, ii = code.length; i < ii; i++) {\n      item = code[i];\n\n      if (typeof item === \"number\") {\n        stack.push(new AstLiteral(item));\n        continue;\n      }\n\n      switch (item) {\n        case \"add\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          num2 = stack.pop();\n          num1 = stack.pop();\n          stack.push(buildAddOperation(num1, num2));\n          break;\n\n        case \"cvr\":\n          if (stack.length < 1) {\n            return null;\n          }\n\n          break;\n\n        case \"mul\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          num2 = stack.pop();\n          num1 = stack.pop();\n          stack.push(buildMulOperation(num1, num2));\n          break;\n\n        case \"sub\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          num2 = stack.pop();\n          num1 = stack.pop();\n          stack.push(buildSubOperation(num1, num2));\n          break;\n\n        case \"exch\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          ast1 = stack.pop();\n          ast2 = stack.pop();\n          stack.push(ast1, ast2);\n          break;\n\n        case \"pop\":\n          if (stack.length < 1) {\n            return null;\n          }\n\n          stack.pop();\n          break;\n\n        case \"index\":\n          if (stack.length < 1) {\n            return null;\n          }\n\n          num1 = stack.pop();\n\n          if (num1.type !== \"literal\") {\n            return null;\n          }\n\n          n = num1.number;\n\n          if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n            return null;\n          }\n\n          ast1 = stack[stack.length - n - 1];\n\n          if (ast1.type === \"literal\" || ast1.type === \"var\") {\n            stack.push(ast1);\n            break;\n          }\n\n          tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n          stack[stack.length - n - 1] = tmpVar;\n          stack.push(tmpVar);\n          instructions.push(new AstVariableDefinition(tmpVar, ast1));\n          break;\n\n        case \"dup\":\n          if (stack.length < 1) {\n            return null;\n          }\n\n          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]) {\n            num1 = stack.pop();\n            stack.push(buildMinOperation(num1, code[i + 1]));\n            i += 6;\n            break;\n          }\n\n          ast1 = stack.at(-1);\n\n          if (ast1.type === \"literal\" || ast1.type === \"var\") {\n            stack.push(ast1);\n            break;\n          }\n\n          tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n          stack[stack.length - 1] = tmpVar;\n          stack.push(tmpVar);\n          instructions.push(new AstVariableDefinition(tmpVar, ast1));\n          break;\n\n        case \"roll\":\n          if (stack.length < 2) {\n            return null;\n          }\n\n          num2 = stack.pop();\n          num1 = stack.pop();\n\n          if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n            return null;\n          }\n\n          j = num2.number;\n          n = num1.number;\n\n          if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) {\n            return null;\n          }\n\n          j = (j % n + n) % n;\n\n          if (j === 0) {\n            break;\n          }\n\n          Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n          break;\n\n        default:\n          return null;\n      }\n    }\n\n    if (stack.length !== outputSize) {\n      return null;\n    }\n\n    const result = [];\n\n    for (const instruction of instructions) {\n      const statementBuilder = new ExpressionBuilderVisitor();\n      instruction.visit(statementBuilder);\n      result.push(statementBuilder.toString());\n    }\n\n    for (let i = 0, ii = stack.length; i < ii; i++) {\n      const expr = stack[i],\n            statementBuilder = new ExpressionBuilderVisitor();\n      expr.visit(statementBuilder);\n      const min = range[i * 2],\n            max = range[i * 2 + 1];\n      const out = [statementBuilder.toString()];\n\n      if (min > expr.min) {\n        out.unshift(\"Math.max(\", min, \", \");\n        out.push(\")\");\n      }\n\n      if (max < expr.max) {\n        out.unshift(\"Math.min(\", max, \", \");\n        out.push(\")\");\n      }\n\n      out.unshift(\"dest[destOffset + \", i, \"] = \");\n      out.push(\";\");\n      result.push(out.join(\"\"));\n    }\n\n    return result.join(\"\\n\");\n  }\n\n}\n\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 58 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PostScriptParser = exports.PostScriptLexer = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nclass PostScriptParser {\n  constructor(lexer) {\n    this.lexer = lexer;\n    this.operators = [];\n    this.token = null;\n    this.prev = null;\n  }\n\n  nextToken() {\n    this.prev = this.token;\n    this.token = this.lexer.getToken();\n  }\n\n  accept(type) {\n    if (this.token.type === type) {\n      this.nextToken();\n      return true;\n    }\n\n    return false;\n  }\n\n  expect(type) {\n    if (this.accept(type)) {\n      return true;\n    }\n\n    throw new _util.FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`);\n  }\n\n  parse() {\n    this.nextToken();\n    this.expect(PostScriptTokenTypes.LBRACE);\n    this.parseBlock();\n    this.expect(PostScriptTokenTypes.RBRACE);\n    return this.operators;\n  }\n\n  parseBlock() {\n    while (true) {\n      if (this.accept(PostScriptTokenTypes.NUMBER)) {\n        this.operators.push(this.prev.value);\n      } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n        this.operators.push(this.prev.value);\n      } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n        this.parseCondition();\n      } else {\n        return;\n      }\n    }\n  }\n\n  parseCondition() {\n    const conditionLocation = this.operators.length;\n    this.operators.push(null, null);\n    this.parseBlock();\n    this.expect(PostScriptTokenTypes.RBRACE);\n\n    if (this.accept(PostScriptTokenTypes.IF)) {\n      this.operators[conditionLocation] = this.operators.length;\n      this.operators[conditionLocation + 1] = \"jz\";\n    } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n      const jumpLocation = this.operators.length;\n      this.operators.push(null, null);\n      const endOfTrue = this.operators.length;\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n      this.expect(PostScriptTokenTypes.IFELSE);\n      this.operators[jumpLocation] = this.operators.length;\n      this.operators[jumpLocation + 1] = \"j\";\n      this.operators[conditionLocation] = endOfTrue;\n      this.operators[conditionLocation + 1] = \"jz\";\n    } else {\n      throw new _util.FormatError(\"PS Function: error parsing conditional.\");\n    }\n  }\n\n}\n\nexports.PostScriptParser = PostScriptParser;\nconst PostScriptTokenTypes = {\n  LBRACE: 0,\n  RBRACE: 1,\n  NUMBER: 2,\n  OPERATOR: 3,\n  IF: 4,\n  IFELSE: 5\n};\n\nclass PostScriptToken {\n  static get opCache() {\n    return (0, _util.shadow)(this, \"opCache\", Object.create(null));\n  }\n\n  constructor(type, value) {\n    this.type = type;\n    this.value = value;\n  }\n\n  static getOperator(op) {\n    const opValue = PostScriptToken.opCache[op];\n\n    if (opValue) {\n      return opValue;\n    }\n\n    return PostScriptToken.opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n  }\n\n  static get LBRACE() {\n    return (0, _util.shadow)(this, \"LBRACE\", new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\"));\n  }\n\n  static get RBRACE() {\n    return (0, _util.shadow)(this, \"RBRACE\", new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\"));\n  }\n\n  static get IF() {\n    return (0, _util.shadow)(this, \"IF\", new PostScriptToken(PostScriptTokenTypes.IF, \"IF\"));\n  }\n\n  static get IFELSE() {\n    return (0, _util.shadow)(this, \"IFELSE\", new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\"));\n  }\n\n}\n\nclass PostScriptLexer {\n  constructor(stream) {\n    this.stream = stream;\n    this.nextChar();\n    this.strBuf = [];\n  }\n\n  nextChar() {\n    return this.currentChar = this.stream.getByte();\n  }\n\n  getToken() {\n    let comment = false;\n    let ch = this.currentChar;\n\n    while (true) {\n      if (ch < 0) {\n        return _primitives.EOF;\n      }\n\n      if (comment) {\n        if (ch === 0x0a || ch === 0x0d) {\n          comment = false;\n        }\n      } else if (ch === 0x25) {\n        comment = true;\n      } else if (!(0, _core_utils.isWhiteSpace)(ch)) {\n        break;\n      }\n\n      ch = this.nextChar();\n    }\n\n    switch (ch | 0) {\n      case 0x30:\n      case 0x31:\n      case 0x32:\n      case 0x33:\n      case 0x34:\n      case 0x35:\n      case 0x36:\n      case 0x37:\n      case 0x38:\n      case 0x39:\n      case 0x2b:\n      case 0x2d:\n      case 0x2e:\n        return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());\n\n      case 0x7b:\n        this.nextChar();\n        return PostScriptToken.LBRACE;\n\n      case 0x7d:\n        this.nextChar();\n        return PostScriptToken.RBRACE;\n    }\n\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    strBuf[0] = String.fromCharCode(ch);\n\n    while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5a || ch >= 0x61 && ch <= 0x7a)) {\n      strBuf.push(String.fromCharCode(ch));\n    }\n\n    const str = strBuf.join(\"\");\n\n    switch (str.toLowerCase()) {\n      case \"if\":\n        return PostScriptToken.IF;\n\n      case \"ifelse\":\n        return PostScriptToken.IFELSE;\n\n      default:\n        return PostScriptToken.getOperator(str);\n    }\n  }\n\n  getNumber() {\n    let ch = this.currentChar;\n    const strBuf = this.strBuf;\n    strBuf.length = 0;\n    strBuf[0] = String.fromCharCode(ch);\n\n    while ((ch = this.nextChar()) >= 0) {\n      if (ch >= 0x30 && ch <= 0x39 || ch === 0x2d || ch === 0x2e) {\n        strBuf.push(String.fromCharCode(ch));\n      } else {\n        break;\n      }\n    }\n\n    const value = parseFloat(strBuf.join(\"\"));\n\n    if (isNaN(value)) {\n      throw new _util.FormatError(`Invalid floating point number: ${value}`);\n    }\n\n    return value;\n  }\n\n}\n\nexports.PostScriptLexer = PostScriptLexer;\n\n/***/ }),\n/* 59 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.LocalTilingPatternCache = exports.LocalImageCache = exports.LocalGStateCache = exports.LocalFunctionCache = exports.LocalColorSpaceCache = exports.GlobalImageCache = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nclass BaseLocalCache {\n  constructor(options) {\n    if (this.constructor === BaseLocalCache) {\n      (0, _util.unreachable)(\"Cannot initialize BaseLocalCache.\");\n    }\n\n    this._onlyRefs = (options && options.onlyRefs) === true;\n\n    if (!this._onlyRefs) {\n      this._nameRefMap = new Map();\n      this._imageMap = new Map();\n    }\n\n    this._imageCache = new _primitives.RefSetCache();\n  }\n\n  getByName(name) {\n    if (this._onlyRefs) {\n      (0, _util.unreachable)(\"Should not call `getByName` method.\");\n    }\n\n    const ref = this._nameRefMap.get(name);\n\n    if (ref) {\n      return this.getByRef(ref);\n    }\n\n    return this._imageMap.get(name) || null;\n  }\n\n  getByRef(ref) {\n    return this._imageCache.get(ref) || null;\n  }\n\n  set(name, ref, data) {\n    (0, _util.unreachable)(\"Abstract method `set` called.\");\n  }\n\n}\n\nclass LocalImageCache extends BaseLocalCache {\n  set(name, ref = null, data) {\n    if (typeof name !== \"string\") {\n      throw new Error('LocalImageCache.set - expected \"name\" argument.');\n    }\n\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n\n      this._nameRefMap.set(name, ref);\n\n      this._imageCache.put(ref, data);\n\n      return;\n    }\n\n    if (this._imageMap.has(name)) {\n      return;\n    }\n\n    this._imageMap.set(name, data);\n  }\n\n}\n\nexports.LocalImageCache = LocalImageCache;\n\nclass LocalColorSpaceCache extends BaseLocalCache {\n  set(name = null, ref = null, data) {\n    if (typeof name !== \"string\" && !ref) {\n      throw new Error('LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.');\n    }\n\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n\n      if (name !== null) {\n        this._nameRefMap.set(name, ref);\n      }\n\n      this._imageCache.put(ref, data);\n\n      return;\n    }\n\n    if (this._imageMap.has(name)) {\n      return;\n    }\n\n    this._imageMap.set(name, data);\n  }\n\n}\n\nexports.LocalColorSpaceCache = LocalColorSpaceCache;\n\nclass LocalFunctionCache extends BaseLocalCache {\n  constructor(options) {\n    super({\n      onlyRefs: true\n    });\n  }\n\n  set(name = null, ref, data) {\n    if (!ref) {\n      throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n    }\n\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n\n    this._imageCache.put(ref, data);\n  }\n\n}\n\nexports.LocalFunctionCache = LocalFunctionCache;\n\nclass LocalGStateCache extends BaseLocalCache {\n  set(name, ref = null, data) {\n    if (typeof name !== \"string\") {\n      throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n    }\n\n    if (ref) {\n      if (this._imageCache.has(ref)) {\n        return;\n      }\n\n      this._nameRefMap.set(name, ref);\n\n      this._imageCache.put(ref, data);\n\n      return;\n    }\n\n    if (this._imageMap.has(name)) {\n      return;\n    }\n\n    this._imageMap.set(name, data);\n  }\n\n}\n\nexports.LocalGStateCache = LocalGStateCache;\n\nclass LocalTilingPatternCache extends BaseLocalCache {\n  constructor(options) {\n    super({\n      onlyRefs: true\n    });\n  }\n\n  set(name = null, ref, data) {\n    if (!ref) {\n      throw new Error('LocalTilingPatternCache.set - expected \"ref\" argument.');\n    }\n\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n\n    this._imageCache.put(ref, data);\n  }\n\n}\n\nexports.LocalTilingPatternCache = LocalTilingPatternCache;\n\nclass GlobalImageCache {\n  static get NUM_PAGES_THRESHOLD() {\n    return (0, _util.shadow)(this, \"NUM_PAGES_THRESHOLD\", 2);\n  }\n\n  static get MIN_IMAGES_TO_CACHE() {\n    return (0, _util.shadow)(this, \"MIN_IMAGES_TO_CACHE\", 10);\n  }\n\n  static get MAX_BYTE_SIZE() {\n    return (0, _util.shadow)(this, \"MAX_BYTE_SIZE\", 40e6);\n  }\n\n  constructor() {\n    this._refCache = new _primitives.RefSetCache();\n    this._imageCache = new _primitives.RefSetCache();\n  }\n\n  get _byteSize() {\n    let byteSize = 0;\n\n    for (const imageData of this._imageCache) {\n      byteSize += imageData.byteSize;\n    }\n\n    return byteSize;\n  }\n\n  get _cacheLimitReached() {\n    if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n      return false;\n    }\n\n    if (this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n      return false;\n    }\n\n    return true;\n  }\n\n  shouldCache(ref, pageIndex) {\n    const pageIndexSet = this._refCache.get(ref);\n\n    const numPages = pageIndexSet ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1) : 1;\n\n    if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return false;\n    }\n\n    if (!this._imageCache.has(ref) && this._cacheLimitReached) {\n      return false;\n    }\n\n    return true;\n  }\n\n  addPageIndex(ref, pageIndex) {\n    let pageIndexSet = this._refCache.get(ref);\n\n    if (!pageIndexSet) {\n      pageIndexSet = new Set();\n\n      this._refCache.put(ref, pageIndexSet);\n    }\n\n    pageIndexSet.add(pageIndex);\n  }\n\n  addByteSize(ref, byteSize) {\n    const imageData = this._imageCache.get(ref);\n\n    if (!imageData) {\n      return;\n    }\n\n    if (imageData.byteSize) {\n      return;\n    }\n\n    imageData.byteSize = byteSize;\n  }\n\n  getData(ref, pageIndex) {\n    const pageIndexSet = this._refCache.get(ref);\n\n    if (!pageIndexSet) {\n      return null;\n    }\n\n    if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n      return null;\n    }\n\n    const imageData = this._imageCache.get(ref);\n\n    if (!imageData) {\n      return null;\n    }\n\n    pageIndexSet.add(pageIndex);\n    return imageData;\n  }\n\n  setData(ref, data) {\n    if (!this._refCache.has(ref)) {\n      throw new Error('GlobalImageCache.setData - expected \"addPageIndex\" to have been called.');\n    }\n\n    if (this._imageCache.has(ref)) {\n      return;\n    }\n\n    if (this._cacheLimitReached) {\n      (0, _util.warn)(\"GlobalImageCache.setData - cache limit reached.\");\n      return;\n    }\n\n    this._imageCache.put(ref, data);\n  }\n\n  clear(onlyData = false) {\n    if (!onlyData) {\n      this._refCache.clear();\n    }\n\n    this._imageCache.clear();\n  }\n\n}\n\nexports.GlobalImageCache = GlobalImageCache;\n\n/***/ }),\n/* 60 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.bidi = bidi;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst 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\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"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\", \"BN\", \"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\"];\nconst arabicTypes = [\"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\", \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"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\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"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\", \"AN\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"];\n\nfunction isOdd(i) {\n  return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n  return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n  let j, jj;\n\n  for (j = start, jj = arr.length; j < jj; ++j) {\n    if (arr[j] !== value) {\n      return j;\n    }\n  }\n\n  return j;\n}\n\nfunction setValues(arr, start, end, value) {\n  for (let j = start; j < end; ++j) {\n    arr[j] = value;\n  }\n}\n\nfunction reverseValues(arr, start, end) {\n  for (let i = start, j = end - 1; i < j; ++i, --j) {\n    const temp = arr[i];\n    arr[i] = arr[j];\n    arr[j] = temp;\n  }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n  let dir = \"ltr\";\n\n  if (vertical) {\n    dir = \"ttb\";\n  } else if (!isLTR) {\n    dir = \"rtl\";\n  }\n\n  return {\n    str,\n    dir\n  };\n}\n\nconst chars = [];\nconst types = [];\n\nfunction bidi(str, startLevel = -1, vertical = false) {\n  let isLTR = true;\n  const strLength = str.length;\n\n  if (strLength === 0 || vertical) {\n    return createBidiText(str, isLTR, vertical);\n  }\n\n  chars.length = strLength;\n  types.length = strLength;\n  let numBidi = 0;\n  let i, ii;\n\n  for (i = 0; i < strLength; ++i) {\n    chars[i] = str.charAt(i);\n    const charCode = str.charCodeAt(i);\n    let charType = \"L\";\n\n    if (charCode <= 0x00ff) {\n      charType = baseTypes[charCode];\n    } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n      charType = \"R\";\n    } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n      charType = arabicTypes[charCode & 0xff];\n\n      if (!charType) {\n        (0, _util.warn)(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n      }\n    } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n      charType = \"AL\";\n    }\n\n    if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n      numBidi++;\n    }\n\n    types[i] = charType;\n  }\n\n  if (numBidi === 0) {\n    isLTR = true;\n    return createBidiText(str, isLTR);\n  }\n\n  if (startLevel === -1) {\n    if (numBidi / strLength < 0.3 && strLength > 4) {\n      isLTR = true;\n      startLevel = 0;\n    } else {\n      isLTR = false;\n      startLevel = 1;\n    }\n  }\n\n  const levels = [];\n\n  for (i = 0; i < strLength; ++i) {\n    levels[i] = startLevel;\n  }\n\n  const e = isOdd(startLevel) ? \"R\" : \"L\";\n  const sor = e;\n  const eor = sor;\n  let lastType = sor;\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"NSM\") {\n      types[i] = lastType;\n    } else {\n      lastType = types[i];\n    }\n  }\n\n  lastType = sor;\n  let t;\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === \"EN\") {\n      types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n      lastType = t;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === \"AL\") {\n      types[i] = \"R\";\n    }\n  }\n\n  for (i = 1; i < strLength - 1; ++i) {\n    if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n      types[i] = \"EN\";\n    }\n\n    if (types[i] === \"CS\" && (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") && types[i + 1] === types[i - 1]) {\n      types[i] = types[i - 1];\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"EN\") {\n      for (let j = i - 1; j >= 0; --j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n\n        types[j] = \"EN\";\n      }\n\n      for (let j = i + 1; j < strLength; ++j) {\n        if (types[j] !== \"ET\") {\n          break;\n        }\n\n        types[j] = \"EN\";\n      }\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n      types[i] = \"ON\";\n    }\n  }\n\n  lastType = sor;\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === \"EN\") {\n      types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n    } else if (t === \"R\" || t === \"L\") {\n      lastType = t;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      const end = findUnequal(types, i + 1, \"ON\");\n      let before = sor;\n\n      if (i > 0) {\n        before = types[i - 1];\n      }\n\n      let after = eor;\n\n      if (end + 1 < strLength) {\n        after = types[end + 1];\n      }\n\n      if (before !== \"L\") {\n        before = \"R\";\n      }\n\n      if (after !== \"L\") {\n        after = \"R\";\n      }\n\n      if (before === after) {\n        setValues(types, i, end, before);\n      }\n\n      i = end - 1;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === \"ON\") {\n      types[i] = e;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (isEven(levels[i])) {\n      if (t === \"R\") {\n        levels[i] += 1;\n      } else if (t === \"AN\" || t === \"EN\") {\n        levels[i] += 2;\n      }\n    } else {\n      if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n        levels[i] += 1;\n      }\n    }\n  }\n\n  let highestLevel = -1;\n  let lowestOddLevel = 99;\n  let level;\n\n  for (i = 0, ii = levels.length; i < ii; ++i) {\n    level = levels[i];\n\n    if (highestLevel < level) {\n      highestLevel = level;\n    }\n\n    if (lowestOddLevel > level && isOdd(level)) {\n      lowestOddLevel = level;\n    }\n  }\n\n  for (level = highestLevel; level >= lowestOddLevel; --level) {\n    let start = -1;\n\n    for (i = 0, ii = levels.length; i < ii; ++i) {\n      if (levels[i] < level) {\n        if (start >= 0) {\n          reverseValues(chars, start, i);\n          start = -1;\n        }\n      } else if (start < 0) {\n        start = i;\n      }\n    }\n\n    if (start >= 0) {\n      reverseValues(chars, start, levels.length);\n    }\n  }\n\n  for (i = 0, ii = chars.length; i < ii; ++i) {\n    const ch = chars[i];\n\n    if (ch === \"<\" || ch === \">\") {\n      chars[i] = \"\";\n    }\n  }\n\n  return createBidiText(chars.join(\"\"), isLTR);\n}\n\n/***/ }),\n/* 61 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n  constructor(seed) {\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n\n  update(input) {\n    let data, length;\n\n    if (typeof input === \"string\") {\n      data = new Uint8Array(input.length * 2);\n      length = 0;\n\n      for (let i = 0, ii = input.length; i < ii; i++) {\n        const code = input.charCodeAt(i);\n\n        if (code <= 0xff) {\n          data[length++] = code;\n        } else {\n          data[length++] = code >>> 8;\n          data[length++] = code & 0xff;\n        }\n      }\n    } else if ((0, _util.isArrayBuffer)(input)) {\n      data = input.slice();\n      length = data.byteLength;\n    } else {\n      throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n    }\n\n    const blockCounts = length >> 2;\n    const tailLength = length - blockCounts * 4;\n    const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n    let k1 = 0,\n        k2 = 0;\n    let h1 = this.h1,\n        h2 = this.h2;\n    const C1 = 0xcc9e2d51,\n          C2 = 0x1b873593;\n    const C1_LOW = C1 & MASK_LOW,\n          C2_LOW = C2 & MASK_LOW;\n\n    for (let i = 0; i < blockCounts; i++) {\n      if (i & 1) {\n        k1 = dataUint32[i];\n        k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n        k1 = k1 << 15 | k1 >>> 17;\n        k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n        h1 ^= k1;\n        h1 = h1 << 13 | h1 >>> 19;\n        h1 = h1 * 5 + 0xe6546b64;\n      } else {\n        k2 = dataUint32[i];\n        k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n        k2 = k2 << 15 | k2 >>> 17;\n        k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n        h2 ^= k2;\n        h2 = h2 << 13 | h2 >>> 19;\n        h2 = h2 * 5 + 0xe6546b64;\n      }\n    }\n\n    k1 = 0;\n\n    switch (tailLength) {\n      case 3:\n        k1 ^= data[blockCounts * 4 + 2] << 16;\n\n      case 2:\n        k1 ^= data[blockCounts * 4 + 1] << 8;\n\n      case 1:\n        k1 ^= data[blockCounts * 4];\n        k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n        k1 = k1 << 15 | k1 >>> 17;\n        k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n        if (blockCounts & 1) {\n          h1 ^= k1;\n        } else {\n          h2 ^= k1;\n        }\n\n    }\n\n    this.h1 = h1;\n    this.h2 = h2;\n  }\n\n  hexdigest() {\n    let h1 = this.h1,\n        h2 = this.h2;\n    h1 ^= h2 >>> 1;\n    h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n    h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n    h1 ^= h2 >>> 1;\n    h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n    h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n    h1 ^= h2 >>> 1;\n    const hex1 = (h1 >>> 0).toString(16),\n          hex2 = (h2 >>> 0).toString(16);\n    return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n  }\n\n}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 62 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.OperatorList = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction addState(parentState, pattern, checkFn, iterateFn, processFn) {\n  let state = parentState;\n\n  for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n    const item = pattern[i];\n    state = state[item] || (state[item] = []);\n  }\n\n  state[pattern.at(-1)] = {\n    checkFn,\n    iterateFn,\n    processFn\n  };\n}\n\nconst InitialState = [];\naddState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {\n  const fnArray = context.fnArray;\n  const iFirstSave = context.iCurr - 3;\n  const pos = (i - iFirstSave) % 4;\n\n  switch (pos) {\n    case 0:\n      return fnArray[i] === _util.OPS.save;\n\n    case 1:\n      return fnArray[i] === _util.OPS.transform;\n\n    case 2:\n      return fnArray[i] === _util.OPS.paintInlineImageXObject;\n\n    case 3:\n      return fnArray[i] === _util.OPS.restore;\n  }\n\n  throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n}, function foundInlineImageGroup(context, i) {\n  const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n  const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n  const MAX_WIDTH = 1000;\n  const IMAGE_PADDING = 1;\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstPIIXO = curr - 1;\n  const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n\n  if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n    return i - (i - iFirstSave) % 4;\n  }\n\n  let maxX = 0;\n  const map = [];\n  let maxLineHeight = 0;\n  let currentX = IMAGE_PADDING,\n      currentY = IMAGE_PADDING;\n\n  for (let q = 0; q < count; q++) {\n    const transform = argsArray[iFirstTransform + (q << 2)];\n    const img = argsArray[iFirstPIIXO + (q << 2)][0];\n\n    if (currentX + img.width > MAX_WIDTH) {\n      maxX = Math.max(maxX, currentX);\n      currentY += maxLineHeight + 2 * IMAGE_PADDING;\n      currentX = 0;\n      maxLineHeight = 0;\n    }\n\n    map.push({\n      transform,\n      x: currentX,\n      y: currentY,\n      w: img.width,\n      h: img.height\n    });\n    currentX += img.width + 2 * IMAGE_PADDING;\n    maxLineHeight = Math.max(maxLineHeight, img.height);\n  }\n\n  const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n  const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n  const imgData = new Uint8Array(imgWidth * imgHeight * 4);\n  const imgRowSize = imgWidth << 2;\n\n  for (let q = 0; q < count; q++) {\n    const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n    const rowSize = map[q].w << 2;\n    let dataOffset = 0;\n    let offset = map[q].x + map[q].y * imgWidth << 2;\n    imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n\n    for (let k = 0, kk = map[q].h; k < kk; k++) {\n      imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n      dataOffset += rowSize;\n      offset += imgRowSize;\n    }\n\n    imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n\n    while (offset >= 0) {\n      data[offset - 4] = data[offset];\n      data[offset - 3] = data[offset + 1];\n      data[offset - 2] = data[offset + 2];\n      data[offset - 1] = data[offset + 3];\n      data[offset + rowSize] = data[offset + rowSize - 4];\n      data[offset + rowSize + 1] = data[offset + rowSize - 3];\n      data[offset + rowSize + 2] = data[offset + rowSize - 2];\n      data[offset + rowSize + 3] = data[offset + rowSize - 1];\n      offset -= imgRowSize;\n    }\n  }\n\n  fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n  argsArray.splice(iFirstSave, count * 4, [{\n    width: imgWidth,\n    height: imgHeight,\n    kind: _util.ImageKind.RGBA_32BPP,\n    data: imgData\n  }, map]);\n  return iFirstSave + 1;\n});\naddState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) {\n  const fnArray = context.fnArray;\n  const iFirstSave = context.iCurr - 3;\n  const pos = (i - iFirstSave) % 4;\n\n  switch (pos) {\n    case 0:\n      return fnArray[i] === _util.OPS.save;\n\n    case 1:\n      return fnArray[i] === _util.OPS.transform;\n\n    case 2:\n      return fnArray[i] === _util.OPS.paintImageMaskXObject;\n\n    case 3:\n      return fnArray[i] === _util.OPS.restore;\n  }\n\n  throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n}, function foundImageMaskGroup(context, i) {\n  const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n  const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n  const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstPIMXO = curr - 1;\n  let count = Math.floor((i - iFirstSave) / 4);\n\n  if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n    return i - (i - iFirstSave) % 4;\n  }\n\n  let isSameImage = false;\n  let iTransform, transformArgs;\n  const firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n  const firstTransformArg0 = argsArray[iFirstTransform][0],\n        firstTransformArg1 = argsArray[iFirstTransform][1],\n        firstTransformArg2 = argsArray[iFirstTransform][2],\n        firstTransformArg3 = argsArray[iFirstTransform][3];\n\n  if (firstTransformArg1 === firstTransformArg2) {\n    isSameImage = true;\n    iTransform = iFirstTransform + 4;\n    let iPIMXO = iFirstPIMXO + 4;\n\n    for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n      transformArgs = argsArray[iTransform];\n\n      if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== firstTransformArg1 || transformArgs[2] !== firstTransformArg2 || transformArgs[3] !== firstTransformArg3) {\n        if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n          isSameImage = false;\n        } else {\n          count = q;\n        }\n\n        break;\n      }\n    }\n  }\n\n  if (isSameImage) {\n    count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n    const positions = new Float32Array(count * 2);\n    iTransform = iFirstTransform;\n\n    for (let q = 0; q < count; q++, iTransform += 4) {\n      transformArgs = argsArray[iTransform];\n      positions[q << 1] = transformArgs[4];\n      positions[(q << 1) + 1] = transformArgs[5];\n    }\n\n    fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n    argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg1, firstTransformArg2, firstTransformArg3, positions]);\n  } else {\n    count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n    const images = [];\n\n    for (let q = 0; q < count; q++) {\n      transformArgs = argsArray[iFirstTransform + (q << 2)];\n      const maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n      images.push({\n        data: maskParams.data,\n        width: maskParams.width,\n        height: maskParams.height,\n        interpolate: maskParams.interpolate,\n        count: maskParams.count,\n        transform: transformArgs\n      });\n    }\n\n    fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n    argsArray.splice(iFirstSave, count * 4, [images]);\n  }\n\n  return iFirstSave + 1;\n});\naddState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n  const argsArray = context.argsArray;\n  const iFirstTransform = context.iCurr - 2;\n  return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\n}, function iterateImageGroup(context, i) {\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const iFirstSave = context.iCurr - 3;\n  const pos = (i - iFirstSave) % 4;\n\n  switch (pos) {\n    case 0:\n      return fnArray[i] === _util.OPS.save;\n\n    case 1:\n      if (fnArray[i] !== _util.OPS.transform) {\n        return false;\n      }\n\n      const iFirstTransform = context.iCurr - 2;\n      const firstTransformArg0 = argsArray[iFirstTransform][0];\n      const firstTransformArg3 = argsArray[iFirstTransform][3];\n\n      if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {\n        return false;\n      }\n\n      return true;\n\n    case 2:\n      if (fnArray[i] !== _util.OPS.paintImageXObject) {\n        return false;\n      }\n\n      const iFirstPIXO = context.iCurr - 1;\n      const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n\n      if (argsArray[i][0] !== firstPIXOArg0) {\n        return false;\n      }\n\n      return true;\n\n    case 3:\n      return fnArray[i] === _util.OPS.restore;\n  }\n\n  throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n}, function (context, i) {\n  const MIN_IMAGES_IN_BLOCK = 3;\n  const MAX_IMAGES_IN_BLOCK = 1000;\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstSave = curr - 3;\n  const iFirstTransform = curr - 2;\n  const iFirstPIXO = curr - 1;\n  const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n  const firstTransformArg0 = argsArray[iFirstTransform][0];\n  const firstTransformArg3 = argsArray[iFirstTransform][3];\n  const count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);\n\n  if (count < MIN_IMAGES_IN_BLOCK) {\n    return i - (i - iFirstSave) % 4;\n  }\n\n  const positions = new Float32Array(count * 2);\n  let iTransform = iFirstTransform;\n\n  for (let q = 0; q < count; q++, iTransform += 4) {\n    const transformArgs = argsArray[iTransform];\n    positions[q << 1] = transformArgs[4];\n    positions[(q << 1) + 1] = transformArgs[5];\n  }\n\n  const args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n  fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n  argsArray.splice(iFirstSave, count * 4, args);\n  return iFirstSave + 1;\n});\naddState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function iterateShowTextGroup(context, i) {\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const iFirstSave = context.iCurr - 4;\n  const pos = (i - iFirstSave) % 5;\n\n  switch (pos) {\n    case 0:\n      return fnArray[i] === _util.OPS.beginText;\n\n    case 1:\n      return fnArray[i] === _util.OPS.setFont;\n\n    case 2:\n      return fnArray[i] === _util.OPS.setTextMatrix;\n\n    case 3:\n      if (fnArray[i] !== _util.OPS.showText) {\n        return false;\n      }\n\n      const iFirstSetFont = context.iCurr - 3;\n      const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n      const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n      if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {\n        return false;\n      }\n\n      return true;\n\n    case 4:\n      return fnArray[i] === _util.OPS.endText;\n  }\n\n  throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n}, function (context, i) {\n  const MIN_CHARS_IN_BLOCK = 3;\n  const MAX_CHARS_IN_BLOCK = 1000;\n  const fnArray = context.fnArray,\n        argsArray = context.argsArray;\n  const curr = context.iCurr;\n  const iFirstBeginText = curr - 4;\n  const iFirstSetFont = curr - 3;\n  const iFirstSetTextMatrix = curr - 2;\n  const iFirstShowText = curr - 1;\n  const iFirstEndText = curr;\n  const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n  const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n  let count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);\n\n  if (count < MIN_CHARS_IN_BLOCK) {\n    return i - (i - iFirstBeginText) % 5;\n  }\n\n  let iFirst = iFirstBeginText;\n\n  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) {\n    count++;\n    iFirst -= 5;\n  }\n\n  let iEndText = iFirst + 4;\n\n  for (let q = 1; q < count; q++) {\n    fnArray.splice(iEndText, 3);\n    argsArray.splice(iEndText, 3);\n    iEndText += 2;\n  }\n\n  return iEndText + 1;\n});\n\nclass NullOptimizer {\n  constructor(queue) {\n    this.queue = queue;\n  }\n\n  _optimize() {}\n\n  push(fn, args) {\n    this.queue.fnArray.push(fn);\n    this.queue.argsArray.push(args);\n\n    this._optimize();\n  }\n\n  flush() {}\n\n  reset() {}\n\n}\n\nclass QueueOptimizer extends NullOptimizer {\n  constructor(queue) {\n    super(queue);\n    this.state = null;\n    this.context = {\n      iCurr: 0,\n      fnArray: queue.fnArray,\n      argsArray: queue.argsArray\n    };\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n\n  _optimize() {\n    const fnArray = this.queue.fnArray;\n    let i = this.lastProcessed,\n        ii = fnArray.length;\n    let state = this.state;\n    let match = this.match;\n\n    if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n      this.lastProcessed = ii;\n      return;\n    }\n\n    const context = this.context;\n\n    while (i < ii) {\n      if (match) {\n        const iterate = (0, match.iterateFn)(context, i);\n\n        if (iterate) {\n          i++;\n          continue;\n        }\n\n        i = (0, match.processFn)(context, i + 1);\n        ii = fnArray.length;\n        match = null;\n        state = null;\n\n        if (i >= ii) {\n          break;\n        }\n      }\n\n      state = (state || InitialState)[fnArray[i]];\n\n      if (!state || Array.isArray(state)) {\n        i++;\n        continue;\n      }\n\n      context.iCurr = i;\n      i++;\n\n      if (state.checkFn && !(0, state.checkFn)(context)) {\n        state = null;\n        continue;\n      }\n\n      match = state;\n      state = null;\n    }\n\n    this.state = state;\n    this.match = match;\n    this.lastProcessed = i;\n  }\n\n  flush() {\n    while (this.match) {\n      const length = this.queue.fnArray.length;\n      this.lastProcessed = (0, this.match.processFn)(this.context, length);\n      this.match = null;\n      this.state = null;\n\n      this._optimize();\n    }\n  }\n\n  reset() {\n    this.state = null;\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n\n}\n\nclass OperatorList {\n  static get CHUNK_SIZE() {\n    return (0, _util.shadow)(this, \"CHUNK_SIZE\", 1000);\n  }\n\n  static get CHUNK_SIZE_ABOUT() {\n    return (0, _util.shadow)(this, \"CHUNK_SIZE_ABOUT\", this.CHUNK_SIZE - 5);\n  }\n\n  constructor(intent = 0, streamSink) {\n    this._streamSink = streamSink;\n    this.fnArray = [];\n    this.argsArray = [];\n\n    if (streamSink && !(intent & _util.RenderingIntentFlag.OPLIST)) {\n      this.optimizer = new QueueOptimizer(this);\n    } else {\n      this.optimizer = new NullOptimizer(this);\n    }\n\n    this.dependencies = new Set();\n    this._totalLength = 0;\n    this.weight = 0;\n    this._resolved = streamSink ? null : Promise.resolve();\n  }\n\n  get length() {\n    return this.argsArray.length;\n  }\n\n  get ready() {\n    return this._resolved || this._streamSink.ready;\n  }\n\n  get totalLength() {\n    return this._totalLength + this.length;\n  }\n\n  addOp(fn, args) {\n    this.optimizer.push(fn, args);\n    this.weight++;\n\n    if (this._streamSink) {\n      if (this.weight >= OperatorList.CHUNK_SIZE) {\n        this.flush();\n      } else if (this.weight >= OperatorList.CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {\n        this.flush();\n      }\n    }\n  }\n\n  addImageOps(fn, args, optionalContent) {\n    if (optionalContent !== undefined) {\n      this.addOp(_util.OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n    }\n\n    this.addOp(fn, args);\n\n    if (optionalContent !== undefined) {\n      this.addOp(_util.OPS.endMarkedContent, []);\n    }\n  }\n\n  addDependency(dependency) {\n    if (this.dependencies.has(dependency)) {\n      return;\n    }\n\n    this.dependencies.add(dependency);\n    this.addOp(_util.OPS.dependency, [dependency]);\n  }\n\n  addDependencies(dependencies) {\n    for (const dependency of dependencies) {\n      this.addDependency(dependency);\n    }\n  }\n\n  addOpList(opList) {\n    if (!(opList instanceof OperatorList)) {\n      (0, _util.warn)('addOpList - ignoring invalid \"opList\" parameter.');\n      return;\n    }\n\n    for (const dependency of opList.dependencies) {\n      this.dependencies.add(dependency);\n    }\n\n    for (let i = 0, ii = opList.length; i < ii; i++) {\n      this.addOp(opList.fnArray[i], opList.argsArray[i]);\n    }\n  }\n\n  getIR() {\n    return {\n      fnArray: this.fnArray,\n      argsArray: this.argsArray,\n      length: this.length\n    };\n  }\n\n  get _transfers() {\n    const transfers = [];\n    const {\n      fnArray,\n      argsArray,\n      length\n    } = this;\n\n    for (let i = 0; i < length; i++) {\n      switch (fnArray[i]) {\n        case _util.OPS.paintInlineImageXObject:\n        case _util.OPS.paintInlineImageXObjectGroup:\n        case _util.OPS.paintImageMaskXObject:\n          const arg = argsArray[i][0];\n\n          if (!arg.cached && arg.data && arg.data.buffer instanceof ArrayBuffer) {\n            transfers.push(arg.data.buffer);\n          }\n\n          break;\n      }\n    }\n\n    return transfers;\n  }\n\n  flush(lastChunk = false, separateAnnots = null) {\n    this.optimizer.flush();\n    const length = this.length;\n    this._totalLength += length;\n\n    this._streamSink.enqueue({\n      fnArray: this.fnArray,\n      argsArray: this.argsArray,\n      lastChunk,\n      separateAnnots,\n      length\n    }, 1, this._transfers);\n\n    this.dependencies.clear();\n    this.fnArray.length = 0;\n    this.argsArray.length = 0;\n    this.weight = 0;\n    this.optimizer.reset();\n  }\n\n}\n\nexports.OperatorList = OperatorList;\n\n/***/ }),\n/* 63 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PDFImage = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _image_utils = __w_pdfjs_require__(64);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _colorspace = __w_pdfjs_require__(14);\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nvar _jpeg_stream = __w_pdfjs_require__(27);\n\nvar _jpx = __w_pdfjs_require__(30);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nfunction decodeAndClamp(value, addend, coefficient, max) {\n  value = addend + value * coefficient;\n\n  if (value < 0) {\n    value = 0;\n  } else if (value > max) {\n    value = max;\n  }\n\n  return value;\n}\n\nfunction resizeImageMask(src, bpc, w1, h1, w2, h2) {\n  const length = w2 * h2;\n  let dest;\n\n  if (bpc <= 8) {\n    dest = new Uint8Array(length);\n  } else if (bpc <= 16) {\n    dest = new Uint16Array(length);\n  } else {\n    dest = new Uint32Array(length);\n  }\n\n  const xRatio = w1 / w2;\n  const yRatio = h1 / h2;\n  let i,\n      j,\n      py,\n      newIndex = 0,\n      oldIndex;\n  const xScaled = new Uint16Array(w2);\n  const w1Scanline = w1;\n\n  for (i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio);\n  }\n\n  for (i = 0; i < h2; i++) {\n    py = Math.floor(i * yRatio) * w1Scanline;\n\n    for (j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex];\n    }\n  }\n\n  return dest;\n}\n\nclass PDFImage {\n  constructor({\n    xref,\n    res,\n    image,\n    isInline = false,\n    smask = null,\n    mask = null,\n    isMask = false,\n    pdfFunctionFactory,\n    localColorSpaceCache\n  }) {\n    this.image = image;\n    const dict = image.dict;\n    const filter = dict.get(\"F\", \"Filter\");\n    let filterName;\n\n    if (filter instanceof _primitives.Name) {\n      filterName = filter.name;\n    } else if (Array.isArray(filter)) {\n      const filterZero = xref.fetchIfRef(filter[0]);\n\n      if (filterZero instanceof _primitives.Name) {\n        filterName = filterZero.name;\n      }\n    }\n\n    switch (filterName) {\n      case \"JPXDecode\":\n        const jpxImage = new _jpx.JpxImage();\n        jpxImage.parseImageProperties(image.stream);\n        image.stream.reset();\n        image.width = jpxImage.width;\n        image.height = jpxImage.height;\n        image.bitsPerComponent = jpxImage.bitsPerComponent;\n        image.numComps = jpxImage.componentsCount;\n        break;\n\n      case \"JBIG2Decode\":\n        image.bitsPerComponent = 1;\n        image.numComps = 1;\n        break;\n    }\n\n    let width = dict.get(\"W\", \"Width\");\n    let height = dict.get(\"H\", \"Height\");\n\n    if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) {\n      (0, _util.warn)(\"PDFImage - using the Width/Height of the image data, \" + \"rather than the image dictionary.\");\n      width = image.width;\n      height = image.height;\n    }\n\n    if (width < 1 || height < 1) {\n      throw new _util.FormatError(`Invalid image width: ${width} or height: ${height}`);\n    }\n\n    this.width = width;\n    this.height = height;\n    this.interpolate = dict.get(\"I\", \"Interpolate\");\n    this.imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n    this.matte = dict.get(\"Matte\") || false;\n    let bitsPerComponent = image.bitsPerComponent;\n\n    if (!bitsPerComponent) {\n      bitsPerComponent = dict.get(\"BPC\", \"BitsPerComponent\");\n\n      if (!bitsPerComponent) {\n        if (this.imageMask) {\n          bitsPerComponent = 1;\n        } else {\n          throw new _util.FormatError(`Bits per component missing in image: ${this.imageMask}`);\n        }\n      }\n    }\n\n    this.bpc = bitsPerComponent;\n\n    if (!this.imageMask) {\n      let colorSpace = dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\");\n\n      if (!colorSpace) {\n        (0, _util.info)(\"JPX images (which do not require color spaces)\");\n\n        switch (image.numComps) {\n          case 1:\n            colorSpace = _primitives.Name.get(\"DeviceGray\");\n            break;\n\n          case 3:\n            colorSpace = _primitives.Name.get(\"DeviceRGB\");\n            break;\n\n          case 4:\n            colorSpace = _primitives.Name.get(\"DeviceCMYK\");\n            break;\n\n          default:\n            throw new Error(`JPX images with ${image.numComps} color components not supported.`);\n        }\n      }\n\n      this.colorSpace = _colorspace.ColorSpace.parse({\n        cs: colorSpace,\n        xref,\n        resources: isInline ? res : null,\n        pdfFunctionFactory,\n        localColorSpaceCache\n      });\n      this.numComps = this.colorSpace.numComps;\n    }\n\n    this.decode = dict.getArray(\"D\", \"Decode\");\n    this.needsDecode = false;\n\n    if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n      this.needsDecode = true;\n      const max = (1 << bitsPerComponent) - 1;\n      this.decodeCoefficients = [];\n      this.decodeAddends = [];\n      const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n\n      for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n        const dmin = this.decode[i];\n        const dmax = this.decode[i + 1];\n        this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin;\n        this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n      }\n    }\n\n    if (smask) {\n      this.smask = new PDFImage({\n        xref,\n        res,\n        image: smask,\n        isInline,\n        pdfFunctionFactory,\n        localColorSpaceCache\n      });\n    } else if (mask) {\n      if (mask instanceof _base_stream.BaseStream) {\n        const maskDict = mask.dict,\n              imageMask = maskDict.get(\"IM\", \"ImageMask\");\n\n        if (!imageMask) {\n          (0, _util.warn)(\"Ignoring /Mask in image without /ImageMask.\");\n        } else {\n          this.mask = new PDFImage({\n            xref,\n            res,\n            image: mask,\n            isInline,\n            isMask: true,\n            pdfFunctionFactory,\n            localColorSpaceCache\n          });\n        }\n      } else {\n        this.mask = mask;\n      }\n    }\n  }\n\n  static async buildImage({\n    xref,\n    res,\n    image,\n    isInline = false,\n    pdfFunctionFactory,\n    localColorSpaceCache\n  }) {\n    const imageData = image;\n    let smaskData = null;\n    let maskData = null;\n    const smask = image.dict.get(\"SMask\");\n    const mask = image.dict.get(\"Mask\");\n\n    if (smask) {\n      if (smask instanceof _base_stream.BaseStream) {\n        smaskData = smask;\n      } else {\n        (0, _util.warn)(\"Unsupported /SMask format.\");\n      }\n    } else if (mask) {\n      if (mask instanceof _base_stream.BaseStream || Array.isArray(mask)) {\n        maskData = mask;\n      } else {\n        (0, _util.warn)(\"Unsupported /Mask format.\");\n      }\n    }\n\n    return new PDFImage({\n      xref,\n      res,\n      image: imageData,\n      isInline,\n      smask: smaskData,\n      mask: maskData,\n      pdfFunctionFactory,\n      localColorSpaceCache\n    });\n  }\n\n  static createRawMask({\n    imgArray,\n    width,\n    height,\n    imageIsFromDecodeStream,\n    inverseDecode,\n    interpolate\n  }) {\n    const computedLength = (width + 7 >> 3) * height;\n    const actualLength = imgArray.byteLength;\n    const haveFullData = computedLength === actualLength;\n    let data, i;\n\n    if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n      data = imgArray;\n    } else if (!inverseDecode) {\n      data = new Uint8Array(imgArray);\n    } else {\n      data = new Uint8Array(computedLength);\n      data.set(imgArray);\n      data.fill(0xff, actualLength);\n    }\n\n    if (inverseDecode) {\n      for (i = 0; i < actualLength; i++) {\n        data[i] ^= 0xff;\n      }\n    }\n\n    return {\n      data,\n      width,\n      height,\n      interpolate\n    };\n  }\n\n  static createMask({\n    imgArray,\n    width,\n    height,\n    imageIsFromDecodeStream,\n    inverseDecode,\n    interpolate\n  }) {\n    const isSingleOpaquePixel = width === 1 && height === 1 && inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128));\n\n    if (isSingleOpaquePixel) {\n      return {\n        isSingleOpaquePixel\n      };\n    }\n\n    if (_util.FeatureTest.isOffscreenCanvasSupported) {\n      const canvas = new OffscreenCanvas(width, height);\n      const ctx = canvas.getContext(\"2d\");\n      const imgData = ctx.createImageData(width, height);\n      (0, _image_utils.applyMaskImageData)({\n        src: imgArray,\n        dest: imgData.data,\n        width,\n        height,\n        inverseDecode\n      });\n      ctx.putImageData(imgData, 0, 0);\n      const bitmap = canvas.transferToImageBitmap();\n      return {\n        data: null,\n        width,\n        height,\n        interpolate,\n        bitmap\n      };\n    }\n\n    return this.createRawMask({\n      imgArray,\n      width,\n      height,\n      inverseDecode,\n      imageIsFromDecodeStream,\n      interpolate\n    });\n  }\n\n  get drawWidth() {\n    return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n  }\n\n  get drawHeight() {\n    return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n  }\n\n  decodeBuffer(buffer) {\n    const bpc = this.bpc;\n    const numComps = this.numComps;\n    const decodeAddends = this.decodeAddends;\n    const decodeCoefficients = this.decodeCoefficients;\n    const max = (1 << bpc) - 1;\n    let i, ii;\n\n    if (bpc === 1) {\n      for (i = 0, ii = buffer.length; i < ii; i++) {\n        buffer[i] = +!buffer[i];\n      }\n\n      return;\n    }\n\n    let index = 0;\n\n    for (i = 0, ii = this.width * this.height; i < ii; i++) {\n      for (let j = 0; j < numComps; j++) {\n        buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n        index++;\n      }\n    }\n  }\n\n  getComponents(buffer) {\n    const bpc = this.bpc;\n\n    if (bpc === 8) {\n      return buffer;\n    }\n\n    const width = this.width;\n    const height = this.height;\n    const numComps = this.numComps;\n    const length = width * height * numComps;\n    let bufferPos = 0;\n    let output;\n\n    if (bpc <= 8) {\n      output = new Uint8Array(length);\n    } else if (bpc <= 16) {\n      output = new Uint16Array(length);\n    } else {\n      output = new Uint32Array(length);\n    }\n\n    const rowComps = width * numComps;\n    const max = (1 << bpc) - 1;\n    let i = 0,\n        ii,\n        buf;\n\n    if (bpc === 1) {\n      let mask, loop1End, loop2End;\n\n      for (let j = 0; j < height; j++) {\n        loop1End = i + (rowComps & ~7);\n        loop2End = i + rowComps;\n\n        while (i < loop1End) {\n          buf = buffer[bufferPos++];\n          output[i] = buf >> 7 & 1;\n          output[i + 1] = buf >> 6 & 1;\n          output[i + 2] = buf >> 5 & 1;\n          output[i + 3] = buf >> 4 & 1;\n          output[i + 4] = buf >> 3 & 1;\n          output[i + 5] = buf >> 2 & 1;\n          output[i + 6] = buf >> 1 & 1;\n          output[i + 7] = buf & 1;\n          i += 8;\n        }\n\n        if (i < loop2End) {\n          buf = buffer[bufferPos++];\n          mask = 128;\n\n          while (i < loop2End) {\n            output[i++] = +!!(buf & mask);\n            mask >>= 1;\n          }\n        }\n      }\n    } else {\n      let bits = 0;\n      buf = 0;\n\n      for (i = 0, ii = length; i < ii; ++i) {\n        if (i % rowComps === 0) {\n          buf = 0;\n          bits = 0;\n        }\n\n        while (bits < bpc) {\n          buf = buf << 8 | buffer[bufferPos++];\n          bits += 8;\n        }\n\n        const remainingBits = bits - bpc;\n        let value = buf >> remainingBits;\n\n        if (value < 0) {\n          value = 0;\n        } else if (value > max) {\n          value = max;\n        }\n\n        output[i] = value;\n        buf &= (1 << remainingBits) - 1;\n        bits = remainingBits;\n      }\n    }\n\n    return output;\n  }\n\n  fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n    const smask = this.smask;\n    const mask = this.mask;\n    let alphaBuf, sw, sh, i, ii, j;\n\n    if (smask) {\n      sw = smask.width;\n      sh = smask.height;\n      alphaBuf = new Uint8ClampedArray(sw * sh);\n      smask.fillGrayBuffer(alphaBuf);\n\n      if (sw !== width || sh !== height) {\n        alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n      }\n    } else if (mask) {\n      if (mask instanceof PDFImage) {\n        sw = mask.width;\n        sh = mask.height;\n        alphaBuf = new Uint8ClampedArray(sw * sh);\n        mask.numComps = 1;\n        mask.fillGrayBuffer(alphaBuf);\n\n        for (i = 0, ii = sw * sh; i < ii; ++i) {\n          alphaBuf[i] = 255 - alphaBuf[i];\n        }\n\n        if (sw !== width || sh !== height) {\n          alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n        }\n      } else if (Array.isArray(mask)) {\n        alphaBuf = new Uint8ClampedArray(width * height);\n        const numComps = this.numComps;\n\n        for (i = 0, ii = width * height; i < ii; ++i) {\n          let opacity = 0;\n          const imageOffset = i * numComps;\n\n          for (j = 0; j < numComps; ++j) {\n            const color = image[imageOffset + j];\n            const maskOffset = j * 2;\n\n            if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n              opacity = 255;\n              break;\n            }\n          }\n\n          alphaBuf[i] = opacity;\n        }\n      } else {\n        throw new _util.FormatError(\"Unknown mask format.\");\n      }\n    }\n\n    if (alphaBuf) {\n      for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n        rgbaBuf[j] = alphaBuf[i];\n      }\n    } else {\n      for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n        rgbaBuf[j] = 255;\n      }\n    }\n  }\n\n  undoPreblend(buffer, width, height) {\n    const matte = this.smask && this.smask.matte;\n\n    if (!matte) {\n      return;\n    }\n\n    const matteRgb = this.colorSpace.getRgb(matte, 0);\n    const matteR = matteRgb[0];\n    const matteG = matteRgb[1];\n    const matteB = matteRgb[2];\n    const length = width * height * 4;\n\n    for (let i = 0; i < length; i += 4) {\n      const alpha = buffer[i + 3];\n\n      if (alpha === 0) {\n        buffer[i] = 255;\n        buffer[i + 1] = 255;\n        buffer[i + 2] = 255;\n        continue;\n      }\n\n      const k = 255 / alpha;\n      buffer[i] = (buffer[i] - matteR) * k + matteR;\n      buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n      buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n    }\n  }\n\n  createImageData(forceRGBA = false) {\n    const drawWidth = this.drawWidth;\n    const drawHeight = this.drawHeight;\n    const imgData = {\n      width: drawWidth,\n      height: drawHeight,\n      interpolate: this.interpolate,\n      kind: 0,\n      data: null\n    };\n    const numComps = this.numComps;\n    const originalWidth = this.width;\n    const originalHeight = this.height;\n    const bpc = this.bpc;\n    const rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n\n    if (!forceRGBA) {\n      let kind;\n\n      if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n        kind = _util.ImageKind.GRAYSCALE_1BPP;\n      } else if (this.colorSpace.name === \"DeviceRGB\" && bpc === 8 && !this.needsDecode) {\n        kind = _util.ImageKind.RGB_24BPP;\n      }\n\n      if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n        imgData.kind = kind;\n        imgData.data = this.getImageBytes(originalHeight * rowBytes, {});\n\n        if (this.needsDecode) {\n          (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, \"PDFImage.createImageData: The image must be grayscale.\");\n          const buffer = imgData.data;\n\n          for (let i = 0, ii = buffer.length; i < ii; i++) {\n            buffer[i] ^= 0xff;\n          }\n        }\n\n        return imgData;\n      }\n\n      if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) {\n        let imageLength = originalHeight * rowBytes;\n\n        switch (this.colorSpace.name) {\n          case \"DeviceGray\":\n            imageLength *= 3;\n\n          case \"DeviceRGB\":\n          case \"DeviceCMYK\":\n            imgData.kind = _util.ImageKind.RGB_24BPP;\n            imgData.data = this.getImageBytes(imageLength, {\n              drawWidth,\n              drawHeight,\n              forceRGB: true\n            });\n            return imgData;\n        }\n      }\n    }\n\n    const imgArray = this.getImageBytes(originalHeight * rowBytes, {\n      internal: true\n    });\n    const actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n    const comps = this.getComponents(imgArray);\n    let alpha01, maybeUndoPreblend;\n\n    if (!forceRGBA && !this.smask && !this.mask) {\n      imgData.kind = _util.ImageKind.RGB_24BPP;\n      imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n      alpha01 = 0;\n      maybeUndoPreblend = false;\n    } else {\n      imgData.kind = _util.ImageKind.RGBA_32BPP;\n      imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n      alpha01 = 1;\n      maybeUndoPreblend = true;\n      this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps);\n    }\n\n    if (this.needsDecode) {\n      this.decodeBuffer(comps);\n    }\n\n    this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n\n    if (maybeUndoPreblend) {\n      this.undoPreblend(imgData.data, drawWidth, actualHeight);\n    }\n\n    return imgData;\n  }\n\n  fillGrayBuffer(buffer) {\n    const numComps = this.numComps;\n\n    if (numComps !== 1) {\n      throw new _util.FormatError(`Reading gray scale from a color image: ${numComps}`);\n    }\n\n    const width = this.width;\n    const height = this.height;\n    const bpc = this.bpc;\n    const rowBytes = width * numComps * bpc + 7 >> 3;\n    const imgArray = this.getImageBytes(height * rowBytes, {\n      internal: true\n    });\n    const comps = this.getComponents(imgArray);\n    let i, length;\n\n    if (bpc === 1) {\n      length = width * height;\n\n      if (this.needsDecode) {\n        for (i = 0; i < length; ++i) {\n          buffer[i] = comps[i] - 1 & 255;\n        }\n      } else {\n        for (i = 0; i < length; ++i) {\n          buffer[i] = -comps[i] & 255;\n        }\n      }\n\n      return;\n    }\n\n    if (this.needsDecode) {\n      this.decodeBuffer(comps);\n    }\n\n    length = width * height;\n    const scale = 255 / ((1 << bpc) - 1);\n\n    for (i = 0; i < length; ++i) {\n      buffer[i] = scale * comps[i];\n    }\n  }\n\n  getImageBytes(length, {\n    drawWidth,\n    drawHeight,\n    forceRGB = false,\n    internal = false\n  }) {\n    this.image.reset();\n    this.image.drawWidth = drawWidth || this.width;\n    this.image.drawHeight = drawHeight || this.height;\n    this.image.forceRGB = !!forceRGB;\n    const imageBytes = this.image.getBytes(length);\n\n    if (internal || this.image instanceof _decode_stream.DecodeStream) {\n      return imageBytes;\n    }\n\n    (0, _util.assert)(imageBytes instanceof Uint8Array, 'PDFImage.getImageBytes: Unsupported \"imageBytes\" type.');\n    return new Uint8Array(imageBytes);\n  }\n\n}\n\nexports.PDFImage = PDFImage;\n\n/***/ }),\n/* 64 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.applyMaskImageData = applyMaskImageData;\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction applyMaskImageData({\n  src,\n  srcPos = 0,\n  dest,\n  destPos = 0,\n  width,\n  height,\n  inverseDecode = false\n}) {\n  const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n  const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n  const widthInSource = width >> 3;\n  const widthRemainder = width & 7;\n  const srcLength = src.length;\n  dest = new Uint32Array(dest.buffer);\n\n  for (let i = 0; i < height; i++) {\n    for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n      const elem = srcPos < srcLength ? src[srcPos] : 255;\n      dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n    }\n\n    if (widthRemainder === 0) {\n      continue;\n    }\n\n    const elem = srcPos < srcLength ? src[srcPos++] : 255;\n\n    for (let j = 0; j < widthRemainder; j++) {\n      dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n    }\n  }\n\n  return {\n    srcPos,\n    destPos\n  };\n}\n\n/***/ }),\n/* 65 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.incrementalUpdate = incrementalUpdate;\nexports.writeDict = writeDict;\nexports.writeObject = writeObject;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _xml_parser = __w_pdfjs_require__(66);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _crypto = __w_pdfjs_require__(67);\n\nfunction writeObject(ref, obj, buffer, transform) {\n  buffer.push(`${ref.num} ${ref.gen} obj\\n`);\n\n  if (obj instanceof _primitives.Dict) {\n    writeDict(obj, buffer, transform);\n  } else if (obj instanceof _base_stream.BaseStream) {\n    writeStream(obj, buffer, transform);\n  }\n\n  buffer.push(\"\\nendobj\\n\");\n}\n\nfunction writeDict(dict, buffer, transform) {\n  buffer.push(\"<<\");\n\n  for (const key of dict.getKeys()) {\n    buffer.push(` /${(0, _core_utils.escapePDFName)(key)} `);\n    writeValue(dict.getRaw(key), buffer, transform);\n  }\n\n  buffer.push(\">>\");\n}\n\nfunction writeStream(stream, buffer, transform) {\n  writeDict(stream.dict, buffer, transform);\n  buffer.push(\" stream\\n\");\n  let string = stream.getString();\n\n  if (transform !== null) {\n    string = transform.encryptString(string);\n  }\n\n  buffer.push(string, \"\\nendstream\\n\");\n}\n\nfunction writeArray(array, buffer, transform) {\n  buffer.push(\"[\");\n  let first = true;\n\n  for (const val of array) {\n    if (!first) {\n      buffer.push(\" \");\n    } else {\n      first = false;\n    }\n\n    writeValue(val, buffer, transform);\n  }\n\n  buffer.push(\"]\");\n}\n\nfunction writeValue(value, buffer, transform) {\n  if (value instanceof _primitives.Name) {\n    buffer.push(`/${(0, _core_utils.escapePDFName)(value.name)}`);\n  } else if (value instanceof _primitives.Ref) {\n    buffer.push(`${value.num} ${value.gen} R`);\n  } else if (Array.isArray(value)) {\n    writeArray(value, buffer, transform);\n  } else if (typeof value === \"string\") {\n    if (transform !== null) {\n      value = transform.encryptString(value);\n    }\n\n    buffer.push(`(${(0, _util.escapeString)(value)})`);\n  } else if (typeof value === \"number\") {\n    buffer.push((0, _core_utils.numberToString)(value));\n  } else if (typeof value === \"boolean\") {\n    buffer.push(value.toString());\n  } else if (value instanceof _primitives.Dict) {\n    writeDict(value, buffer, transform);\n  } else if (value instanceof _base_stream.BaseStream) {\n    writeStream(value, buffer, transform);\n  } else if (value === null) {\n    buffer.push(\"null\");\n  } else {\n    (0, _util.warn)(`Unhandled value in writer: ${typeof value}, please file a bug.`);\n  }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n  for (let i = size + offset - 1; i > offset - 1; i--) {\n    buffer[i] = number & 0xff;\n    number >>= 8;\n  }\n\n  return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n  for (let i = 0, len = string.length; i < len; i++) {\n    buffer[offset + i] = string.charCodeAt(i) & 0xff;\n  }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n  const time = Math.floor(Date.now() / 1000);\n  const filename = xrefInfo.filename || \"\";\n  const md5Buffer = [time.toString(), filename, filesize.toString()];\n  let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n\n  for (const value of Object.values(xrefInfo.info)) {\n    md5Buffer.push(value);\n    md5BufferLen += value.length;\n  }\n\n  const array = new Uint8Array(md5BufferLen);\n  let offset = 0;\n\n  for (const str of md5Buffer) {\n    writeString(str, offset, array);\n    offset += str.length;\n  }\n\n  return (0, _util.bytesToString)((0, _crypto.calculateMD5)(array));\n}\n\nfunction writeXFADataForAcroform(str, newRefs) {\n  const xml = new _xml_parser.SimpleXMLParser({\n    hasAttributes: true\n  }).parseFromString(str);\n\n  for (const {\n    xfa\n  } of newRefs) {\n    if (!xfa) {\n      continue;\n    }\n\n    const {\n      path,\n      value\n    } = xfa;\n\n    if (!path) {\n      continue;\n    }\n\n    const node = xml.documentElement.searchNode((0, _core_utils.parseXFAPath)(path), 0);\n\n    if (node) {\n      if (Array.isArray(value)) {\n        node.childNodes = value.map(val => new _xml_parser.SimpleDOMNode(\"value\", val));\n      } else {\n        node.childNodes = [new _xml_parser.SimpleDOMNode(\"#text\", value)];\n      }\n    } else {\n      (0, _util.warn)(`Node not found for path: ${path}`);\n    }\n  }\n\n  const buffer = [];\n  xml.documentElement.dump(buffer);\n  return buffer.join(\"\");\n}\n\nfunction updateXFA({\n  xfaData,\n  xfaDatasetsRef,\n  hasXfaDatasetsEntry,\n  acroFormRef,\n  acroForm,\n  newRefs,\n  xref,\n  xrefInfo\n}) {\n  if (xref === null) {\n    return;\n  }\n\n  if (!hasXfaDatasetsEntry) {\n    if (!acroFormRef) {\n      (0, _util.warn)(\"XFA - Cannot save it\");\n      return;\n    }\n\n    const oldXfa = acroForm.get(\"XFA\");\n    const newXfa = oldXfa.slice();\n    newXfa.splice(2, 0, \"datasets\");\n    newXfa.splice(3, 0, xfaDatasetsRef);\n    acroForm.set(\"XFA\", newXfa);\n    const encrypt = xref.encrypt;\n    let transform = null;\n\n    if (encrypt) {\n      transform = encrypt.createCipherTransform(acroFormRef.num, acroFormRef.gen);\n    }\n\n    const buffer = [`${acroFormRef.num} ${acroFormRef.gen} obj\\n`];\n    writeDict(acroForm, buffer, transform);\n    buffer.push(\"\\n\");\n    acroForm.set(\"XFA\", oldXfa);\n    newRefs.push({\n      ref: acroFormRef,\n      data: buffer.join(\"\")\n    });\n  }\n\n  if (xfaData === null) {\n    const datasets = xref.fetchIfRef(xfaDatasetsRef);\n    xfaData = writeXFADataForAcroform(datasets.getString(), newRefs);\n  }\n\n  const encrypt = xref.encrypt;\n\n  if (encrypt) {\n    const transform = encrypt.createCipherTransform(xfaDatasetsRef.num, xfaDatasetsRef.gen);\n    xfaData = transform.encryptString(xfaData);\n  }\n\n  const data = `${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\\n` + `<< /Type /EmbeddedFile /Length ${xfaData.length}>>\\nstream\\n` + xfaData + \"\\nendstream\\nendobj\\n\";\n  newRefs.push({\n    ref: xfaDatasetsRef,\n    data\n  });\n}\n\nfunction incrementalUpdate({\n  originalData,\n  xrefInfo,\n  newRefs,\n  xref = null,\n  hasXfa = false,\n  xfaDatasetsRef = null,\n  hasXfaDatasetsEntry = false,\n  acroFormRef = null,\n  acroForm = null,\n  xfaData = null\n}) {\n  if (hasXfa) {\n    updateXFA({\n      xfaData,\n      xfaDatasetsRef,\n      hasXfaDatasetsEntry,\n      acroFormRef,\n      acroForm,\n      newRefs,\n      xref,\n      xrefInfo\n    });\n  }\n\n  const newXref = new _primitives.Dict(null);\n  const refForXrefTable = xrefInfo.newRef;\n  let buffer, baseOffset;\n  const lastByte = originalData.at(-1);\n\n  if (lastByte === 0x0a || lastByte === 0x0d) {\n    buffer = [];\n    baseOffset = originalData.length;\n  } else {\n    buffer = [\"\\n\"];\n    baseOffset = originalData.length + 1;\n  }\n\n  newXref.set(\"Size\", refForXrefTable.num + 1);\n  newXref.set(\"Prev\", xrefInfo.startXRef);\n  newXref.set(\"Type\", _primitives.Name.get(\"XRef\"));\n\n  if (xrefInfo.rootRef !== null) {\n    newXref.set(\"Root\", xrefInfo.rootRef);\n  }\n\n  if (xrefInfo.infoRef !== null) {\n    newXref.set(\"Info\", xrefInfo.infoRef);\n  }\n\n  if (xrefInfo.encryptRef !== null) {\n    newXref.set(\"Encrypt\", xrefInfo.encryptRef);\n  }\n\n  newRefs.push({\n    ref: refForXrefTable,\n    data: \"\"\n  });\n  newRefs = newRefs.sort((a, b) => {\n    return a.ref.num - b.ref.num;\n  });\n  const xrefTableData = [[0, 1, 0xffff]];\n  const indexes = [0, 1];\n  let maxOffset = 0;\n\n  for (const {\n    ref,\n    data\n  } of newRefs) {\n    maxOffset = Math.max(maxOffset, baseOffset);\n    xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n    baseOffset += data.length;\n    indexes.push(ref.num, 1);\n    buffer.push(data);\n  }\n\n  newXref.set(\"Index\", indexes);\n\n  if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) {\n    const md5 = computeMD5(baseOffset, xrefInfo);\n    newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n  }\n\n  const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n  const sizes = [1, offsetSize, 2];\n  const structSize = sizes[0] + sizes[1] + sizes[2];\n  const tableLength = structSize * xrefTableData.length;\n  newXref.set(\"W\", sizes);\n  newXref.set(\"Length\", tableLength);\n  buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n  writeDict(newXref, buffer, null);\n  buffer.push(\" stream\\n\");\n  const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n  const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n  const array = new Uint8Array(originalData.length + bufferLen + tableLength + footer.length);\n  array.set(originalData);\n  let offset = originalData.length;\n\n  for (const str of buffer) {\n    writeString(str, offset, array);\n    offset += str.length;\n  }\n\n  for (const [type, objOffset, gen] of xrefTableData) {\n    offset = writeInt(type, sizes[0], offset, array);\n    offset = writeInt(objOffset, sizes[1], offset, array);\n    offset = writeInt(gen, sizes[2], offset, array);\n  }\n\n  writeString(footer, offset, array);\n  return array;\n}\n\n/***/ }),\n/* 66 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XMLParserErrorCode = exports.XMLParserBase = exports.SimpleXMLParser = exports.SimpleDOMNode = void 0;\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nconst XMLParserErrorCode = {\n  NoError: 0,\n  EndOfDocument: -1,\n  UnterminatedCdat: -2,\n  UnterminatedXmlDeclaration: -3,\n  UnterminatedDoctypeDeclaration: -4,\n  UnterminatedComment: -5,\n  MalformedElement: -6,\n  OutOfMemory: -7,\n  UnterminatedAttributeValue: -8,\n  UnterminatedElement: -9,\n  ElementNeverBegun: -10\n};\nexports.XMLParserErrorCode = XMLParserErrorCode;\n\nfunction isWhitespace(s, index) {\n  const ch = s[index];\n  return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n  for (let i = 0, ii = s.length; i < ii; i++) {\n    if (!isWhitespace(s, i)) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nclass XMLParserBase {\n  _resolveEntities(s) {\n    return s.replace(/&([^;]+);/g, (all, entity) => {\n      if (entity.substring(0, 2) === \"#x\") {\n        return String.fromCodePoint(parseInt(entity.substring(2), 16));\n      } else if (entity.substring(0, 1) === \"#\") {\n        return String.fromCodePoint(parseInt(entity.substring(1), 10));\n      }\n\n      switch (entity) {\n        case \"lt\":\n          return \"<\";\n\n        case \"gt\":\n          return \">\";\n\n        case \"amp\":\n          return \"&\";\n\n        case \"quot\":\n          return '\"';\n\n        case \"apos\":\n          return \"'\";\n      }\n\n      return this.onResolveEntity(entity);\n    });\n  }\n\n  _parseContent(s, start) {\n    const attributes = [];\n    let pos = start;\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"/\") {\n      ++pos;\n    }\n\n    const name = s.substring(start, pos);\n    skipWs();\n\n    while (pos < s.length && s[pos] !== \">\" && s[pos] !== \"/\" && s[pos] !== \"?\") {\n      skipWs();\n      let attrName = \"\",\n          attrValue = \"\";\n\n      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n        attrName += s[pos];\n        ++pos;\n      }\n\n      skipWs();\n\n      if (s[pos] !== \"=\") {\n        return null;\n      }\n\n      ++pos;\n      skipWs();\n      const attrEndChar = s[pos];\n\n      if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n        return null;\n      }\n\n      const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n\n      if (attrEndIndex < 0) {\n        return null;\n      }\n\n      attrValue = s.substring(pos, attrEndIndex);\n      attributes.push({\n        name: attrName,\n        value: this._resolveEntities(attrValue)\n      });\n      pos = attrEndIndex + 1;\n      skipWs();\n    }\n\n    return {\n      name,\n      attributes,\n      parsed: pos - start\n    };\n  }\n\n  _parseProcessingInstruction(s, start) {\n    let pos = start;\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \">\" && s[pos] !== \"?\" && s[pos] !== \"/\") {\n      ++pos;\n    }\n\n    const name = s.substring(start, pos);\n    skipWs();\n    const attrStart = pos;\n\n    while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n      ++pos;\n    }\n\n    const value = s.substring(attrStart, pos);\n    return {\n      name,\n      value,\n      parsed: pos - start\n    };\n  }\n\n  parseXml(s) {\n    let i = 0;\n\n    while (i < s.length) {\n      const ch = s[i];\n      let j = i;\n\n      if (ch === \"<\") {\n        ++j;\n        const ch2 = s[j];\n        let q;\n\n        switch (ch2) {\n          case \"/\":\n            ++j;\n            q = s.indexOf(\">\", j);\n\n            if (q < 0) {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n\n            this.onEndElement(s.substring(j, q));\n            j = q + 1;\n            break;\n\n          case \"?\":\n            ++j;\n\n            const pi = this._parseProcessingInstruction(s, j);\n\n            if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n              this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n              return;\n            }\n\n            this.onPi(pi.name, pi.value);\n            j += pi.parsed + 2;\n            break;\n\n          case \"!\":\n            if (s.substring(j + 1, j + 3) === \"--\") {\n              q = s.indexOf(\"-->\", j + 3);\n\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedComment);\n                return;\n              }\n\n              this.onComment(s.substring(j + 3, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n              q = s.indexOf(\"]]>\", j + 8);\n\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedCdat);\n                return;\n              }\n\n              this.onCdata(s.substring(j + 8, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n              const q2 = s.indexOf(\"[\", j + 8);\n              let complexDoctype = false;\n              q = s.indexOf(\">\", j + 8);\n\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                return;\n              }\n\n              if (q2 > 0 && q > q2) {\n                q = s.indexOf(\"]>\", j + 8);\n\n                if (q < 0) {\n                  this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                  return;\n                }\n\n                complexDoctype = true;\n              }\n\n              const doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n              this.onDoctype(doctypeContent);\n              j = q + (complexDoctype ? 2 : 1);\n            } else {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n\n            break;\n\n          default:\n            const content = this._parseContent(s, j);\n\n            if (content === null) {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n\n            let isClosed = false;\n\n            if (s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\") {\n              isClosed = true;\n            } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== \">\") {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n\n            this.onBeginElement(content.name, content.attributes, isClosed);\n            j += content.parsed + (isClosed ? 2 : 1);\n            break;\n        }\n      } else {\n        while (j < s.length && s[j] !== \"<\") {\n          j++;\n        }\n\n        const text = s.substring(i, j);\n        this.onText(this._resolveEntities(text));\n      }\n\n      i = j;\n    }\n  }\n\n  onResolveEntity(name) {\n    return `&${name};`;\n  }\n\n  onPi(name, value) {}\n\n  onComment(text) {}\n\n  onCdata(text) {}\n\n  onDoctype(doctypeContent) {}\n\n  onText(text) {}\n\n  onBeginElement(name, attributes, isEmpty) {}\n\n  onEndElement(name) {}\n\n  onError(code) {}\n\n}\n\nexports.XMLParserBase = XMLParserBase;\n\nclass SimpleDOMNode {\n  constructor(nodeName, nodeValue) {\n    this.nodeName = nodeName;\n    this.nodeValue = nodeValue;\n    Object.defineProperty(this, \"parentNode\", {\n      value: null,\n      writable: true\n    });\n  }\n\n  get firstChild() {\n    return this.childNodes && this.childNodes[0];\n  }\n\n  get nextSibling() {\n    const childNodes = this.parentNode.childNodes;\n\n    if (!childNodes) {\n      return undefined;\n    }\n\n    const index = childNodes.indexOf(this);\n\n    if (index === -1) {\n      return undefined;\n    }\n\n    return childNodes[index + 1];\n  }\n\n  get textContent() {\n    if (!this.childNodes) {\n      return this.nodeValue || \"\";\n    }\n\n    return this.childNodes.map(function (child) {\n      return child.textContent;\n    }).join(\"\");\n  }\n\n  get children() {\n    return this.childNodes || [];\n  }\n\n  hasChildNodes() {\n    return this.childNodes && this.childNodes.length > 0;\n  }\n\n  searchNode(paths, pos) {\n    if (pos >= paths.length) {\n      return this;\n    }\n\n    const component = paths[pos];\n    const stack = [];\n    let node = this;\n\n    while (true) {\n      if (component.name === node.nodeName) {\n        if (component.pos === 0) {\n          const res = node.searchNode(paths, pos + 1);\n\n          if (res !== null) {\n            return res;\n          }\n        } else if (stack.length === 0) {\n          return null;\n        } else {\n          const [parent] = stack.pop();\n          let siblingPos = 0;\n\n          for (const child of parent.childNodes) {\n            if (component.name === child.nodeName) {\n              if (siblingPos === component.pos) {\n                return child.searchNode(paths, pos + 1);\n              }\n\n              siblingPos++;\n            }\n          }\n\n          return node.searchNode(paths, pos + 1);\n        }\n      }\n\n      if (node.childNodes && node.childNodes.length !== 0) {\n        stack.push([node, 0]);\n        node = node.childNodes[0];\n      } else if (stack.length === 0) {\n        return null;\n      } else {\n        while (stack.length !== 0) {\n          const [parent, currentPos] = stack.pop();\n          const newPos = currentPos + 1;\n\n          if (newPos < parent.childNodes.length) {\n            stack.push([parent, newPos]);\n            node = parent.childNodes[newPos];\n            break;\n          }\n        }\n\n        if (stack.length === 0) {\n          return null;\n        }\n      }\n    }\n  }\n\n  dump(buffer) {\n    if (this.nodeName === \"#text\") {\n      buffer.push((0, _core_utils.encodeToXmlString)(this.nodeValue));\n      return;\n    }\n\n    buffer.push(`<${this.nodeName}`);\n\n    if (this.attributes) {\n      for (const attribute of this.attributes) {\n        buffer.push(` ${attribute.name}=\"${(0, _core_utils.encodeToXmlString)(attribute.value)}\"`);\n      }\n    }\n\n    if (this.hasChildNodes()) {\n      buffer.push(\">\");\n\n      for (const child of this.childNodes) {\n        child.dump(buffer);\n      }\n\n      buffer.push(`</${this.nodeName}>`);\n    } else if (this.nodeValue) {\n      buffer.push(`>${(0, _core_utils.encodeToXmlString)(this.nodeValue)}</${this.nodeName}>`);\n    } else {\n      buffer.push(\"/>\");\n    }\n  }\n\n}\n\nexports.SimpleDOMNode = SimpleDOMNode;\n\nclass SimpleXMLParser extends XMLParserBase {\n  constructor({\n    hasAttributes = false,\n    lowerCaseName = false\n  }) {\n    super();\n    this._currentFragment = null;\n    this._stack = null;\n    this._errorCode = XMLParserErrorCode.NoError;\n    this._hasAttributes = hasAttributes;\n    this._lowerCaseName = lowerCaseName;\n  }\n\n  parseFromString(data) {\n    this._currentFragment = [];\n    this._stack = [];\n    this._errorCode = XMLParserErrorCode.NoError;\n    this.parseXml(data);\n\n    if (this._errorCode !== XMLParserErrorCode.NoError) {\n      return undefined;\n    }\n\n    const [documentElement] = this._currentFragment;\n\n    if (!documentElement) {\n      return undefined;\n    }\n\n    return {\n      documentElement\n    };\n  }\n\n  onText(text) {\n    if (isWhitespaceString(text)) {\n      return;\n    }\n\n    const node = new SimpleDOMNode(\"#text\", text);\n\n    this._currentFragment.push(node);\n  }\n\n  onCdata(text) {\n    const node = new SimpleDOMNode(\"#text\", text);\n\n    this._currentFragment.push(node);\n  }\n\n  onBeginElement(name, attributes, isEmpty) {\n    if (this._lowerCaseName) {\n      name = name.toLowerCase();\n    }\n\n    const node = new SimpleDOMNode(name);\n    node.childNodes = [];\n\n    if (this._hasAttributes) {\n      node.attributes = attributes;\n    }\n\n    this._currentFragment.push(node);\n\n    if (isEmpty) {\n      return;\n    }\n\n    this._stack.push(this._currentFragment);\n\n    this._currentFragment = node.childNodes;\n  }\n\n  onEndElement(name) {\n    this._currentFragment = this._stack.pop() || [];\n\n    const lastElement = this._currentFragment.at(-1);\n\n    if (!lastElement) {\n      return null;\n    }\n\n    for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n      lastElement.childNodes[i].parentNode = lastElement;\n    }\n\n    return lastElement;\n  }\n\n  onError(code) {\n    this._errorCode = code;\n  }\n\n}\n\nexports.SimpleXMLParser = SimpleXMLParser;\n\n/***/ }),\n/* 67 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0;\nexports.calculateSHA384 = calculateSHA384;\nexports.calculateSHA512 = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _decrypt_stream = __w_pdfjs_require__(68);\n\nclass ARCFourCipher {\n  constructor(key) {\n    this.a = 0;\n    this.b = 0;\n    const s = new Uint8Array(256);\n    const keyLength = key.length;\n\n    for (let i = 0; i < 256; ++i) {\n      s[i] = i;\n    }\n\n    for (let i = 0, j = 0; i < 256; ++i) {\n      const tmp = s[i];\n      j = j + tmp + key[i % keyLength] & 0xff;\n      s[i] = s[j];\n      s[j] = tmp;\n    }\n\n    this.s = s;\n  }\n\n  encryptBlock(data) {\n    let a = this.a,\n        b = this.b;\n    const s = this.s;\n    const n = data.length;\n    const output = new Uint8Array(n);\n\n    for (let i = 0; i < n; ++i) {\n      a = a + 1 & 0xff;\n      const tmp = s[a];\n      b = b + tmp & 0xff;\n      const tmp2 = s[b];\n      s[a] = tmp2;\n      s[b] = tmp;\n      output[i] = data[i] ^ s[tmp + tmp2 & 0xff];\n    }\n\n    this.a = a;\n    this.b = b;\n    return output;\n  }\n\n  decryptBlock(data) {\n    return this.encryptBlock(data);\n  }\n\n  encrypt(data) {\n    return this.encryptBlock(data);\n  }\n\n}\n\nexports.ARCFourCipher = ARCFourCipher;\n\nconst calculateMD5 = function calculateMD5Closure() {\n  const 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]);\n  const 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]);\n\n  function hash(data, offset, length) {\n    let h0 = 1732584193,\n        h1 = -271733879,\n        h2 = -1732584194,\n        h3 = 271733878;\n    const paddedLength = length + 72 & ~63;\n    const padded = new Uint8Array(paddedLength);\n    let i, j;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    const n = paddedLength - 8;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = length << 3 & 0xff;\n    padded[i++] = length >> 5 & 0xff;\n    padded[i++] = length >> 13 & 0xff;\n    padded[i++] = length >> 21 & 0xff;\n    padded[i++] = length >>> 29 & 0xff;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    const w = new Int32Array(16);\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j, i += 4) {\n        w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n      }\n\n      let a = h0,\n          b = h1,\n          c = h2,\n          d = h3,\n          f,\n          g;\n\n      for (j = 0; j < 64; ++j) {\n        if (j < 16) {\n          f = b & c | ~b & d;\n          g = j;\n        } else if (j < 32) {\n          f = d & b | ~d & c;\n          g = 5 * j + 1 & 15;\n        } else if (j < 48) {\n          f = b ^ c ^ d;\n          g = 3 * j + 5 & 15;\n        } else {\n          f = c ^ (b | ~d);\n          g = 7 * j & 15;\n        }\n\n        const tmp = d,\n              rotateArg = a + f + k[j] + w[g] | 0,\n              rotate = r[j];\n        d = c;\n        c = b;\n        b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n        a = tmp;\n      }\n\n      h0 = h0 + a | 0;\n      h1 = h1 + b | 0;\n      h2 = h2 + c | 0;\n      h3 = h3 + d | 0;\n    }\n\n    return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n  }\n\n  return hash;\n}();\n\nexports.calculateMD5 = calculateMD5;\n\nclass Word64 {\n  constructor(highInteger, lowInteger) {\n    this.high = highInteger | 0;\n    this.low = lowInteger | 0;\n  }\n\n  and(word) {\n    this.high &= word.high;\n    this.low &= word.low;\n  }\n\n  xor(word) {\n    this.high ^= word.high;\n    this.low ^= word.low;\n  }\n\n  or(word) {\n    this.high |= word.high;\n    this.low |= word.low;\n  }\n\n  shiftRight(places) {\n    if (places >= 32) {\n      this.low = this.high >>> places - 32 | 0;\n      this.high = 0;\n    } else {\n      this.low = this.low >>> places | this.high << 32 - places;\n      this.high = this.high >>> places | 0;\n    }\n  }\n\n  shiftLeft(places) {\n    if (places >= 32) {\n      this.high = this.low << places - 32;\n      this.low = 0;\n    } else {\n      this.high = this.high << places | this.low >>> 32 - places;\n      this.low <<= places;\n    }\n  }\n\n  rotateRight(places) {\n    let low, high;\n\n    if (places & 32) {\n      high = this.low;\n      low = this.high;\n    } else {\n      low = this.low;\n      high = this.high;\n    }\n\n    places &= 31;\n    this.low = low >>> places | high << 32 - places;\n    this.high = high >>> places | low << 32 - places;\n  }\n\n  not() {\n    this.high = ~this.high;\n    this.low = ~this.low;\n  }\n\n  add(word) {\n    const lowAdd = (this.low >>> 0) + (word.low >>> 0);\n    let highAdd = (this.high >>> 0) + (word.high >>> 0);\n\n    if (lowAdd > 0xffffffff) {\n      highAdd += 1;\n    }\n\n    this.low = lowAdd | 0;\n    this.high = highAdd | 0;\n  }\n\n  copyTo(bytes, offset) {\n    bytes[offset] = this.high >>> 24 & 0xff;\n    bytes[offset + 1] = this.high >> 16 & 0xff;\n    bytes[offset + 2] = this.high >> 8 & 0xff;\n    bytes[offset + 3] = this.high & 0xff;\n    bytes[offset + 4] = this.low >>> 24 & 0xff;\n    bytes[offset + 5] = this.low >> 16 & 0xff;\n    bytes[offset + 6] = this.low >> 8 & 0xff;\n    bytes[offset + 7] = this.low & 0xff;\n  }\n\n  assign(word) {\n    this.high = word.high;\n    this.low = word.low;\n  }\n\n}\n\nconst calculateSHA256 = function calculateSHA256Closure() {\n  function rotr(x, n) {\n    return x >>> n | x << 32 - n;\n  }\n\n  function ch(x, y, z) {\n    return x & y ^ ~x & z;\n  }\n\n  function maj(x, y, z) {\n    return x & y ^ x & z ^ y & z;\n  }\n\n  function sigma(x) {\n    return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n  }\n\n  function sigmaPrime(x) {\n    return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n  }\n\n  function littleSigma(x) {\n    return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n  }\n\n  function littleSigmaPrime(x) {\n    return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\n  }\n\n  const k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n  function hash(data, offset, length) {\n    let h0 = 0x6a09e667,\n        h1 = 0xbb67ae85,\n        h2 = 0x3c6ef372,\n        h3 = 0xa54ff53a,\n        h4 = 0x510e527f,\n        h5 = 0x9b05688c,\n        h6 = 0x1f83d9ab,\n        h7 = 0x5be0cd19;\n    const paddedLength = Math.ceil((length + 9) / 64) * 64;\n    const padded = new Uint8Array(paddedLength);\n    let i, j;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    const n = paddedLength - 8;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = length >>> 29 & 0xff;\n    padded[i++] = length >> 21 & 0xff;\n    padded[i++] = length >> 13 & 0xff;\n    padded[i++] = length >> 5 & 0xff;\n    padded[i++] = length << 3 & 0xff;\n    const w = new Uint32Array(64);\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j) {\n        w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n        i += 4;\n      }\n\n      for (j = 16; j < 64; ++j) {\n        w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0;\n      }\n\n      let a = h0,\n          b = h1,\n          c = h2,\n          d = h3,\n          e = h4,\n          f = h5,\n          g = h6,\n          h = h7,\n          t1,\n          t2;\n\n      for (j = 0; j < 64; ++j) {\n        t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n        t2 = sigma(a) + maj(a, b, c);\n        h = g;\n        g = f;\n        f = e;\n        e = d + t1 | 0;\n        d = c;\n        c = b;\n        b = a;\n        a = t1 + t2 | 0;\n      }\n\n      h0 = h0 + a | 0;\n      h1 = h1 + b | 0;\n      h2 = h2 + c | 0;\n      h3 = h3 + d | 0;\n      h4 = h4 + e | 0;\n      h5 = h5 + f | 0;\n      h6 = h6 + g | 0;\n      h7 = h7 + h | 0;\n    }\n\n    return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA256 = calculateSHA256;\n\nconst calculateSHA512 = function calculateSHA512Closure() {\n  function ch(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.not();\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function maj(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.and(z);\n    result.xor(tmp);\n    tmp.assign(y);\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function sigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(28);\n    tmp.assign(x);\n    tmp.rotateRight(34);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(39);\n    result.xor(tmp);\n  }\n\n  function sigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(14);\n    tmp.assign(x);\n    tmp.rotateRight(18);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(41);\n    result.xor(tmp);\n  }\n\n  function littleSigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(1);\n    tmp.assign(x);\n    tmp.rotateRight(8);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(7);\n    result.xor(tmp);\n  }\n\n  function littleSigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(19);\n    tmp.assign(x);\n    tmp.rotateRight(61);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(6);\n    result.xor(tmp);\n  }\n\n  const k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n  function hash(data, offset, length, mode384 = false) {\n    let h0, h1, h2, h3, h4, h5, h6, h7;\n\n    if (!mode384) {\n      h0 = new Word64(0x6a09e667, 0xf3bcc908);\n      h1 = new Word64(0xbb67ae85, 0x84caa73b);\n      h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n      h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n      h4 = new Word64(0x510e527f, 0xade682d1);\n      h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n      h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n      h7 = new Word64(0x5be0cd19, 0x137e2179);\n    } else {\n      h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n      h1 = new Word64(0x629a292a, 0x367cd507);\n      h2 = new Word64(0x9159015a, 0x3070dd17);\n      h3 = new Word64(0x152fecd8, 0xf70e5939);\n      h4 = new Word64(0x67332667, 0xffc00b31);\n      h5 = new Word64(0x8eb44a87, 0x68581511);\n      h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n      h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n    }\n\n    const paddedLength = Math.ceil((length + 17) / 128) * 128;\n    const padded = new Uint8Array(paddedLength);\n    let i, j;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    const n = paddedLength - 16;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = length >>> 29 & 0xff;\n    padded[i++] = length >> 21 & 0xff;\n    padded[i++] = length >> 13 & 0xff;\n    padded[i++] = length >> 5 & 0xff;\n    padded[i++] = length << 3 & 0xff;\n    const w = new Array(80);\n\n    for (i = 0; i < 80; i++) {\n      w[i] = new Word64(0, 0);\n    }\n\n    let a = new Word64(0, 0),\n        b = new Word64(0, 0),\n        c = new Word64(0, 0);\n    let d = new Word64(0, 0),\n        e = new Word64(0, 0),\n        f = new Word64(0, 0);\n    let g = new Word64(0, 0),\n        h = new Word64(0, 0);\n    const t1 = new Word64(0, 0),\n          t2 = new Word64(0, 0);\n    const tmp1 = new Word64(0, 0),\n          tmp2 = new Word64(0, 0);\n    let tmp3;\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j) {\n        w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n        w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n        i += 8;\n      }\n\n      for (j = 16; j < 80; ++j) {\n        tmp3 = w[j];\n        littleSigmaPrime(tmp3, w[j - 2], tmp2);\n        tmp3.add(w[j - 7]);\n        littleSigma(tmp1, w[j - 15], tmp2);\n        tmp3.add(tmp1);\n        tmp3.add(w[j - 16]);\n      }\n\n      a.assign(h0);\n      b.assign(h1);\n      c.assign(h2);\n      d.assign(h3);\n      e.assign(h4);\n      f.assign(h5);\n      g.assign(h6);\n      h.assign(h7);\n\n      for (j = 0; j < 80; ++j) {\n        t1.assign(h);\n        sigmaPrime(tmp1, e, tmp2);\n        t1.add(tmp1);\n        ch(tmp1, e, f, g, tmp2);\n        t1.add(tmp1);\n        t1.add(k[j]);\n        t1.add(w[j]);\n        sigma(t2, a, tmp2);\n        maj(tmp1, a, b, c, tmp2);\n        t2.add(tmp1);\n        tmp3 = h;\n        h = g;\n        g = f;\n        f = e;\n        d.add(t1);\n        e = d;\n        d = c;\n        c = b;\n        b = a;\n        tmp3.assign(t1);\n        tmp3.add(t2);\n        a = tmp3;\n      }\n\n      h0.add(a);\n      h1.add(b);\n      h2.add(c);\n      h3.add(d);\n      h4.add(e);\n      h5.add(f);\n      h6.add(g);\n      h7.add(h);\n    }\n\n    let result;\n\n    if (!mode384) {\n      result = new Uint8Array(64);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n      h6.copyTo(result, 48);\n      h7.copyTo(result, 56);\n    } else {\n      result = new Uint8Array(48);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n    }\n\n    return result;\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA512 = calculateSHA512;\n\nfunction calculateSHA384(data, offset, length) {\n  return calculateSHA512(data, offset, length, true);\n}\n\nclass NullCipher {\n  decryptBlock(data) {\n    return data;\n  }\n\n  encrypt(data) {\n    return data;\n  }\n\n}\n\nclass AESBaseCipher {\n  constructor() {\n    if (this.constructor === AESBaseCipher) {\n      (0, _util.unreachable)(\"Cannot initialize AESBaseCipher.\");\n    }\n\n    this._s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n    this._inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n    this._mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n    this._mixCol = new Uint8Array(256);\n\n    for (let i = 0; i < 256; i++) {\n      if (i < 128) {\n        this._mixCol[i] = i << 1;\n      } else {\n        this._mixCol[i] = i << 1 ^ 0x1b;\n      }\n    }\n\n    this.buffer = new Uint8Array(16);\n    this.bufferPosition = 0;\n  }\n\n  _expandKey(cipherKey) {\n    (0, _util.unreachable)(\"Cannot call `_expandKey` on the base class\");\n  }\n\n  _decrypt(input, key) {\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n\n    for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n      t = state[13];\n      state[13] = state[9];\n      state[9] = state[5];\n      state[5] = state[1];\n      state[1] = t;\n      t = state[14];\n      u = state[10];\n      state[14] = state[6];\n      state[10] = state[2];\n      state[6] = t;\n      state[2] = u;\n      t = state[15];\n      u = state[11];\n      v = state[7];\n      state[15] = state[3];\n      state[11] = t;\n      state[7] = u;\n      state[3] = v;\n\n      for (let j = 0; j < 16; ++j) {\n        state[j] = this._inv_s[state[j]];\n      }\n\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = this._mix[state[j]];\n        const s1 = this._mix[state[j + 1]];\n        const s2 = this._mix[state[j + 2]];\n        const s3 = this._mix[state[j + 3]];\n        t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n        state[j] = t >>> 24 & 0xff;\n        state[j + 1] = t >> 16 & 0xff;\n        state[j + 2] = t >> 8 & 0xff;\n        state[j + 3] = t & 0xff;\n      }\n    }\n\n    t = state[13];\n    state[13] = state[9];\n    state[9] = state[5];\n    state[5] = state[1];\n    state[1] = t;\n    t = state[14];\n    u = state[10];\n    state[14] = state[6];\n    state[10] = state[2];\n    state[6] = t;\n    state[2] = u;\n    t = state[15];\n    u = state[11];\n    v = state[7];\n    state[15] = state[3];\n    state[11] = t;\n    state[7] = u;\n    state[3] = v;\n\n    for (let j = 0; j < 16; ++j) {\n      state[j] = this._inv_s[state[j]];\n      state[j] ^= key[j];\n    }\n\n    return state;\n  }\n\n  _encrypt(input, key) {\n    const s = this._s;\n    let t, u, v;\n    const state = new Uint8Array(16);\n    state.set(input);\n\n    for (let j = 0; j < 16; ++j) {\n      state[j] ^= key[j];\n    }\n\n    for (let i = 1; i < this._cyclesOfRepetition; i++) {\n      for (let j = 0; j < 16; ++j) {\n        state[j] = s[state[j]];\n      }\n\n      v = state[1];\n      state[1] = state[5];\n      state[5] = state[9];\n      state[9] = state[13];\n      state[13] = v;\n      v = state[2];\n      u = state[6];\n      state[2] = state[10];\n      state[6] = state[14];\n      state[10] = v;\n      state[14] = u;\n      v = state[3];\n      u = state[7];\n      t = state[11];\n      state[3] = state[15];\n      state[7] = v;\n      state[11] = u;\n      state[15] = t;\n\n      for (let j = 0; j < 16; j += 4) {\n        const s0 = state[j + 0];\n        const s1 = state[j + 1];\n        const s2 = state[j + 2];\n        const s3 = state[j + 3];\n        t = s0 ^ s1 ^ s2 ^ s3;\n        state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n        state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n        state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n        state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n      }\n\n      for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n    }\n\n    for (let j = 0; j < 16; ++j) {\n      state[j] = s[state[j]];\n    }\n\n    v = state[1];\n    state[1] = state[5];\n    state[5] = state[9];\n    state[9] = state[13];\n    state[13] = v;\n    v = state[2];\n    u = state[6];\n    state[2] = state[10];\n    state[6] = state[14];\n    state[10] = v;\n    state[14] = u;\n    v = state[3];\n    u = state[7];\n    t = state[11];\n    state[3] = state[15];\n    state[7] = v;\n    state[11] = u;\n    state[15] = t;\n\n    for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n      state[j] ^= key[k];\n    }\n\n    return state;\n  }\n\n  _decryptBlock2(data, finalize) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n        bufferLength = this.bufferPosition;\n    const result = [];\n    let iv = this.iv;\n\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n\n      if (bufferLength < 16) {\n        continue;\n      }\n\n      const plain = this._decrypt(buffer, this._key);\n\n      for (let j = 0; j < 16; ++j) {\n        plain[j] ^= iv[j];\n      }\n\n      iv = buffer;\n      result.push(plain);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n\n    let outputLength = 16 * result.length;\n\n    if (finalize) {\n      const lastBlock = result.at(-1);\n      let psLen = lastBlock[15];\n\n      if (psLen <= 16) {\n        for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n          if (lastBlock[i] !== psLen) {\n            psLen = 0;\n            break;\n          }\n        }\n\n        outputLength -= psLen;\n        result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n      }\n    }\n\n    const output = new Uint8Array(outputLength);\n\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n\n    return output;\n  }\n\n  decryptBlock(data, finalize, iv = null) {\n    const sourceLength = data.length;\n    const buffer = this.buffer;\n    let bufferLength = this.bufferPosition;\n\n    if (iv) {\n      this.iv = iv;\n    } else {\n      for (let i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n        buffer[bufferLength] = data[i];\n      }\n\n      if (bufferLength < 16) {\n        this.bufferLength = bufferLength;\n        return new Uint8Array(0);\n      }\n\n      this.iv = buffer;\n      data = data.subarray(16);\n    }\n\n    this.buffer = new Uint8Array(16);\n    this.bufferLength = 0;\n    this.decryptBlock = this._decryptBlock2;\n    return this.decryptBlock(data, finalize);\n  }\n\n  encrypt(data, iv) {\n    const sourceLength = data.length;\n    let buffer = this.buffer,\n        bufferLength = this.bufferPosition;\n    const result = [];\n\n    if (!iv) {\n      iv = new Uint8Array(16);\n    }\n\n    for (let i = 0; i < sourceLength; ++i) {\n      buffer[bufferLength] = data[i];\n      ++bufferLength;\n\n      if (bufferLength < 16) {\n        continue;\n      }\n\n      for (let j = 0; j < 16; ++j) {\n        buffer[j] ^= iv[j];\n      }\n\n      const cipher = this._encrypt(buffer, this._key);\n\n      iv = cipher;\n      result.push(cipher);\n      buffer = new Uint8Array(16);\n      bufferLength = 0;\n    }\n\n    this.buffer = buffer;\n    this.bufferLength = bufferLength;\n    this.iv = iv;\n\n    if (result.length === 0) {\n      return new Uint8Array(0);\n    }\n\n    const outputLength = 16 * result.length;\n    const output = new Uint8Array(outputLength);\n\n    for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n      output.set(result[i], j);\n    }\n\n    return output;\n  }\n\n}\n\nclass AES128Cipher extends AESBaseCipher {\n  constructor(key) {\n    super();\n    this._cyclesOfRepetition = 10;\n    this._keySize = 160;\n    this._rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\n    this._key = this._expandKey(key);\n  }\n\n  _expandKey(cipherKey) {\n    const b = 176;\n    const s = this._s;\n    const rcon = this._rcon;\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n\n    for (let j = 16, i = 1; j < b; ++i) {\n      let t1 = result[j - 3];\n      let t2 = result[j - 2];\n      let t3 = result[j - 1];\n      let t4 = result[j - 4];\n      t1 = s[t1];\n      t2 = s[t2];\n      t3 = s[t3];\n      t4 = s[t4];\n      t1 ^= rcon[i];\n\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 16];\n        j++;\n        result[j] = t2 ^= result[j - 16];\n        j++;\n        result[j] = t3 ^= result[j - 16];\n        j++;\n        result[j] = t4 ^= result[j - 16];\n        j++;\n      }\n    }\n\n    return result;\n  }\n\n}\n\nexports.AES128Cipher = AES128Cipher;\n\nclass AES256Cipher extends AESBaseCipher {\n  constructor(key) {\n    super();\n    this._cyclesOfRepetition = 14;\n    this._keySize = 224;\n    this._key = this._expandKey(key);\n  }\n\n  _expandKey(cipherKey) {\n    const b = 240;\n    const s = this._s;\n    const result = new Uint8Array(b);\n    result.set(cipherKey);\n    let r = 1;\n    let t1, t2, t3, t4;\n\n    for (let j = 32, i = 1; j < b; ++i) {\n      if (j % 32 === 16) {\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n      } else if (j % 32 === 0) {\n        t1 = result[j - 3];\n        t2 = result[j - 2];\n        t3 = result[j - 1];\n        t4 = result[j - 4];\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n        t1 ^= r;\n\n        if ((r <<= 1) >= 256) {\n          r = (r ^ 0x1b) & 0xff;\n        }\n      }\n\n      for (let n = 0; n < 4; ++n) {\n        result[j] = t1 ^= result[j - 32];\n        j++;\n        result[j] = t2 ^= result[j - 32];\n        j++;\n        result[j] = t3 ^= result[j - 32];\n        j++;\n        result[j] = t4 ^= result[j - 32];\n        j++;\n      }\n    }\n\n    return result;\n  }\n\n}\n\nexports.AES256Cipher = AES256Cipher;\n\nclass PDF17 {\n  checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerValidationSalt, password.length);\n    hashData.set(userBytes, password.length + ownerValidationSalt.length);\n    const result = calculateSHA256(hashData, 0, hashData.length);\n    return (0, _util.isArrayEqual)(result, ownerPassword);\n  }\n\n  checkUserPassword(password, userValidationSalt, userPassword) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userValidationSalt, password.length);\n    const result = calculateSHA256(hashData, 0, hashData.length);\n    return (0, _util.isArrayEqual)(result, userPassword);\n  }\n\n  getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n    const hashData = new Uint8Array(password.length + 56);\n    hashData.set(password, 0);\n    hashData.set(ownerKeySalt, password.length);\n    hashData.set(userBytes, password.length + ownerKeySalt.length);\n    const key = calculateSHA256(hashData, 0, hashData.length);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n  }\n\n  getUserKey(password, userKeySalt, userEncryption) {\n    const hashData = new Uint8Array(password.length + 8);\n    hashData.set(password, 0);\n    hashData.set(userKeySalt, password.length);\n    const key = calculateSHA256(hashData, 0, hashData.length);\n    const cipher = new AES256Cipher(key);\n    return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n  }\n\n}\n\nexports.PDF17 = PDF17;\n\nconst PDF20 = function PDF20Closure() {\n  function calculatePDF20Hash(password, input, userBytes) {\n    let k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n    let e = [0];\n    let i = 0;\n\n    while (i < 64 || e.at(-1) > i - 32) {\n      const combinedLength = password.length + k.length + userBytes.length,\n            combinedArray = new Uint8Array(combinedLength);\n      let writeOffset = 0;\n      combinedArray.set(password, writeOffset);\n      writeOffset += password.length;\n      combinedArray.set(k, writeOffset);\n      writeOffset += k.length;\n      combinedArray.set(userBytes, writeOffset);\n      const k1 = new Uint8Array(combinedLength * 64);\n\n      for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n        k1.set(combinedArray, pos);\n      }\n\n      const cipher = new AES128Cipher(k.subarray(0, 16));\n      e = cipher.encrypt(k1, k.subarray(16, 32));\n      let remainder = 0;\n\n      for (let z = 0; z < 16; z++) {\n        remainder *= 256 % 3;\n        remainder %= 3;\n        remainder += (e[z] >>> 0) % 3;\n        remainder %= 3;\n      }\n\n      if (remainder === 0) {\n        k = calculateSHA256(e, 0, e.length);\n      } else if (remainder === 1) {\n        k = calculateSHA384(e, 0, e.length);\n      } else if (remainder === 2) {\n        k = calculateSHA512(e, 0, e.length);\n      }\n\n      i++;\n    }\n\n    return k.subarray(0, 32);\n  }\n\n  class PDF20 {\n    hash(password, concatBytes, userBytes) {\n      return calculatePDF20Hash(password, concatBytes, userBytes);\n    }\n\n    checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n      const hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerValidationSalt, password.length);\n      hashData.set(userBytes, password.length + ownerValidationSalt.length);\n      const result = calculatePDF20Hash(password, hashData, userBytes);\n      return (0, _util.isArrayEqual)(result, ownerPassword);\n    }\n\n    checkUserPassword(password, userValidationSalt, userPassword) {\n      const hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userValidationSalt, password.length);\n      const result = calculatePDF20Hash(password, hashData, []);\n      return (0, _util.isArrayEqual)(result, userPassword);\n    }\n\n    getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n      const hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerKeySalt, password.length);\n      hashData.set(userBytes, password.length + ownerKeySalt.length);\n      const key = calculatePDF20Hash(password, hashData, userBytes);\n      const cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n    }\n\n    getUserKey(password, userKeySalt, userEncryption) {\n      const hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userKeySalt, password.length);\n      const key = calculatePDF20Hash(password, hashData, []);\n      const cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n    }\n\n  }\n\n  return PDF20;\n}();\n\nexports.PDF20 = PDF20;\n\nclass CipherTransform {\n  constructor(stringCipherConstructor, streamCipherConstructor) {\n    this.StringCipherConstructor = stringCipherConstructor;\n    this.StreamCipherConstructor = streamCipherConstructor;\n  }\n\n  createStream(stream, length) {\n    const cipher = new this.StreamCipherConstructor();\n    return new _decrypt_stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n      return cipher.decryptBlock(data, finalize);\n    });\n  }\n\n  decryptString(s) {\n    const cipher = new this.StringCipherConstructor();\n    let data = (0, _util.stringToBytes)(s);\n    data = cipher.decryptBlock(data, true);\n    return (0, _util.bytesToString)(data);\n  }\n\n  encryptString(s) {\n    const cipher = new this.StringCipherConstructor();\n\n    if (cipher instanceof AESBaseCipher) {\n      const strLen = s.length;\n      const pad = 16 - strLen % 16;\n      s += String.fromCharCode(pad).repeat(pad);\n      const iv = new Uint8Array(16);\n\n      if (typeof crypto !== \"undefined\") {\n        crypto.getRandomValues(iv);\n      } else {\n        for (let i = 0; i < 16; i++) {\n          iv[i] = Math.floor(256 * Math.random());\n        }\n      }\n\n      let data = (0, _util.stringToBytes)(s);\n      data = cipher.encrypt(data, iv);\n      const buf = new Uint8Array(16 + data.length);\n      buf.set(iv);\n      buf.set(data, 16);\n      return (0, _util.bytesToString)(buf);\n    }\n\n    let data = (0, _util.stringToBytes)(s);\n    data = cipher.encrypt(data);\n    return (0, _util.bytesToString)(data);\n  }\n\n}\n\nconst CipherTransformFactory = function CipherTransformFactoryClosure() {\n  const defaultPasswordBytes = new Uint8Array([0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80, 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a]);\n\n  function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n    if (password) {\n      const passwordLength = Math.min(127, password.length);\n      password = password.subarray(0, passwordLength);\n    } else {\n      password = [];\n    }\n\n    let pdfAlgorithm;\n\n    if (revision === 6) {\n      pdfAlgorithm = new PDF20();\n    } else {\n      pdfAlgorithm = new PDF17();\n    }\n\n    if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n      return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n    } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n      return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n    }\n\n    return null;\n  }\n\n  function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n    const hashDataSize = 40 + ownerPassword.length + fileId.length;\n    const hashData = new Uint8Array(hashDataSize);\n    let i = 0,\n        j,\n        n;\n\n    if (password) {\n      n = Math.min(32, password.length);\n\n      for (; i < n; ++i) {\n        hashData[i] = password[i];\n      }\n    }\n\n    j = 0;\n\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n\n    for (j = 0, n = ownerPassword.length; j < n; ++j) {\n      hashData[i++] = ownerPassword[j];\n    }\n\n    hashData[i++] = flags & 0xff;\n    hashData[i++] = flags >> 8 & 0xff;\n    hashData[i++] = flags >> 16 & 0xff;\n    hashData[i++] = flags >>> 24 & 0xff;\n\n    for (j = 0, n = fileId.length; j < n; ++j) {\n      hashData[i++] = fileId[j];\n    }\n\n    if (revision >= 4 && !encryptMetadata) {\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n      hashData[i++] = 0xff;\n    }\n\n    let hash = calculateMD5(hashData, 0, i);\n    const keyLengthInBytes = keyLength >> 3;\n\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, keyLengthInBytes);\n      }\n    }\n\n    const encryptionKey = hash.subarray(0, keyLengthInBytes);\n    let cipher, checkData;\n\n    if (revision >= 3) {\n      for (i = 0; i < 32; ++i) {\n        hashData[i] = defaultPasswordBytes[i];\n      }\n\n      for (j = 0, n = fileId.length; j < n; ++j) {\n        hashData[i++] = fileId[j];\n      }\n\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n      n = encryptionKey.length;\n      const derivedKey = new Uint8Array(n);\n\n      for (j = 1; j <= 19; ++j) {\n        for (let k = 0; k < n; ++k) {\n          derivedKey[k] = encryptionKey[k] ^ j;\n        }\n\n        cipher = new ARCFourCipher(derivedKey);\n        checkData = cipher.encryptBlock(checkData);\n      }\n\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    } else {\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(defaultPasswordBytes);\n\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    }\n\n    return encryptionKey;\n  }\n\n  function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n    const hashData = new Uint8Array(32);\n    let i = 0;\n    const n = Math.min(32, password.length);\n\n    for (; i < n; ++i) {\n      hashData[i] = password[i];\n    }\n\n    let j = 0;\n\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n\n    let hash = calculateMD5(hashData, 0, i);\n    const keyLengthInBytes = keyLength >> 3;\n\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, hash.length);\n      }\n    }\n\n    let cipher, userPassword;\n\n    if (revision >= 3) {\n      userPassword = ownerPassword;\n      const derivedKey = new Uint8Array(keyLengthInBytes);\n\n      for (j = 19; j >= 0; j--) {\n        for (let k = 0; k < keyLengthInBytes; ++k) {\n          derivedKey[k] = hash[k] ^ j;\n        }\n\n        cipher = new ARCFourCipher(derivedKey);\n        userPassword = cipher.encryptBlock(userPassword);\n      }\n    } else {\n      cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n      userPassword = cipher.encryptBlock(ownerPassword);\n    }\n\n    return userPassword;\n  }\n\n  const identityName = _primitives.Name.get(\"Identity\");\n\n  function buildObjectKey(num, gen, encryptionKey, isAes = false) {\n    const key = new Uint8Array(encryptionKey.length + 9);\n    const n = encryptionKey.length;\n    let i;\n\n    for (i = 0; i < n; ++i) {\n      key[i] = encryptionKey[i];\n    }\n\n    key[i++] = num & 0xff;\n    key[i++] = num >> 8 & 0xff;\n    key[i++] = num >> 16 & 0xff;\n    key[i++] = gen & 0xff;\n    key[i++] = gen >> 8 & 0xff;\n\n    if (isAes) {\n      key[i++] = 0x73;\n      key[i++] = 0x41;\n      key[i++] = 0x6c;\n      key[i++] = 0x54;\n    }\n\n    const hash = calculateMD5(key, 0, i);\n    return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n  }\n\n  function buildCipherConstructor(cf, name, num, gen, key) {\n    if (!(name instanceof _primitives.Name)) {\n      throw new _util.FormatError(\"Invalid crypt filter name.\");\n    }\n\n    const cryptFilter = cf.get(name.name);\n    let cfm;\n\n    if (cryptFilter !== null && cryptFilter !== undefined) {\n      cfm = cryptFilter.get(\"CFM\");\n    }\n\n    if (!cfm || cfm.name === \"None\") {\n      return function cipherTransformFactoryBuildCipherConstructorNone() {\n        return new NullCipher();\n      };\n    }\n\n    if (cfm.name === \"V2\") {\n      return function cipherTransformFactoryBuildCipherConstructorV2() {\n        return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n      };\n    }\n\n    if (cfm.name === \"AESV2\") {\n      return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n        return new AES128Cipher(buildObjectKey(num, gen, key, true));\n      };\n    }\n\n    if (cfm.name === \"AESV3\") {\n      return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n        return new AES256Cipher(key);\n      };\n    }\n\n    throw new _util.FormatError(\"Unknown crypto method\");\n  }\n\n  class CipherTransformFactory {\n    constructor(dict, fileId, password) {\n      const filter = dict.get(\"Filter\");\n\n      if (!(0, _primitives.isName)(filter, \"Standard\")) {\n        throw new _util.FormatError(\"unknown encryption method\");\n      }\n\n      this.filterName = filter.name;\n      this.dict = dict;\n      const algorithm = dict.get(\"V\");\n\n      if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n        throw new _util.FormatError(\"unsupported encryption algorithm\");\n      }\n\n      this.algorithm = algorithm;\n      let keyLength = dict.get(\"Length\");\n\n      if (!keyLength) {\n        if (algorithm <= 3) {\n          keyLength = 40;\n        } else {\n          const cfDict = dict.get(\"CF\");\n          const streamCryptoName = dict.get(\"StmF\");\n\n          if (cfDict instanceof _primitives.Dict && streamCryptoName instanceof _primitives.Name) {\n            cfDict.suppressEncryption = true;\n            const handlerDict = cfDict.get(streamCryptoName.name);\n            keyLength = handlerDict && handlerDict.get(\"Length\") || 128;\n\n            if (keyLength < 40) {\n              keyLength <<= 3;\n            }\n          }\n        }\n      }\n\n      if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n        throw new _util.FormatError(\"invalid key length\");\n      }\n\n      const ownerPassword = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(0, 32);\n      const userPassword = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 32);\n      const flags = dict.get(\"P\");\n      const revision = dict.get(\"R\");\n      const encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get(\"EncryptMetadata\") !== false;\n      this.encryptMetadata = encryptMetadata;\n      const fileIdBytes = (0, _util.stringToBytes)(fileId);\n      let passwordBytes;\n\n      if (password) {\n        if (revision === 6) {\n          try {\n            password = (0, _util.utf8StringToString)(password);\n          } catch (ex) {\n            (0, _util.warn)(\"CipherTransformFactory: \" + \"Unable to convert UTF8 encoded password.\");\n          }\n        }\n\n        passwordBytes = (0, _util.stringToBytes)(password);\n      }\n\n      let encryptionKey;\n\n      if (algorithm !== 5) {\n        encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n      } else {\n        const ownerValidationSalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(32, 40);\n        const ownerKeySalt = (0, _util.stringToBytes)(dict.get(\"O\")).subarray(40, 48);\n        const uBytes = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(0, 48);\n        const userValidationSalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(32, 40);\n        const userKeySalt = (0, _util.stringToBytes)(dict.get(\"U\")).subarray(40, 48);\n        const ownerEncryption = (0, _util.stringToBytes)(dict.get(\"OE\"));\n        const userEncryption = (0, _util.stringToBytes)(dict.get(\"UE\"));\n        const perms = (0, _util.stringToBytes)(dict.get(\"Perms\"));\n        encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n      }\n\n      if (!encryptionKey && !password) {\n        throw new _util.PasswordException(\"No password given\", _util.PasswordResponses.NEED_PASSWORD);\n      } else if (!encryptionKey && password) {\n        const decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n        encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n      }\n\n      if (!encryptionKey) {\n        throw new _util.PasswordException(\"Incorrect Password\", _util.PasswordResponses.INCORRECT_PASSWORD);\n      }\n\n      this.encryptionKey = encryptionKey;\n\n      if (algorithm >= 4) {\n        const cf = dict.get(\"CF\");\n\n        if (cf instanceof _primitives.Dict) {\n          cf.suppressEncryption = true;\n        }\n\n        this.cf = cf;\n        this.stmf = dict.get(\"StmF\") || identityName;\n        this.strf = dict.get(\"StrF\") || identityName;\n        this.eff = dict.get(\"EFF\") || this.stmf;\n      }\n    }\n\n    createCipherTransform(num, gen) {\n      if (this.algorithm === 4 || this.algorithm === 5) {\n        return new CipherTransform(buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey));\n      }\n\n      const key = buildObjectKey(num, gen, this.encryptionKey, false);\n\n      const cipherConstructor = function buildCipherCipherConstructor() {\n        return new ARCFourCipher(key);\n      };\n\n      return new CipherTransform(cipherConstructor, cipherConstructor);\n    }\n\n  }\n\n  return CipherTransformFactory;\n}();\n\nexports.CipherTransformFactory = CipherTransformFactory;\n\n/***/ }),\n/* 68 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DecryptStream = void 0;\n\nvar _decode_stream = __w_pdfjs_require__(19);\n\nconst chunkSize = 512;\n\nclass DecryptStream extends _decode_stream.DecodeStream {\n  constructor(str, maybeLength, decrypt) {\n    super(maybeLength);\n    this.str = str;\n    this.dict = str.dict;\n    this.decrypt = decrypt;\n    this.nextChunk = null;\n    this.initialized = false;\n  }\n\n  readBlock() {\n    let chunk;\n\n    if (this.initialized) {\n      chunk = this.nextChunk;\n    } else {\n      chunk = this.str.getBytes(chunkSize);\n      this.initialized = true;\n    }\n\n    if (!chunk || chunk.length === 0) {\n      this.eof = true;\n      return;\n    }\n\n    this.nextChunk = this.str.getBytes(chunkSize);\n    const hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n    const decrypt = this.decrypt;\n    chunk = decrypt(chunk, !hasMoreData);\n    let bufferLength = this.bufferLength;\n    const n = chunk.length,\n          buffer = this.ensureBuffer(bufferLength + n);\n\n    for (let i = 0; i < n; i++) {\n      buffer[bufferLength++] = chunk[i];\n    }\n\n    this.bufferLength = bufferLength;\n  }\n\n}\n\nexports.DecryptStream = DecryptStream;\n\n/***/ }),\n/* 69 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Catalog = void 0;\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _name_number_tree = __w_pdfjs_require__(70);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _cleanup_helper = __w_pdfjs_require__(71);\n\nvar _colorspace = __w_pdfjs_require__(14);\n\nvar _file_spec = __w_pdfjs_require__(72);\n\nvar _image_utils = __w_pdfjs_require__(59);\n\nvar _metadata_parser = __w_pdfjs_require__(73);\n\nvar _struct_tree = __w_pdfjs_require__(74);\n\nfunction fetchDestination(dest) {\n  if (dest instanceof _primitives.Dict) {\n    dest = dest.get(\"D\");\n  }\n\n  return Array.isArray(dest) ? dest : null;\n}\n\nclass Catalog {\n  constructor(pdfManager, xref) {\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n    this._catDict = xref.getCatalogObj();\n\n    if (!(this._catDict instanceof _primitives.Dict)) {\n      throw new _util.FormatError(\"Catalog object is not a dictionary.\");\n    }\n\n    this.toplevelPagesDict;\n    this._actualNumPages = null;\n    this.fontCache = new _primitives.RefSetCache();\n    this.builtInCMapCache = new Map();\n    this.standardFontDataCache = new Map();\n    this.globalImageCache = new _image_utils.GlobalImageCache();\n    this.pageKidsCountCache = new _primitives.RefSetCache();\n    this.pageIndexCache = new _primitives.RefSetCache();\n    this.nonBlendModesSet = new _primitives.RefSet();\n  }\n\n  get version() {\n    const version = this._catDict.get(\"Version\");\n\n    return (0, _util.shadow)(this, \"version\", version instanceof _primitives.Name ? version.name : null);\n  }\n\n  get lang() {\n    const lang = this._catDict.get(\"Lang\");\n\n    return (0, _util.shadow)(this, \"lang\", typeof lang === \"string\" ? (0, _util.stringToPDFString)(lang) : null);\n  }\n\n  get needsRendering() {\n    const needsRendering = this._catDict.get(\"NeedsRendering\");\n\n    return (0, _util.shadow)(this, \"needsRendering\", typeof needsRendering === \"boolean\" ? needsRendering : false);\n  }\n\n  get collection() {\n    let collection = null;\n\n    try {\n      const obj = this._catDict.get(\"Collection\");\n\n      if (obj instanceof _primitives.Dict && obj.size > 0) {\n        collection = obj;\n      }\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.info)(\"Cannot fetch Collection entry; assuming no collection is present.\");\n    }\n\n    return (0, _util.shadow)(this, \"collection\", collection);\n  }\n\n  get acroForm() {\n    let acroForm = null;\n\n    try {\n      const obj = this._catDict.get(\"AcroForm\");\n\n      if (obj instanceof _primitives.Dict && obj.size > 0) {\n        acroForm = obj;\n      }\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.info)(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n    }\n\n    return (0, _util.shadow)(this, \"acroForm\", acroForm);\n  }\n\n  get acroFormRef() {\n    const value = this._catDict.getRaw(\"AcroForm\");\n\n    return (0, _util.shadow)(this, \"acroFormRef\", value instanceof _primitives.Ref ? value : null);\n  }\n\n  get metadata() {\n    const streamRef = this._catDict.getRaw(\"Metadata\");\n\n    if (!(streamRef instanceof _primitives.Ref)) {\n      return (0, _util.shadow)(this, \"metadata\", null);\n    }\n\n    let metadata = null;\n\n    try {\n      const suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata);\n      const stream = this.xref.fetch(streamRef, suppressEncryption);\n\n      if (stream instanceof _base_stream.BaseStream && stream.dict instanceof _primitives.Dict) {\n        const type = stream.dict.get(\"Type\");\n        const subtype = stream.dict.get(\"Subtype\");\n\n        if ((0, _primitives.isName)(type, \"Metadata\") && (0, _primitives.isName)(subtype, \"XML\")) {\n          const data = (0, _util.stringToUTF8String)(stream.getString());\n\n          if (data) {\n            metadata = new _metadata_parser.MetadataParser(data).serializable;\n          }\n        }\n      }\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.info)(`Skipping invalid Metadata: \"${ex}\".`);\n    }\n\n    return (0, _util.shadow)(this, \"metadata\", metadata);\n  }\n\n  get markInfo() {\n    let markInfo = null;\n\n    try {\n      markInfo = this._readMarkInfo();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable to read mark info.\");\n    }\n\n    return (0, _util.shadow)(this, \"markInfo\", markInfo);\n  }\n\n  _readMarkInfo() {\n    const obj = this._catDict.get(\"MarkInfo\");\n\n    if (!(obj instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    const markInfo = {\n      Marked: false,\n      UserProperties: false,\n      Suspects: false\n    };\n\n    for (const key in markInfo) {\n      const value = obj.get(key);\n\n      if (typeof value === \"boolean\") {\n        markInfo[key] = value;\n      }\n    }\n\n    return markInfo;\n  }\n\n  get structTreeRoot() {\n    let structTree = null;\n\n    try {\n      structTree = this._readStructTreeRoot();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable read to structTreeRoot info.\");\n    }\n\n    return (0, _util.shadow)(this, \"structTreeRoot\", structTree);\n  }\n\n  _readStructTreeRoot() {\n    const obj = this._catDict.get(\"StructTreeRoot\");\n\n    if (!(obj instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    const root = new _struct_tree.StructTreeRoot(obj);\n    root.init();\n    return root;\n  }\n\n  get toplevelPagesDict() {\n    const pagesObj = this._catDict.get(\"Pages\");\n\n    if (!(pagesObj instanceof _primitives.Dict)) {\n      throw new _util.FormatError(\"Invalid top-level pages dictionary.\");\n    }\n\n    return (0, _util.shadow)(this, \"toplevelPagesDict\", pagesObj);\n  }\n\n  get documentOutline() {\n    let obj = null;\n\n    try {\n      obj = this._readDocumentOutline();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable to read document outline.\");\n    }\n\n    return (0, _util.shadow)(this, \"documentOutline\", obj);\n  }\n\n  _readDocumentOutline() {\n    let obj = this._catDict.get(\"Outlines\");\n\n    if (!(obj instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    obj = obj.getRaw(\"First\");\n\n    if (!(obj instanceof _primitives.Ref)) {\n      return null;\n    }\n\n    const root = {\n      items: []\n    };\n    const queue = [{\n      obj,\n      parent: root\n    }];\n    const processed = new _primitives.RefSet();\n    processed.put(obj);\n    const xref = this.xref,\n          blackColor = new Uint8ClampedArray(3);\n\n    while (queue.length > 0) {\n      const i = queue.shift();\n      const outlineDict = xref.fetchIfRef(i.obj);\n\n      if (outlineDict === null) {\n        continue;\n      }\n\n      if (!outlineDict.has(\"Title\")) {\n        throw new _util.FormatError(\"Invalid outline item encountered.\");\n      }\n\n      const data = {\n        url: null,\n        dest: null\n      };\n      Catalog.parseDestDictionary({\n        destDict: outlineDict,\n        resultObj: data,\n        docBaseUrl: this.pdfManager.docBaseUrl\n      });\n      const title = outlineDict.get(\"Title\");\n      const flags = outlineDict.get(\"F\") || 0;\n      const color = outlineDict.getArray(\"C\");\n      const count = outlineDict.get(\"Count\");\n      let rgbColor = blackColor;\n\n      if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n        rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0);\n      }\n\n      const outlineItem = {\n        dest: data.dest,\n        url: data.url,\n        unsafeUrl: data.unsafeUrl,\n        newWindow: data.newWindow,\n        title: (0, _util.stringToPDFString)(title),\n        color: rgbColor,\n        count: Number.isInteger(count) ? count : undefined,\n        bold: !!(flags & 2),\n        italic: !!(flags & 1),\n        items: []\n      };\n      i.parent.items.push(outlineItem);\n      obj = outlineDict.getRaw(\"First\");\n\n      if (obj instanceof _primitives.Ref && !processed.has(obj)) {\n        queue.push({\n          obj,\n          parent: outlineItem\n        });\n        processed.put(obj);\n      }\n\n      obj = outlineDict.getRaw(\"Next\");\n\n      if (obj instanceof _primitives.Ref && !processed.has(obj)) {\n        queue.push({\n          obj,\n          parent: i.parent\n        });\n        processed.put(obj);\n      }\n    }\n\n    return root.items.length > 0 ? root.items : null;\n  }\n\n  get permissions() {\n    let permissions = null;\n\n    try {\n      permissions = this._readPermissions();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable to read permissions.\");\n    }\n\n    return (0, _util.shadow)(this, \"permissions\", permissions);\n  }\n\n  _readPermissions() {\n    const encrypt = this.xref.trailer.get(\"Encrypt\");\n\n    if (!(encrypt instanceof _primitives.Dict)) {\n      return null;\n    }\n\n    let flags = encrypt.get(\"P\");\n\n    if (typeof flags !== \"number\") {\n      return null;\n    }\n\n    flags += 2 ** 32;\n    const permissions = [];\n\n    for (const key in _util.PermissionFlag) {\n      const value = _util.PermissionFlag[key];\n\n      if (flags & value) {\n        permissions.push(value);\n      }\n    }\n\n    return permissions;\n  }\n\n  get optionalContentConfig() {\n    let config = null;\n\n    try {\n      const properties = this._catDict.get(\"OCProperties\");\n\n      if (!properties) {\n        return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n      }\n\n      const defaultConfig = properties.get(\"D\");\n\n      if (!defaultConfig) {\n        return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n      }\n\n      const groupsData = properties.get(\"OCGs\");\n\n      if (!Array.isArray(groupsData)) {\n        return (0, _util.shadow)(this, \"optionalContentConfig\", null);\n      }\n\n      const groups = [];\n      const groupRefs = [];\n\n      for (const groupRef of groupsData) {\n        if (!(groupRef instanceof _primitives.Ref)) {\n          continue;\n        }\n\n        groupRefs.push(groupRef);\n        const group = this.xref.fetchIfRef(groupRef);\n        groups.push({\n          id: groupRef.toString(),\n          name: typeof group.get(\"Name\") === \"string\" ? (0, _util.stringToPDFString)(group.get(\"Name\")) : null,\n          intent: typeof group.get(\"Intent\") === \"string\" ? (0, _util.stringToPDFString)(group.get(\"Intent\")) : null\n        });\n      }\n\n      config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n      config.groups = groups;\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`Unable to read optional content config: ${ex}`);\n    }\n\n    return (0, _util.shadow)(this, \"optionalContentConfig\", config);\n  }\n\n  _readOptionalContentConfig(config, contentGroupRefs) {\n    function parseOnOff(refs) {\n      const onParsed = [];\n\n      if (Array.isArray(refs)) {\n        for (const value of refs) {\n          if (!(value instanceof _primitives.Ref)) {\n            continue;\n          }\n\n          if (contentGroupRefs.includes(value)) {\n            onParsed.push(value.toString());\n          }\n        }\n      }\n\n      return onParsed;\n    }\n\n    function parseOrder(refs, nestedLevels = 0) {\n      if (!Array.isArray(refs)) {\n        return null;\n      }\n\n      const order = [];\n\n      for (const value of refs) {\n        if (value instanceof _primitives.Ref && contentGroupRefs.includes(value)) {\n          parsedOrderRefs.put(value);\n          order.push(value.toString());\n          continue;\n        }\n\n        const nestedOrder = parseNestedOrder(value, nestedLevels);\n\n        if (nestedOrder) {\n          order.push(nestedOrder);\n        }\n      }\n\n      if (nestedLevels > 0) {\n        return order;\n      }\n\n      const hiddenGroups = [];\n\n      for (const groupRef of contentGroupRefs) {\n        if (parsedOrderRefs.has(groupRef)) {\n          continue;\n        }\n\n        hiddenGroups.push(groupRef.toString());\n      }\n\n      if (hiddenGroups.length) {\n        order.push({\n          name: null,\n          order: hiddenGroups\n        });\n      }\n\n      return order;\n    }\n\n    function parseNestedOrder(ref, nestedLevels) {\n      if (++nestedLevels > MAX_NESTED_LEVELS) {\n        (0, _util.warn)(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n        return null;\n      }\n\n      const value = xref.fetchIfRef(ref);\n\n      if (!Array.isArray(value)) {\n        return null;\n      }\n\n      const nestedName = xref.fetchIfRef(value[0]);\n\n      if (typeof nestedName !== \"string\") {\n        return null;\n      }\n\n      const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n\n      if (!nestedOrder || !nestedOrder.length) {\n        return null;\n      }\n\n      return {\n        name: (0, _util.stringToPDFString)(nestedName),\n        order: nestedOrder\n      };\n    }\n\n    const xref = this.xref,\n          parsedOrderRefs = new _primitives.RefSet(),\n          MAX_NESTED_LEVELS = 10;\n    return {\n      name: typeof config.get(\"Name\") === \"string\" ? (0, _util.stringToPDFString)(config.get(\"Name\")) : null,\n      creator: typeof config.get(\"Creator\") === \"string\" ? (0, _util.stringToPDFString)(config.get(\"Creator\")) : null,\n      baseState: config.get(\"BaseState\") instanceof _primitives.Name ? config.get(\"BaseState\").name : null,\n      on: parseOnOff(config.get(\"ON\")),\n      off: parseOnOff(config.get(\"OFF\")),\n      order: parseOrder(config.get(\"Order\")),\n      groups: null\n    };\n  }\n\n  setActualNumPages(num = null) {\n    this._actualNumPages = num;\n  }\n\n  get hasActualNumPages() {\n    return this._actualNumPages !== null;\n  }\n\n  get _pagesCount() {\n    const obj = this.toplevelPagesDict.get(\"Count\");\n\n    if (!Number.isInteger(obj)) {\n      throw new _util.FormatError(\"Page count in top-level pages dictionary is not an integer.\");\n    }\n\n    return (0, _util.shadow)(this, \"_pagesCount\", obj);\n  }\n\n  get numPages() {\n    return this.hasActualNumPages ? this._actualNumPages : this._pagesCount;\n  }\n\n  get destinations() {\n    const obj = this._readDests(),\n          dests = Object.create(null);\n\n    if (obj instanceof _name_number_tree.NameTree) {\n      for (const [key, value] of obj.getAll()) {\n        const dest = fetchDestination(value);\n\n        if (dest) {\n          dests[(0, _util.stringToPDFString)(key)] = dest;\n        }\n      }\n    } else if (obj instanceof _primitives.Dict) {\n      obj.forEach(function (key, value) {\n        const dest = fetchDestination(value);\n\n        if (dest) {\n          dests[key] = dest;\n        }\n      });\n    }\n\n    return (0, _util.shadow)(this, \"destinations\", dests);\n  }\n\n  getDestination(id) {\n    const obj = this._readDests();\n\n    if (obj instanceof _name_number_tree.NameTree) {\n      const dest = fetchDestination(obj.get(id));\n\n      if (dest) {\n        return dest;\n      }\n\n      const allDest = this.destinations[id];\n\n      if (allDest) {\n        (0, _util.warn)(`Found \"${id}\" at an incorrect position in the NameTree.`);\n        return allDest;\n      }\n    } else if (obj instanceof _primitives.Dict) {\n      const dest = fetchDestination(obj.get(id));\n\n      if (dest) {\n        return dest;\n      }\n    }\n\n    return null;\n  }\n\n  _readDests() {\n    const obj = this._catDict.get(\"Names\");\n\n    if (obj && obj.has(\"Dests\")) {\n      return new _name_number_tree.NameTree(obj.getRaw(\"Dests\"), this.xref);\n    } else if (this._catDict.has(\"Dests\")) {\n      return this._catDict.get(\"Dests\");\n    }\n\n    return undefined;\n  }\n\n  get pageLabels() {\n    let obj = null;\n\n    try {\n      obj = this._readPageLabels();\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(\"Unable to read page labels.\");\n    }\n\n    return (0, _util.shadow)(this, \"pageLabels\", obj);\n  }\n\n  _readPageLabels() {\n    const obj = this._catDict.getRaw(\"PageLabels\");\n\n    if (!obj) {\n      return null;\n    }\n\n    const pageLabels = new Array(this.numPages);\n    let style = null,\n        prefix = \"\";\n    const numberTree = new _name_number_tree.NumberTree(obj, this.xref);\n    const nums = numberTree.getAll();\n    let currentLabel = \"\",\n        currentIndex = 1;\n\n    for (let i = 0, ii = this.numPages; i < ii; i++) {\n      const labelDict = nums.get(i);\n\n      if (labelDict !== undefined) {\n        if (!(labelDict instanceof _primitives.Dict)) {\n          throw new _util.FormatError(\"PageLabel is not a dictionary.\");\n        }\n\n        if (labelDict.has(\"Type\") && !(0, _primitives.isName)(labelDict.get(\"Type\"), \"PageLabel\")) {\n          throw new _util.FormatError(\"Invalid type in PageLabel dictionary.\");\n        }\n\n        if (labelDict.has(\"S\")) {\n          const s = labelDict.get(\"S\");\n\n          if (!(s instanceof _primitives.Name)) {\n            throw new _util.FormatError(\"Invalid style in PageLabel dictionary.\");\n          }\n\n          style = s.name;\n        } else {\n          style = null;\n        }\n\n        if (labelDict.has(\"P\")) {\n          const p = labelDict.get(\"P\");\n\n          if (typeof p !== \"string\") {\n            throw new _util.FormatError(\"Invalid prefix in PageLabel dictionary.\");\n          }\n\n          prefix = (0, _util.stringToPDFString)(p);\n        } else {\n          prefix = \"\";\n        }\n\n        if (labelDict.has(\"St\")) {\n          const st = labelDict.get(\"St\");\n\n          if (!(Number.isInteger(st) && st >= 1)) {\n            throw new _util.FormatError(\"Invalid start in PageLabel dictionary.\");\n          }\n\n          currentIndex = st;\n        } else {\n          currentIndex = 1;\n        }\n      }\n\n      switch (style) {\n        case \"D\":\n          currentLabel = currentIndex;\n          break;\n\n        case \"R\":\n        case \"r\":\n          currentLabel = (0, _core_utils.toRomanNumerals)(currentIndex, style === \"r\");\n          break;\n\n        case \"A\":\n        case \"a\":\n          const LIMIT = 26;\n          const A_UPPER_CASE = 0x41,\n                A_LOWER_CASE = 0x61;\n          const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n          const letterIndex = currentIndex - 1;\n          const character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n          currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);\n          break;\n\n        default:\n          if (style) {\n            throw new _util.FormatError(`Invalid style \"${style}\" in PageLabel dictionary.`);\n          }\n\n          currentLabel = \"\";\n      }\n\n      pageLabels[i] = prefix + currentLabel;\n      currentIndex++;\n    }\n\n    return pageLabels;\n  }\n\n  get pageLayout() {\n    const obj = this._catDict.get(\"PageLayout\");\n\n    let pageLayout = \"\";\n\n    if (obj instanceof _primitives.Name) {\n      switch (obj.name) {\n        case \"SinglePage\":\n        case \"OneColumn\":\n        case \"TwoColumnLeft\":\n        case \"TwoColumnRight\":\n        case \"TwoPageLeft\":\n        case \"TwoPageRight\":\n          pageLayout = obj.name;\n      }\n    }\n\n    return (0, _util.shadow)(this, \"pageLayout\", pageLayout);\n  }\n\n  get pageMode() {\n    const obj = this._catDict.get(\"PageMode\");\n\n    let pageMode = \"UseNone\";\n\n    if (obj instanceof _primitives.Name) {\n      switch (obj.name) {\n        case \"UseNone\":\n        case \"UseOutlines\":\n        case \"UseThumbs\":\n        case \"FullScreen\":\n        case \"UseOC\":\n        case \"UseAttachments\":\n          pageMode = obj.name;\n      }\n    }\n\n    return (0, _util.shadow)(this, \"pageMode\", pageMode);\n  }\n\n  get viewerPreferences() {\n    const obj = this._catDict.get(\"ViewerPreferences\");\n\n    if (!(obj instanceof _primitives.Dict)) {\n      return (0, _util.shadow)(this, \"viewerPreferences\", null);\n    }\n\n    let prefs = null;\n\n    for (const key of obj.getKeys()) {\n      const value = obj.get(key);\n      let prefValue;\n\n      switch (key) {\n        case \"HideToolbar\":\n        case \"HideMenubar\":\n        case \"HideWindowUI\":\n        case \"FitWindow\":\n        case \"CenterWindow\":\n        case \"DisplayDocTitle\":\n        case \"PickTrayByPDFSize\":\n          if (typeof value === \"boolean\") {\n            prefValue = value;\n          }\n\n          break;\n\n        case \"NonFullScreenPageMode\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"UseNone\":\n              case \"UseOutlines\":\n              case \"UseThumbs\":\n              case \"UseOC\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"UseNone\";\n            }\n          }\n\n          break;\n\n        case \"Direction\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"L2R\":\n              case \"R2L\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"L2R\";\n            }\n          }\n\n          break;\n\n        case \"ViewArea\":\n        case \"ViewClip\":\n        case \"PrintArea\":\n        case \"PrintClip\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"MediaBox\":\n              case \"CropBox\":\n              case \"BleedBox\":\n              case \"TrimBox\":\n              case \"ArtBox\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"CropBox\";\n            }\n          }\n\n          break;\n\n        case \"PrintScaling\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"None\":\n              case \"AppDefault\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"AppDefault\";\n            }\n          }\n\n          break;\n\n        case \"Duplex\":\n          if (value instanceof _primitives.Name) {\n            switch (value.name) {\n              case \"Simplex\":\n              case \"DuplexFlipShortEdge\":\n              case \"DuplexFlipLongEdge\":\n                prefValue = value.name;\n                break;\n\n              default:\n                prefValue = \"None\";\n            }\n          }\n\n          break;\n\n        case \"PrintPageRange\":\n          if (Array.isArray(value) && value.length % 2 === 0) {\n            const isValid = value.every((page, i, arr) => {\n              return Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages;\n            });\n\n            if (isValid) {\n              prefValue = value;\n            }\n          }\n\n          break;\n\n        case \"NumCopies\":\n          if (Number.isInteger(value) && value > 0) {\n            prefValue = value;\n          }\n\n          break;\n\n        default:\n          (0, _util.warn)(`Ignoring non-standard key in ViewerPreferences: ${key}.`);\n          continue;\n      }\n\n      if (prefValue === undefined) {\n        (0, _util.warn)(`Bad value, for key \"${key}\", in ViewerPreferences: ${value}.`);\n        continue;\n      }\n\n      if (!prefs) {\n        prefs = Object.create(null);\n      }\n\n      prefs[key] = prefValue;\n    }\n\n    return (0, _util.shadow)(this, \"viewerPreferences\", prefs);\n  }\n\n  get openAction() {\n    const obj = this._catDict.get(\"OpenAction\");\n\n    const openAction = Object.create(null);\n\n    if (obj instanceof _primitives.Dict) {\n      const destDict = new _primitives.Dict(this.xref);\n      destDict.set(\"A\", obj);\n      const resultObj = {\n        url: null,\n        dest: null,\n        action: null\n      };\n      Catalog.parseDestDictionary({\n        destDict,\n        resultObj\n      });\n\n      if (Array.isArray(resultObj.dest)) {\n        openAction.dest = resultObj.dest;\n      } else if (resultObj.action) {\n        openAction.action = resultObj.action;\n      }\n    } else if (Array.isArray(obj)) {\n      openAction.dest = obj;\n    }\n\n    return (0, _util.shadow)(this, \"openAction\", (0, _util.objectSize)(openAction) > 0 ? openAction : null);\n  }\n\n  get attachments() {\n    const obj = this._catDict.get(\"Names\");\n\n    let attachments = null;\n\n    if (obj instanceof _primitives.Dict && obj.has(\"EmbeddedFiles\")) {\n      const nameTree = new _name_number_tree.NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n\n      for (const [key, value] of nameTree.getAll()) {\n        const fs = new _file_spec.FileSpec(value, this.xref);\n\n        if (!attachments) {\n          attachments = Object.create(null);\n        }\n\n        attachments[(0, _util.stringToPDFString)(key)] = fs.serializable;\n      }\n    }\n\n    return (0, _util.shadow)(this, \"attachments\", attachments);\n  }\n\n  get xfaImages() {\n    const obj = this._catDict.get(\"Names\");\n\n    let xfaImages = null;\n\n    if (obj instanceof _primitives.Dict && obj.has(\"XFAImages\")) {\n      const nameTree = new _name_number_tree.NameTree(obj.getRaw(\"XFAImages\"), this.xref);\n\n      for (const [key, value] of nameTree.getAll()) {\n        if (!xfaImages) {\n          xfaImages = new _primitives.Dict(this.xref);\n        }\n\n        xfaImages.set((0, _util.stringToPDFString)(key), value);\n      }\n    }\n\n    return (0, _util.shadow)(this, \"xfaImages\", xfaImages);\n  }\n\n  _collectJavaScript() {\n    const obj = this._catDict.get(\"Names\");\n\n    let javaScript = null;\n\n    function appendIfJavaScriptDict(name, jsDict) {\n      if (!(jsDict instanceof _primitives.Dict)) {\n        return;\n      }\n\n      if (!(0, _primitives.isName)(jsDict.get(\"S\"), \"JavaScript\")) {\n        return;\n      }\n\n      let js = jsDict.get(\"JS\");\n\n      if (js instanceof _base_stream.BaseStream) {\n        js = js.getString();\n      } else if (typeof js !== \"string\") {\n        return;\n      }\n\n      if (javaScript === null) {\n        javaScript = new Map();\n      }\n\n      js = (0, _util.stringToPDFString)(js).replace(/\\u0000/g, \"\");\n      javaScript.set(name, js);\n    }\n\n    if (obj instanceof _primitives.Dict && obj.has(\"JavaScript\")) {\n      const nameTree = new _name_number_tree.NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n\n      for (const [key, value] of nameTree.getAll()) {\n        appendIfJavaScriptDict((0, _util.stringToPDFString)(key), value);\n      }\n    }\n\n    const openAction = this._catDict.get(\"OpenAction\");\n\n    if (openAction) {\n      appendIfJavaScriptDict(\"OpenAction\", openAction);\n    }\n\n    return javaScript;\n  }\n\n  get javaScript() {\n    const javaScript = this._collectJavaScript();\n\n    return (0, _util.shadow)(this, \"javaScript\", javaScript ? [...javaScript.values()] : null);\n  }\n\n  get jsActions() {\n    const javaScript = this._collectJavaScript();\n\n    let actions = (0, _core_utils.collectActions)(this.xref, this._catDict, _util.DocumentActionEventType);\n\n    if (javaScript) {\n      if (!actions) {\n        actions = Object.create(null);\n      }\n\n      for (const [key, val] of javaScript) {\n        if (key in actions) {\n          actions[key].push(val);\n        } else {\n          actions[key] = [val];\n        }\n      }\n    }\n\n    return (0, _util.shadow)(this, \"jsActions\", actions);\n  }\n\n  async fontFallback(id, handler) {\n    const translatedFonts = await Promise.all(this.fontCache);\n\n    for (const translatedFont of translatedFonts) {\n      if (translatedFont.loadedName === id) {\n        translatedFont.fallback(handler);\n        return;\n      }\n    }\n  }\n\n  async cleanup(manuallyTriggered = false) {\n    (0, _cleanup_helper.clearGlobalCaches)();\n    this.globalImageCache.clear(manuallyTriggered);\n    this.pageKidsCountCache.clear();\n    this.pageIndexCache.clear();\n    this.nonBlendModesSet.clear();\n    const translatedFonts = await Promise.all(this.fontCache);\n\n    for (const {\n      dict\n    } of translatedFonts) {\n      delete dict.cacheKey;\n    }\n\n    this.fontCache.clear();\n    this.builtInCMapCache.clear();\n    this.standardFontDataCache.clear();\n  }\n\n  async getPageDict(pageIndex) {\n    const nodesToVisit = [this.toplevelPagesDict];\n    const visitedNodes = new _primitives.RefSet();\n\n    const pagesRef = this._catDict.getRaw(\"Pages\");\n\n    if (pagesRef instanceof _primitives.Ref) {\n      visitedNodes.put(pagesRef);\n    }\n\n    const xref = this.xref,\n          pageKidsCountCache = this.pageKidsCountCache,\n          pageIndexCache = this.pageIndexCache;\n    let currentPageIndex = 0;\n\n    while (nodesToVisit.length) {\n      const currentNode = nodesToVisit.pop();\n\n      if (currentNode instanceof _primitives.Ref) {\n        const count = pageKidsCountCache.get(currentNode);\n\n        if (count >= 0 && currentPageIndex + count <= pageIndex) {\n          currentPageIndex += count;\n          continue;\n        }\n\n        if (visitedNodes.has(currentNode)) {\n          throw new _util.FormatError(\"Pages tree contains circular reference.\");\n        }\n\n        visitedNodes.put(currentNode);\n        const obj = await xref.fetchAsync(currentNode);\n\n        if (obj instanceof _primitives.Dict) {\n          let type = obj.getRaw(\"Type\");\n\n          if (type instanceof _primitives.Ref) {\n            type = await xref.fetchAsync(type);\n          }\n\n          if ((0, _primitives.isName)(type, \"Page\") || !obj.has(\"Kids\")) {\n            if (!pageKidsCountCache.has(currentNode)) {\n              pageKidsCountCache.put(currentNode, 1);\n            }\n\n            if (!pageIndexCache.has(currentNode)) {\n              pageIndexCache.put(currentNode, currentPageIndex);\n            }\n\n            if (currentPageIndex === pageIndex) {\n              return [obj, currentNode];\n            }\n\n            currentPageIndex++;\n            continue;\n          }\n        }\n\n        nodesToVisit.push(obj);\n        continue;\n      }\n\n      if (!(currentNode instanceof _primitives.Dict)) {\n        throw new _util.FormatError(\"Page dictionary kid reference points to wrong type of object.\");\n      }\n\n      const {\n        objId\n      } = currentNode;\n      let count = currentNode.getRaw(\"Count\");\n\n      if (count instanceof _primitives.Ref) {\n        count = await xref.fetchAsync(count);\n      }\n\n      if (Number.isInteger(count) && count >= 0) {\n        if (objId && !pageKidsCountCache.has(objId)) {\n          pageKidsCountCache.put(objId, count);\n        }\n\n        if (currentPageIndex + count <= pageIndex) {\n          currentPageIndex += count;\n          continue;\n        }\n      }\n\n      let kids = currentNode.getRaw(\"Kids\");\n\n      if (kids instanceof _primitives.Ref) {\n        kids = await xref.fetchAsync(kids);\n      }\n\n      if (!Array.isArray(kids)) {\n        let type = currentNode.getRaw(\"Type\");\n\n        if (type instanceof _primitives.Ref) {\n          type = await xref.fetchAsync(type);\n        }\n\n        if ((0, _primitives.isName)(type, \"Page\") || !currentNode.has(\"Kids\")) {\n          if (currentPageIndex === pageIndex) {\n            return [currentNode, null];\n          }\n\n          currentPageIndex++;\n          continue;\n        }\n\n        throw new _util.FormatError(\"Page dictionary kids object is not an array.\");\n      }\n\n      for (let last = kids.length - 1; last >= 0; last--) {\n        nodesToVisit.push(kids[last]);\n      }\n    }\n\n    throw new Error(`Page index ${pageIndex} not found.`);\n  }\n\n  async getAllPageDicts(recoveryMode = false) {\n    const queue = [{\n      currentNode: this.toplevelPagesDict,\n      posInKids: 0\n    }];\n    const visitedNodes = new _primitives.RefSet();\n\n    const pagesRef = this._catDict.getRaw(\"Pages\");\n\n    if (pagesRef instanceof _primitives.Ref) {\n      visitedNodes.put(pagesRef);\n    }\n\n    const map = new Map(),\n          xref = this.xref,\n          pageIndexCache = this.pageIndexCache;\n    let pageIndex = 0;\n\n    function addPageDict(pageDict, pageRef) {\n      if (pageRef && !pageIndexCache.has(pageRef)) {\n        pageIndexCache.put(pageRef, pageIndex);\n      }\n\n      map.set(pageIndex++, [pageDict, pageRef]);\n    }\n\n    function addPageError(error) {\n      if (error instanceof _core_utils.XRefEntryException && !recoveryMode) {\n        throw error;\n      }\n\n      map.set(pageIndex++, [error, null]);\n    }\n\n    while (queue.length > 0) {\n      const queueItem = queue.at(-1);\n      const {\n        currentNode,\n        posInKids\n      } = queueItem;\n      let kids = currentNode.getRaw(\"Kids\");\n\n      if (kids instanceof _primitives.Ref) {\n        try {\n          kids = await xref.fetchAsync(kids);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      }\n\n      if (!Array.isArray(kids)) {\n        addPageError(new _util.FormatError(\"Page dictionary kids object is not an array.\"));\n        break;\n      }\n\n      if (posInKids >= kids.length) {\n        queue.pop();\n        continue;\n      }\n\n      const kidObj = kids[posInKids];\n      let obj;\n\n      if (kidObj instanceof _primitives.Ref) {\n        if (visitedNodes.has(kidObj)) {\n          addPageError(new _util.FormatError(\"Pages tree contains circular reference.\"));\n          break;\n        }\n\n        visitedNodes.put(kidObj);\n\n        try {\n          obj = await xref.fetchAsync(kidObj);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      } else {\n        obj = kidObj;\n      }\n\n      if (!(obj instanceof _primitives.Dict)) {\n        addPageError(new _util.FormatError(\"Page dictionary kid reference points to wrong type of object.\"));\n        break;\n      }\n\n      let type = obj.getRaw(\"Type\");\n\n      if (type instanceof _primitives.Ref) {\n        try {\n          type = await xref.fetchAsync(type);\n        } catch (ex) {\n          addPageError(ex);\n          break;\n        }\n      }\n\n      if ((0, _primitives.isName)(type, \"Page\") || !obj.has(\"Kids\")) {\n        addPageDict(obj, kidObj instanceof _primitives.Ref ? kidObj : null);\n      } else {\n        queue.push({\n          currentNode: obj,\n          posInKids: 0\n        });\n      }\n\n      queueItem.posInKids++;\n    }\n\n    return map;\n  }\n\n  getPageIndex(pageRef) {\n    const cachedPageIndex = this.pageIndexCache.get(pageRef);\n\n    if (cachedPageIndex !== undefined) {\n      return Promise.resolve(cachedPageIndex);\n    }\n\n    const xref = this.xref;\n\n    function pagesBeforeRef(kidRef) {\n      let total = 0,\n          parentRef;\n      return xref.fetchAsync(kidRef).then(function (node) {\n        if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, \"Page\") && !(node instanceof _primitives.Dict && !node.has(\"Type\") && node.has(\"Contents\"))) {\n          throw new _util.FormatError(\"The reference does not point to a /Page dictionary.\");\n        }\n\n        if (!node) {\n          return null;\n        }\n\n        if (!(node instanceof _primitives.Dict)) {\n          throw new _util.FormatError(\"Node must be a dictionary.\");\n        }\n\n        parentRef = node.getRaw(\"Parent\");\n        return node.getAsync(\"Parent\");\n      }).then(function (parent) {\n        if (!parent) {\n          return null;\n        }\n\n        if (!(parent instanceof _primitives.Dict)) {\n          throw new _util.FormatError(\"Parent must be a dictionary.\");\n        }\n\n        return parent.getAsync(\"Kids\");\n      }).then(function (kids) {\n        if (!kids) {\n          return null;\n        }\n\n        const kidPromises = [];\n        let found = false;\n\n        for (let i = 0, ii = kids.length; i < ii; i++) {\n          const kid = kids[i];\n\n          if (!(kid instanceof _primitives.Ref)) {\n            throw new _util.FormatError(\"Kid must be a reference.\");\n          }\n\n          if ((0, _primitives.isRefsEqual)(kid, kidRef)) {\n            found = true;\n            break;\n          }\n\n          kidPromises.push(xref.fetchAsync(kid).then(function (obj) {\n            if (!(obj instanceof _primitives.Dict)) {\n              throw new _util.FormatError(\"Kid node must be a dictionary.\");\n            }\n\n            if (obj.has(\"Count\")) {\n              total += obj.get(\"Count\");\n            } else {\n              total++;\n            }\n          }));\n        }\n\n        if (!found) {\n          throw new _util.FormatError(\"Kid reference not found in parent's kids.\");\n        }\n\n        return Promise.all(kidPromises).then(function () {\n          return [total, parentRef];\n        });\n      });\n    }\n\n    let total = 0;\n\n    const next = ref => pagesBeforeRef(ref).then(args => {\n      if (!args) {\n        this.pageIndexCache.put(pageRef, total);\n        return total;\n      }\n\n      const [count, parentRef] = args;\n      total += count;\n      return next(parentRef);\n    });\n\n    return next(pageRef);\n  }\n\n  get baseUrl() {\n    const uri = this._catDict.get(\"URI\");\n\n    if (uri instanceof _primitives.Dict) {\n      const base = uri.get(\"Base\");\n\n      if (typeof base === \"string\") {\n        const absoluteUrl = (0, _util.createValidAbsoluteUrl)(base, null, {\n          tryConvertEncoding: true\n        });\n\n        if (absoluteUrl) {\n          return (0, _util.shadow)(this, \"baseUrl\", absoluteUrl.href);\n        }\n      }\n    }\n\n    return (0, _util.shadow)(this, \"baseUrl\", null);\n  }\n\n  static parseDestDictionary(params) {\n    const destDict = params.destDict;\n\n    if (!(destDict instanceof _primitives.Dict)) {\n      (0, _util.warn)(\"parseDestDictionary: `destDict` must be a dictionary.\");\n      return;\n    }\n\n    const resultObj = params.resultObj;\n\n    if (typeof resultObj !== \"object\") {\n      (0, _util.warn)(\"parseDestDictionary: `resultObj` must be an object.\");\n      return;\n    }\n\n    const docBaseUrl = params.docBaseUrl || null;\n    let action = destDict.get(\"A\"),\n        url,\n        dest;\n\n    if (!(action instanceof _primitives.Dict)) {\n      if (destDict.has(\"Dest\")) {\n        action = destDict.get(\"Dest\");\n      } else {\n        action = destDict.get(\"AA\");\n\n        if (action instanceof _primitives.Dict) {\n          if (action.has(\"D\")) {\n            action = action.get(\"D\");\n          } else if (action.has(\"U\")) {\n            action = action.get(\"U\");\n          }\n        }\n      }\n    }\n\n    if (action instanceof _primitives.Dict) {\n      const actionType = action.get(\"S\");\n\n      if (!(actionType instanceof _primitives.Name)) {\n        (0, _util.warn)(\"parseDestDictionary: Invalid type in Action dictionary.\");\n        return;\n      }\n\n      const actionName = actionType.name;\n\n      switch (actionName) {\n        case \"ResetForm\":\n          const flags = action.get(\"Flags\");\n          const include = ((typeof flags === \"number\" ? flags : 0) & 1) === 0;\n          const fields = [];\n          const refs = [];\n\n          for (const obj of action.get(\"Fields\") || []) {\n            if (obj instanceof _primitives.Ref) {\n              refs.push(obj.toString());\n            } else if (typeof obj === \"string\") {\n              fields.push((0, _util.stringToPDFString)(obj));\n            }\n          }\n\n          resultObj.resetForm = {\n            fields,\n            refs,\n            include\n          };\n          break;\n\n        case \"URI\":\n          url = action.get(\"URI\");\n\n          if (url instanceof _primitives.Name) {\n            url = \"/\" + url.name;\n          }\n\n          break;\n\n        case \"GoTo\":\n          dest = action.get(\"D\");\n          break;\n\n        case \"Launch\":\n        case \"GoToR\":\n          const urlDict = action.get(\"F\");\n\n          if (urlDict instanceof _primitives.Dict) {\n            url = urlDict.get(\"F\") || null;\n          } else if (typeof urlDict === \"string\") {\n            url = urlDict;\n          }\n\n          let remoteDest = action.get(\"D\");\n\n          if (remoteDest) {\n            if (remoteDest instanceof _primitives.Name) {\n              remoteDest = remoteDest.name;\n            }\n\n            if (typeof url === \"string\") {\n              const baseUrl = url.split(\"#\")[0];\n\n              if (typeof remoteDest === \"string\") {\n                url = baseUrl + \"#\" + remoteDest;\n              } else if (Array.isArray(remoteDest)) {\n                url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n              }\n            }\n          }\n\n          const newWindow = action.get(\"NewWindow\");\n\n          if (typeof newWindow === \"boolean\") {\n            resultObj.newWindow = newWindow;\n          }\n\n          break;\n\n        case \"Named\":\n          const namedAction = action.get(\"N\");\n\n          if (namedAction instanceof _primitives.Name) {\n            resultObj.action = namedAction.name;\n          }\n\n          break;\n\n        case \"JavaScript\":\n          const jsAction = action.get(\"JS\");\n          let js;\n\n          if (jsAction instanceof _base_stream.BaseStream) {\n            js = jsAction.getString();\n          } else if (typeof jsAction === \"string\") {\n            js = jsAction;\n          }\n\n          const jsURL = js && (0, _core_utils.recoverJsURL)((0, _util.stringToPDFString)(js));\n\n          if (jsURL) {\n            url = jsURL.url;\n            resultObj.newWindow = jsURL.newWindow;\n            break;\n          }\n\n        default:\n          if (actionName === \"JavaScript\" || actionName === \"SubmitForm\") {\n            break;\n          }\n\n          (0, _util.warn)(`parseDestDictionary - unsupported action: \"${actionName}\".`);\n          break;\n      }\n    } else if (destDict.has(\"Dest\")) {\n      dest = destDict.get(\"Dest\");\n    }\n\n    if (typeof url === \"string\") {\n      const absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl, {\n        addDefaultProtocol: true,\n        tryConvertEncoding: true\n      });\n\n      if (absoluteUrl) {\n        resultObj.url = absoluteUrl.href;\n      }\n\n      resultObj.unsafeUrl = url;\n    }\n\n    if (dest) {\n      if (dest instanceof _primitives.Name) {\n        dest = dest.name;\n      }\n\n      if (typeof dest === \"string\") {\n        resultObj.dest = (0, _util.stringToPDFString)(dest);\n      } else if (Array.isArray(dest)) {\n        resultObj.dest = dest;\n      }\n    }\n  }\n\n}\n\nexports.Catalog = Catalog;\n\n/***/ }),\n/* 70 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.NumberTree = exports.NameTree = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass NameOrNumberTree {\n  constructor(root, xref, type) {\n    if (this.constructor === NameOrNumberTree) {\n      (0, _util.unreachable)(\"Cannot initialize NameOrNumberTree.\");\n    }\n\n    this.root = root;\n    this.xref = xref;\n    this._type = type;\n  }\n\n  getAll() {\n    const map = new Map();\n\n    if (!this.root) {\n      return map;\n    }\n\n    const xref = this.xref;\n    const processed = new _primitives.RefSet();\n    processed.put(this.root);\n    const queue = [this.root];\n\n    while (queue.length > 0) {\n      const obj = xref.fetchIfRef(queue.shift());\n\n      if (!(obj instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      if (obj.has(\"Kids\")) {\n        const kids = obj.get(\"Kids\");\n\n        if (!Array.isArray(kids)) {\n          continue;\n        }\n\n        for (const kid of kids) {\n          if (processed.has(kid)) {\n            throw new _util.FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n          }\n\n          queue.push(kid);\n          processed.put(kid);\n        }\n\n        continue;\n      }\n\n      const entries = obj.get(this._type);\n\n      if (!Array.isArray(entries)) {\n        continue;\n      }\n\n      for (let i = 0, ii = entries.length; i < ii; i += 2) {\n        map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1]));\n      }\n    }\n\n    return map;\n  }\n\n  get(key) {\n    if (!this.root) {\n      return null;\n    }\n\n    const xref = this.xref;\n    let kidsOrEntries = xref.fetchIfRef(this.root);\n    let loopCount = 0;\n    const MAX_LEVELS = 10;\n\n    while (kidsOrEntries.has(\"Kids\")) {\n      if (++loopCount > MAX_LEVELS) {\n        (0, _util.warn)(`Search depth limit reached for \"${this._type}\" tree.`);\n        return null;\n      }\n\n      const kids = kidsOrEntries.get(\"Kids\");\n\n      if (!Array.isArray(kids)) {\n        return null;\n      }\n\n      let l = 0,\n          r = kids.length - 1;\n\n      while (l <= r) {\n        const m = l + r >> 1;\n        const kid = xref.fetchIfRef(kids[m]);\n        const limits = kid.get(\"Limits\");\n\n        if (key < xref.fetchIfRef(limits[0])) {\n          r = m - 1;\n        } else if (key > xref.fetchIfRef(limits[1])) {\n          l = m + 1;\n        } else {\n          kidsOrEntries = kid;\n          break;\n        }\n      }\n\n      if (l > r) {\n        return null;\n      }\n    }\n\n    const entries = kidsOrEntries.get(this._type);\n\n    if (Array.isArray(entries)) {\n      let l = 0,\n          r = entries.length - 2;\n\n      while (l <= r) {\n        const tmp = l + r >> 1,\n              m = tmp + (tmp & 1);\n        const currentKey = xref.fetchIfRef(entries[m]);\n\n        if (key < currentKey) {\n          r = m - 2;\n        } else if (key > currentKey) {\n          l = m + 2;\n        } else {\n          return xref.fetchIfRef(entries[m + 1]);\n        }\n      }\n    }\n\n    return null;\n  }\n\n}\n\nclass NameTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Names\");\n  }\n\n}\n\nexports.NameTree = NameTree;\n\nclass NumberTree extends NameOrNumberTree {\n  constructor(root, xref) {\n    super(root, xref, \"Nums\");\n  }\n\n}\n\nexports.NumberTree = NumberTree;\n\n/***/ }),\n/* 71 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.clearGlobalCaches = clearGlobalCaches;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _unicode = __w_pdfjs_require__(40);\n\nfunction clearGlobalCaches() {\n  (0, _primitives.clearPrimitiveCaches)();\n  (0, _unicode.clearUnicodeCaches)();\n}\n\n/***/ }),\n/* 72 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FileSpec = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nfunction pickPlatformItem(dict) {\n  if (dict.has(\"UF\")) {\n    return dict.get(\"UF\");\n  } else if (dict.has(\"F\")) {\n    return dict.get(\"F\");\n  } else if (dict.has(\"Unix\")) {\n    return dict.get(\"Unix\");\n  } else if (dict.has(\"Mac\")) {\n    return dict.get(\"Mac\");\n  } else if (dict.has(\"DOS\")) {\n    return dict.get(\"DOS\");\n  }\n\n  return null;\n}\n\nclass FileSpec {\n  constructor(root, xref) {\n    if (!(root instanceof _primitives.Dict)) {\n      return;\n    }\n\n    this.xref = xref;\n    this.root = root;\n\n    if (root.has(\"FS\")) {\n      this.fs = root.get(\"FS\");\n    }\n\n    this.description = root.has(\"Desc\") ? (0, _util.stringToPDFString)(root.get(\"Desc\")) : \"\";\n\n    if (root.has(\"RF\")) {\n      (0, _util.warn)(\"Related file specifications are not supported\");\n    }\n\n    this.contentAvailable = true;\n\n    if (!root.has(\"EF\")) {\n      this.contentAvailable = false;\n      (0, _util.warn)(\"Non-embedded file specifications are not supported\");\n    }\n  }\n\n  get filename() {\n    if (!this._filename && this.root) {\n      const filename = pickPlatformItem(this.root) || \"unnamed\";\n      this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\\\\\/g, \"\\\\\").replace(/\\\\\\//g, \"/\").replace(/\\\\/g, \"/\");\n    }\n\n    return this._filename;\n  }\n\n  get content() {\n    if (!this.contentAvailable) {\n      return null;\n    }\n\n    if (!this.contentRef && this.root) {\n      this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n    }\n\n    let content = null;\n\n    if (this.contentRef) {\n      const fileObj = this.xref.fetchIfRef(this.contentRef);\n\n      if (fileObj instanceof _base_stream.BaseStream) {\n        content = fileObj.getBytes();\n      } else {\n        (0, _util.warn)(\"Embedded file specification points to non-existing/invalid content\");\n      }\n    } else {\n      (0, _util.warn)(\"Embedded file specification does not have a content\");\n    }\n\n    return content;\n  }\n\n  get serializable() {\n    return {\n      filename: this.filename,\n      content: this.content\n    };\n  }\n\n}\n\nexports.FileSpec = FileSpec;\n\n/***/ }),\n/* 73 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MetadataParser = void 0;\n\nvar _xml_parser = __w_pdfjs_require__(66);\n\nclass MetadataParser {\n  constructor(data) {\n    data = this._repair(data);\n    const parser = new _xml_parser.SimpleXMLParser({\n      lowerCaseName: true\n    });\n    const xmlDocument = parser.parseFromString(data);\n    this._metadataMap = new Map();\n    this._data = data;\n\n    if (xmlDocument) {\n      this._parse(xmlDocument);\n    }\n  }\n\n  _repair(data) {\n    return data.replace(/^[^<]+/, \"\").replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n      const bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n        return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n      }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n        switch (name) {\n          case \"amp\":\n            return \"&\";\n\n          case \"apos\":\n            return \"'\";\n\n          case \"gt\":\n            return \">\";\n\n          case \"lt\":\n            return \"<\";\n\n          case \"quot\":\n            return '\"';\n        }\n\n        throw new Error(`_repair: ${name} isn't defined.`);\n      });\n      const charBuf = [];\n\n      for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n        const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n\n        if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\n          charBuf.push(String.fromCharCode(code));\n        } else {\n          charBuf.push(\"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\");\n        }\n      }\n\n      return \">\" + charBuf.join(\"\");\n    });\n  }\n\n  _getSequence(entry) {\n    const name = entry.nodeName;\n\n    if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n      return null;\n    }\n\n    return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n  }\n\n  _parseArray(entry) {\n    if (!entry.hasChildNodes()) {\n      return;\n    }\n\n    const [seqNode] = entry.childNodes;\n    const sequence = this._getSequence(seqNode) || [];\n\n    this._metadataMap.set(entry.nodeName, sequence.map(node => node.textContent.trim()));\n  }\n\n  _parse(xmlDocument) {\n    let rdf = xmlDocument.documentElement;\n\n    if (rdf.nodeName !== \"rdf:rdf\") {\n      rdf = rdf.firstChild;\n\n      while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n        rdf = rdf.nextSibling;\n      }\n    }\n\n    if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n      return;\n    }\n\n    for (const desc of rdf.childNodes) {\n      if (desc.nodeName !== \"rdf:description\") {\n        continue;\n      }\n\n      for (const entry of desc.childNodes) {\n        const name = entry.nodeName;\n\n        switch (name) {\n          case \"#text\":\n            continue;\n\n          case \"dc:creator\":\n          case \"dc:subject\":\n            this._parseArray(entry);\n\n            continue;\n        }\n\n        this._metadataMap.set(name, entry.textContent.trim());\n      }\n    }\n  }\n\n  get serializable() {\n    return {\n      parsedData: this._metadataMap,\n      rawData: this._data\n    };\n  }\n\n}\n\nexports.MetadataParser = MetadataParser;\n\n/***/ }),\n/* 74 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.StructTreeRoot = exports.StructTreePage = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _name_number_tree = __w_pdfjs_require__(70);\n\nconst MAX_DEPTH = 40;\nconst StructElementType = {\n  PAGE_CONTENT: \"PAGE_CONTENT\",\n  STREAM_CONTENT: \"STREAM_CONTENT\",\n  OBJECT: \"OBJECT\",\n  ELEMENT: \"ELEMENT\"\n};\n\nclass StructTreeRoot {\n  constructor(rootDict) {\n    this.dict = rootDict;\n    this.roleMap = new Map();\n  }\n\n  init() {\n    this.readRoleMap();\n  }\n\n  readRoleMap() {\n    const roleMapDict = this.dict.get(\"RoleMap\");\n\n    if (!(roleMapDict instanceof _primitives.Dict)) {\n      return;\n    }\n\n    roleMapDict.forEach((key, value) => {\n      if (!(value instanceof _primitives.Name)) {\n        return;\n      }\n\n      this.roleMap.set(key, value.name);\n    });\n  }\n\n}\n\nexports.StructTreeRoot = StructTreeRoot;\n\nclass StructElementNode {\n  constructor(tree, dict) {\n    this.tree = tree;\n    this.dict = dict;\n    this.kids = [];\n    this.parseKids();\n  }\n\n  get role() {\n    const nameObj = this.dict.get(\"S\");\n    const name = nameObj instanceof _primitives.Name ? nameObj.name : \"\";\n    const {\n      root\n    } = this.tree;\n\n    if (root.roleMap.has(name)) {\n      return root.roleMap.get(name);\n    }\n\n    return name;\n  }\n\n  parseKids() {\n    let pageObjId = null;\n    const objRef = this.dict.getRaw(\"Pg\");\n\n    if (objRef instanceof _primitives.Ref) {\n      pageObjId = objRef.toString();\n    }\n\n    const kids = this.dict.get(\"K\");\n\n    if (Array.isArray(kids)) {\n      for (const kid of kids) {\n        const element = this.parseKid(pageObjId, kid);\n\n        if (element) {\n          this.kids.push(element);\n        }\n      }\n    } else {\n      const element = this.parseKid(pageObjId, kids);\n\n      if (element) {\n        this.kids.push(element);\n      }\n    }\n  }\n\n  parseKid(pageObjId, kid) {\n    if (Number.isInteger(kid)) {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n\n      return new StructElement({\n        type: StructElementType.PAGE_CONTENT,\n        mcid: kid,\n        pageObjId\n      });\n    }\n\n    let kidDict = null;\n\n    if (kid instanceof _primitives.Ref) {\n      kidDict = this.dict.xref.fetch(kid);\n    } else if (kid instanceof _primitives.Dict) {\n      kidDict = kid;\n    }\n\n    if (!kidDict) {\n      return null;\n    }\n\n    const pageRef = kidDict.getRaw(\"Pg\");\n\n    if (pageRef instanceof _primitives.Ref) {\n      pageObjId = pageRef.toString();\n    }\n\n    const type = kidDict.get(\"Type\") instanceof _primitives.Name ? kidDict.get(\"Type\").name : null;\n\n    if (type === \"MCR\") {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n\n      return new StructElement({\n        type: StructElementType.STREAM_CONTENT,\n        refObjId: kidDict.getRaw(\"Stm\") instanceof _primitives.Ref ? kidDict.getRaw(\"Stm\").toString() : null,\n        pageObjId,\n        mcid: kidDict.get(\"MCID\")\n      });\n    }\n\n    if (type === \"OBJR\") {\n      if (this.tree.pageDict.objId !== pageObjId) {\n        return null;\n      }\n\n      return new StructElement({\n        type: StructElementType.OBJECT,\n        refObjId: kidDict.getRaw(\"Obj\") instanceof _primitives.Ref ? kidDict.getRaw(\"Obj\").toString() : null,\n        pageObjId\n      });\n    }\n\n    return new StructElement({\n      type: StructElementType.ELEMENT,\n      dict: kidDict\n    });\n  }\n\n}\n\nclass StructElement {\n  constructor({\n    type,\n    dict = null,\n    mcid = null,\n    pageObjId = null,\n    refObjId = null\n  }) {\n    this.type = type;\n    this.dict = dict;\n    this.mcid = mcid;\n    this.pageObjId = pageObjId;\n    this.refObjId = refObjId;\n    this.parentNode = null;\n  }\n\n}\n\nclass StructTreePage {\n  constructor(structTreeRoot, pageDict) {\n    this.root = structTreeRoot;\n    this.rootDict = structTreeRoot ? structTreeRoot.dict : null;\n    this.pageDict = pageDict;\n    this.nodes = [];\n  }\n\n  parse() {\n    if (!this.root || !this.rootDict) {\n      return;\n    }\n\n    const parentTree = this.rootDict.get(\"ParentTree\");\n\n    if (!parentTree) {\n      return;\n    }\n\n    const id = this.pageDict.get(\"StructParents\");\n\n    if (!Number.isInteger(id)) {\n      return;\n    }\n\n    const numberTree = new _name_number_tree.NumberTree(parentTree, this.rootDict.xref);\n    const parentArray = numberTree.get(id);\n\n    if (!Array.isArray(parentArray)) {\n      return;\n    }\n\n    const map = new Map();\n\n    for (const ref of parentArray) {\n      if (ref instanceof _primitives.Ref) {\n        this.addNode(this.rootDict.xref.fetch(ref), map);\n      }\n    }\n  }\n\n  addNode(dict, map, level = 0) {\n    if (level > MAX_DEPTH) {\n      (0, _util.warn)(\"StructTree MAX_DEPTH reached.\");\n      return null;\n    }\n\n    if (map.has(dict)) {\n      return map.get(dict);\n    }\n\n    const element = new StructElementNode(this, dict);\n    map.set(dict, element);\n    const parent = dict.get(\"P\");\n\n    if (!parent || (0, _primitives.isName)(parent.get(\"Type\"), \"StructTreeRoot\")) {\n      if (!this.addTopLevelNode(dict, element)) {\n        map.delete(dict);\n      }\n\n      return element;\n    }\n\n    const parentNode = this.addNode(parent, map, level + 1);\n\n    if (!parentNode) {\n      return element;\n    }\n\n    let save = false;\n\n    for (const kid of parentNode.kids) {\n      if (kid.type === StructElementType.ELEMENT && kid.dict === dict) {\n        kid.parentNode = element;\n        save = true;\n      }\n    }\n\n    if (!save) {\n      map.delete(dict);\n    }\n\n    return element;\n  }\n\n  addTopLevelNode(dict, element) {\n    const obj = this.rootDict.get(\"K\");\n\n    if (!obj) {\n      return false;\n    }\n\n    if (obj instanceof _primitives.Dict) {\n      if (obj.objId !== dict.objId) {\n        return false;\n      }\n\n      this.nodes[0] = element;\n      return true;\n    }\n\n    if (!Array.isArray(obj)) {\n      return true;\n    }\n\n    let save = false;\n\n    for (let i = 0; i < obj.length; i++) {\n      const kidRef = obj[i];\n\n      if (kidRef && kidRef.toString() === dict.objId) {\n        this.nodes[i] = element;\n        save = true;\n      }\n    }\n\n    return save;\n  }\n\n  get serializable() {\n    function nodeToSerializable(node, parent, level = 0) {\n      if (level > MAX_DEPTH) {\n        (0, _util.warn)(\"StructTree too deep to be fully serialized.\");\n        return;\n      }\n\n      const obj = Object.create(null);\n      obj.role = node.role;\n      obj.children = [];\n      parent.children.push(obj);\n      const alt = node.dict.get(\"Alt\");\n\n      if (typeof alt === \"string\") {\n        obj.alt = (0, _util.stringToPDFString)(alt);\n      }\n\n      const lang = node.dict.get(\"Lang\");\n\n      if (typeof lang === \"string\") {\n        obj.lang = (0, _util.stringToPDFString)(lang);\n      }\n\n      for (const kid of node.kids) {\n        const kidElement = kid.type === StructElementType.ELEMENT ? kid.parentNode : null;\n\n        if (kidElement) {\n          nodeToSerializable(kidElement, obj, level + 1);\n          continue;\n        } else if (kid.type === StructElementType.PAGE_CONTENT || kid.type === StructElementType.STREAM_CONTENT) {\n          obj.children.push({\n            type: \"content\",\n            id: `page${kid.pageObjId}_mcid${kid.mcid}`\n          });\n        } else if (kid.type === StructElementType.OBJECT) {\n          obj.children.push({\n            type: \"object\",\n            id: kid.refObjId\n          });\n        }\n      }\n    }\n\n    const root = Object.create(null);\n    root.children = [];\n    root.role = \"Root\";\n\n    for (const child of this.nodes) {\n      if (!child) {\n        continue;\n      }\n\n      nodeToSerializable(child, root);\n    }\n\n    return root;\n  }\n\n}\n\nexports.StructTreePage = StructTreePage;\n\n/***/ }),\n/* 75 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ObjectLoader = void 0;\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _util = __w_pdfjs_require__(2);\n\nfunction mayHaveChildren(value) {\n  return value instanceof _primitives.Ref || value instanceof _primitives.Dict || value instanceof _base_stream.BaseStream || Array.isArray(value);\n}\n\nfunction addChildren(node, nodesToVisit) {\n  if (node instanceof _primitives.Dict) {\n    node = node.getRawValues();\n  } else if (node instanceof _base_stream.BaseStream) {\n    node = node.dict.getRawValues();\n  } else if (!Array.isArray(node)) {\n    return;\n  }\n\n  for (const rawValue of node) {\n    if (mayHaveChildren(rawValue)) {\n      nodesToVisit.push(rawValue);\n    }\n  }\n}\n\nclass ObjectLoader {\n  constructor(dict, keys, xref) {\n    this.dict = dict;\n    this.keys = keys;\n    this.xref = xref;\n    this.refSet = null;\n  }\n\n  async load() {\n    if (this.xref.stream.isDataLoaded) {\n      return undefined;\n    }\n\n    const {\n      keys,\n      dict\n    } = this;\n    this.refSet = new _primitives.RefSet();\n    const nodesToVisit = [];\n\n    for (let i = 0, ii = keys.length; i < ii; i++) {\n      const rawValue = dict.getRaw(keys[i]);\n\n      if (rawValue !== undefined) {\n        nodesToVisit.push(rawValue);\n      }\n    }\n\n    return this._walk(nodesToVisit);\n  }\n\n  async _walk(nodesToVisit) {\n    const nodesToRevisit = [];\n    const pendingRequests = [];\n\n    while (nodesToVisit.length) {\n      let currentNode = nodesToVisit.pop();\n\n      if (currentNode instanceof _primitives.Ref) {\n        if (this.refSet.has(currentNode)) {\n          continue;\n        }\n\n        try {\n          this.refSet.put(currentNode);\n          currentNode = this.xref.fetch(currentNode);\n        } catch (ex) {\n          if (!(ex instanceof _core_utils.MissingDataException)) {\n            (0, _util.warn)(`ObjectLoader._walk - requesting all data: \"${ex}\".`);\n            this.refSet = null;\n            const {\n              manager\n            } = this.xref.stream;\n            return manager.requestAllChunks();\n          }\n\n          nodesToRevisit.push(currentNode);\n          pendingRequests.push({\n            begin: ex.begin,\n            end: ex.end\n          });\n        }\n      }\n\n      if (currentNode instanceof _base_stream.BaseStream) {\n        const baseStreams = currentNode.getBaseStreams();\n\n        if (baseStreams) {\n          let foundMissingData = false;\n\n          for (const stream of baseStreams) {\n            if (stream.isDataLoaded) {\n              continue;\n            }\n\n            foundMissingData = true;\n            pendingRequests.push({\n              begin: stream.start,\n              end: stream.end\n            });\n          }\n\n          if (foundMissingData) {\n            nodesToRevisit.push(currentNode);\n          }\n        }\n      }\n\n      addChildren(currentNode, nodesToVisit);\n    }\n\n    if (pendingRequests.length) {\n      await this.xref.stream.manager.requestRanges(pendingRequests);\n\n      for (const node of nodesToRevisit) {\n        if (node instanceof _primitives.Ref) {\n          this.refSet.remove(node);\n        }\n      }\n\n      return this._walk(nodesToRevisit);\n    }\n\n    this.refSet = null;\n    return undefined;\n  }\n\n}\n\nexports.ObjectLoader = ObjectLoader;\n\n/***/ }),\n/* 76 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XFAFactory = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _bind = __w_pdfjs_require__(81);\n\nvar _data = __w_pdfjs_require__(87);\n\nvar _fonts = __w_pdfjs_require__(85);\n\nvar _utils = __w_pdfjs_require__(78);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _parser = __w_pdfjs_require__(88);\n\nvar _xhtml = __w_pdfjs_require__(98);\n\nclass XFAFactory {\n  constructor(data) {\n    try {\n      this.root = new _parser.XFAParser().parse(XFAFactory._createDocument(data));\n      const binder = new _bind.Binder(this.root);\n      this.form = binder.bind();\n      this.dataHandler = new _data.DataHandler(this.root, binder.getData());\n      this.form[_xfa_object.$globalData].template = this.form;\n    } catch (e) {\n      (0, _util.warn)(`XFA - an error occurred during parsing and binding: ${e}`);\n    }\n  }\n\n  isValid() {\n    return this.root && this.form;\n  }\n\n  _createPagesHelper() {\n    const iterator = this.form[_xfa_object.$toPages]();\n\n    return new Promise((resolve, reject) => {\n      const nextIteration = () => {\n        try {\n          const value = iterator.next();\n\n          if (value.done) {\n            resolve(value.value);\n          } else {\n            setTimeout(nextIteration, 0);\n          }\n        } catch (e) {\n          reject(e);\n        }\n      };\n\n      setTimeout(nextIteration, 0);\n    });\n  }\n\n  async _createPages() {\n    try {\n      this.pages = await this._createPagesHelper();\n      this.dims = this.pages.children.map(c => {\n        const {\n          width,\n          height\n        } = c.attributes.style;\n        return [0, 0, parseInt(width), parseInt(height)];\n      });\n    } catch (e) {\n      (0, _util.warn)(`XFA - an error occurred during layout: ${e}`);\n    }\n  }\n\n  getBoundingBox(pageIndex) {\n    return this.dims[pageIndex];\n  }\n\n  async getNumPages() {\n    if (!this.pages) {\n      await this._createPages();\n    }\n\n    return this.dims.length;\n  }\n\n  setImages(images) {\n    this.form[_xfa_object.$globalData].images = images;\n  }\n\n  setFonts(fonts) {\n    this.form[_xfa_object.$globalData].fontFinder = new _fonts.FontFinder(fonts);\n    const missingFonts = [];\n\n    for (let typeface of this.form[_xfa_object.$globalData].usedTypefaces) {\n      typeface = (0, _utils.stripQuotes)(typeface);\n\n      const font = this.form[_xfa_object.$globalData].fontFinder.find(typeface);\n\n      if (!font) {\n        missingFonts.push(typeface);\n      }\n    }\n\n    if (missingFonts.length > 0) {\n      return missingFonts;\n    }\n\n    return null;\n  }\n\n  appendFonts(fonts, reallyMissingFonts) {\n    this.form[_xfa_object.$globalData].fontFinder.add(fonts, reallyMissingFonts);\n  }\n\n  async getPages() {\n    if (!this.pages) {\n      await this._createPages();\n    }\n\n    const pages = this.pages;\n    this.pages = null;\n    return pages;\n  }\n\n  serializeData(storage) {\n    return this.dataHandler.serialize(storage);\n  }\n\n  static _createDocument(data) {\n    if (!data[\"/xdp:xdp\"]) {\n      return data[\"xdp:xdp\"];\n    }\n\n    return Object.values(data).join(\"\");\n  }\n\n  static getRichTextAsHtml(rc) {\n    if (!rc || typeof rc !== \"string\") {\n      return null;\n    }\n\n    try {\n      let root = new _parser.XFAParser(_xhtml.XhtmlNamespace, true).parse(rc);\n\n      if (![\"body\", \"xhtml\"].includes(root[_xfa_object.$nodeName])) {\n        const newRoot = _xhtml.XhtmlNamespace.body({});\n\n        newRoot[_xfa_object.$appendChild](root);\n\n        root = newRoot;\n      }\n\n      const result = root[_xfa_object.$toHTML]();\n\n      if (!result.success) {\n        return null;\n      }\n\n      const {\n        html\n      } = result;\n      const {\n        attributes\n      } = html;\n\n      if (attributes) {\n        if (attributes.class) {\n          attributes.class = attributes.class.filter(attr => !attr.startsWith(\"xfa\"));\n        }\n\n        attributes.dir = \"auto\";\n      }\n\n      return {\n        html,\n        str: root[_xfa_object.$text]()\n      };\n    } catch (e) {\n      (0, _util.warn)(`XFA - an error occurred during parsing of rich text: ${e}`);\n    }\n\n    return null;\n  }\n\n}\n\nexports.XFAFactory = XFAFactory;\n\n/***/ }),\n/* 77 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XmlObject = exports.XFAObjectArray = exports.XFAObject = exports.XFAAttribute = exports.StringObject = exports.OptionObject = exports.Option10 = exports.Option01 = exports.IntegerObject = exports.ContentObject = exports.$uid = exports.$toStyle = exports.$toString = exports.$toPages = exports.$toHTML = exports.$text = exports.$tabIndex = exports.$setValue = exports.$setSetAttributes = exports.$setId = exports.$searchNode = exports.$root = exports.$resolvePrototypes = exports.$removeChild = exports.$pushPara = exports.$pushGlyphs = exports.$popPara = exports.$onText = exports.$onChildCheck = exports.$onChild = exports.$nsAttributes = exports.$nodeName = exports.$namespaceId = exports.$isUsable = exports.$isTransparent = exports.$isThereMoreWidth = exports.$isSplittable = exports.$isNsAgnostic = exports.$isDescendent = exports.$isDataValue = exports.$isCDATAXml = exports.$isBindable = exports.$insertAt = exports.$indexOf = exports.$ids = exports.$hasSettableValue = exports.$globalData = exports.$getTemplateRoot = exports.$getSubformParent = exports.$getRealChildrenByNameIt = exports.$getParent = exports.$getNextPage = exports.$getExtra = exports.$getDataValue = exports.$getContainedChildren = exports.$getChildrenByNameIt = exports.$getChildrenByName = exports.$getChildrenByClass = exports.$getChildren = exports.$getAvailableSpace = exports.$getAttributes = exports.$getAttributeIt = exports.$flushHTML = exports.$finalize = exports.$extra = exports.$dump = exports.$data = exports.$content = exports.$consumed = exports.$clone = exports.$cleanup = exports.$cleanPage = exports.$clean = exports.$childrenToHTML = exports.$appendChild = exports.$addHTML = exports.$acceptWhitespace = void 0;\n\nvar _utils = __w_pdfjs_require__(78);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _som = __w_pdfjs_require__(80);\n\nconst $acceptWhitespace = Symbol();\nexports.$acceptWhitespace = $acceptWhitespace;\nconst $addHTML = Symbol();\nexports.$addHTML = $addHTML;\nconst $appendChild = Symbol();\nexports.$appendChild = $appendChild;\nconst $childrenToHTML = Symbol();\nexports.$childrenToHTML = $childrenToHTML;\nconst $clean = Symbol();\nexports.$clean = $clean;\nconst $cleanPage = Symbol();\nexports.$cleanPage = $cleanPage;\nconst $cleanup = Symbol();\nexports.$cleanup = $cleanup;\nconst $clone = Symbol();\nexports.$clone = $clone;\nconst $consumed = Symbol();\nexports.$consumed = $consumed;\nconst $content = Symbol(\"content\");\nexports.$content = $content;\nconst $data = Symbol(\"data\");\nexports.$data = $data;\nconst $dump = Symbol();\nexports.$dump = $dump;\nconst $extra = Symbol(\"extra\");\nexports.$extra = $extra;\nconst $finalize = Symbol();\nexports.$finalize = $finalize;\nconst $flushHTML = Symbol();\nexports.$flushHTML = $flushHTML;\nconst $getAttributeIt = Symbol();\nexports.$getAttributeIt = $getAttributeIt;\nconst $getAttributes = Symbol();\nexports.$getAttributes = $getAttributes;\nconst $getAvailableSpace = Symbol();\nexports.$getAvailableSpace = $getAvailableSpace;\nconst $getChildrenByClass = Symbol();\nexports.$getChildrenByClass = $getChildrenByClass;\nconst $getChildrenByName = Symbol();\nexports.$getChildrenByName = $getChildrenByName;\nconst $getChildrenByNameIt = Symbol();\nexports.$getChildrenByNameIt = $getChildrenByNameIt;\nconst $getDataValue = Symbol();\nexports.$getDataValue = $getDataValue;\nconst $getExtra = Symbol();\nexports.$getExtra = $getExtra;\nconst $getRealChildrenByNameIt = Symbol();\nexports.$getRealChildrenByNameIt = $getRealChildrenByNameIt;\nconst $getChildren = Symbol();\nexports.$getChildren = $getChildren;\nconst $getContainedChildren = Symbol();\nexports.$getContainedChildren = $getContainedChildren;\nconst $getNextPage = Symbol();\nexports.$getNextPage = $getNextPage;\nconst $getSubformParent = Symbol();\nexports.$getSubformParent = $getSubformParent;\nconst $getParent = Symbol();\nexports.$getParent = $getParent;\nconst $getTemplateRoot = Symbol();\nexports.$getTemplateRoot = $getTemplateRoot;\nconst $globalData = Symbol();\nexports.$globalData = $globalData;\nconst $hasSettableValue = Symbol();\nexports.$hasSettableValue = $hasSettableValue;\nconst $ids = Symbol();\nexports.$ids = $ids;\nconst $indexOf = Symbol();\nexports.$indexOf = $indexOf;\nconst $insertAt = Symbol();\nexports.$insertAt = $insertAt;\nconst $isCDATAXml = Symbol();\nexports.$isCDATAXml = $isCDATAXml;\nconst $isBindable = Symbol();\nexports.$isBindable = $isBindable;\nconst $isDataValue = Symbol();\nexports.$isDataValue = $isDataValue;\nconst $isDescendent = Symbol();\nexports.$isDescendent = $isDescendent;\nconst $isNsAgnostic = Symbol();\nexports.$isNsAgnostic = $isNsAgnostic;\nconst $isSplittable = Symbol();\nexports.$isSplittable = $isSplittable;\nconst $isThereMoreWidth = Symbol();\nexports.$isThereMoreWidth = $isThereMoreWidth;\nconst $isTransparent = Symbol();\nexports.$isTransparent = $isTransparent;\nconst $isUsable = Symbol();\nexports.$isUsable = $isUsable;\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nexports.$namespaceId = $namespaceId;\nconst $nodeName = Symbol(\"nodeName\");\nexports.$nodeName = $nodeName;\nconst $nsAttributes = Symbol();\nexports.$nsAttributes = $nsAttributes;\nconst $onChild = Symbol();\nexports.$onChild = $onChild;\nconst $onChildCheck = Symbol();\nexports.$onChildCheck = $onChildCheck;\nconst $onText = Symbol();\nexports.$onText = $onText;\nconst $pushGlyphs = Symbol();\nexports.$pushGlyphs = $pushGlyphs;\nconst $popPara = Symbol();\nexports.$popPara = $popPara;\nconst $pushPara = Symbol();\nexports.$pushPara = $pushPara;\nconst $removeChild = Symbol();\nexports.$removeChild = $removeChild;\nconst $root = Symbol(\"root\");\nexports.$root = $root;\nconst $resolvePrototypes = Symbol();\nexports.$resolvePrototypes = $resolvePrototypes;\nconst $searchNode = Symbol();\nexports.$searchNode = $searchNode;\nconst $setId = Symbol();\nexports.$setId = $setId;\nconst $setSetAttributes = Symbol();\nexports.$setSetAttributes = $setSetAttributes;\nconst $setValue = Symbol();\nexports.$setValue = $setValue;\nconst $tabIndex = Symbol();\nexports.$tabIndex = $tabIndex;\nconst $text = Symbol();\nexports.$text = $text;\nconst $toPages = Symbol();\nexports.$toPages = $toPages;\nconst $toHTML = Symbol();\nexports.$toHTML = $toHTML;\nconst $toString = Symbol();\nexports.$toString = $toString;\nconst $toStyle = Symbol();\nexports.$toStyle = $toStyle;\nconst $uid = Symbol(\"uid\");\nexports.$uid = $uid;\n\nconst _applyPrototype = Symbol();\n\nconst _attributes = Symbol();\n\nconst _attributeNames = Symbol();\n\nconst _children = Symbol(\"_children\");\n\nconst _cloneAttribute = Symbol();\n\nconst _dataValue = Symbol();\n\nconst _defaultValue = Symbol();\n\nconst _filteredChildrenGenerator = Symbol();\n\nconst _getPrototype = Symbol();\n\nconst _getUnsetAttributes = Symbol();\n\nconst _hasChildren = Symbol();\n\nconst _max = Symbol();\n\nconst _options = Symbol();\n\nconst _parent = Symbol(\"parent\");\n\nconst _resolvePrototypesHelper = Symbol();\n\nconst _setAttributes = Symbol();\n\nconst _validator = Symbol();\n\nlet uid = 0;\nconst NS_DATASETS = _namespaces.NamespaceIds.datasets.id;\n\nclass XFAObject {\n  constructor(nsId, name, hasChildren = false) {\n    this[$namespaceId] = nsId;\n    this[$nodeName] = name;\n    this[_hasChildren] = hasChildren;\n    this[_parent] = null;\n    this[_children] = [];\n    this[$uid] = `${name}${uid++}`;\n    this[$globalData] = null;\n  }\n\n  [$onChild](child) {\n    if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n      return false;\n    }\n\n    const name = child[$nodeName];\n    const node = this[name];\n\n    if (node instanceof XFAObjectArray) {\n      if (node.push(child)) {\n        this[$appendChild](child);\n        return true;\n      }\n    } else {\n      if (node !== null) {\n        this[$removeChild](node);\n      }\n\n      this[name] = child;\n      this[$appendChild](child);\n      return true;\n    }\n\n    let id = \"\";\n\n    if (this.id) {\n      id = ` (id: ${this.id})`;\n    } else if (this.name) {\n      id = ` (name: ${this.name} ${this.h.value})`;\n    }\n\n    (0, _util.warn)(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n    return false;\n  }\n\n  [$onChildCheck](child) {\n    return this.hasOwnProperty(child[$nodeName]) && child[$namespaceId] === this[$namespaceId];\n  }\n\n  [$isNsAgnostic]() {\n    return false;\n  }\n\n  [$acceptWhitespace]() {\n    return false;\n  }\n\n  [$isCDATAXml]() {\n    return false;\n  }\n\n  [$isBindable]() {\n    return false;\n  }\n\n  [$popPara]() {\n    if (this.para) {\n      this[$getTemplateRoot]()[$extra].paraStack.pop();\n    }\n  }\n\n  [$pushPara]() {\n    this[$getTemplateRoot]()[$extra].paraStack.push(this.para);\n  }\n\n  [$setId](ids) {\n    if (this.id && this[$namespaceId] === _namespaces.NamespaceIds.template.id) {\n      ids.set(this.id, this);\n    }\n  }\n\n  [$getTemplateRoot]() {\n    return this[$globalData].template;\n  }\n\n  [$isSplittable]() {\n    return false;\n  }\n\n  [$isThereMoreWidth]() {\n    return false;\n  }\n\n  [$appendChild](child) {\n    child[_parent] = this;\n\n    this[_children].push(child);\n\n    if (!child[$globalData] && this[$globalData]) {\n      child[$globalData] = this[$globalData];\n    }\n  }\n\n  [$removeChild](child) {\n    const i = this[_children].indexOf(child);\n\n    this[_children].splice(i, 1);\n  }\n\n  [$hasSettableValue]() {\n    return this.hasOwnProperty(\"value\");\n  }\n\n  [$setValue](_) {}\n\n  [$onText](_) {}\n\n  [$finalize]() {}\n\n  [$clean](builder) {\n    delete this[_hasChildren];\n\n    if (this[$cleanup]) {\n      builder.clean(this[$cleanup]);\n      delete this[$cleanup];\n    }\n  }\n\n  [$indexOf](child) {\n    return this[_children].indexOf(child);\n  }\n\n  [$insertAt](i, child) {\n    child[_parent] = this;\n\n    this[_children].splice(i, 0, child);\n\n    if (!child[$globalData] && this[$globalData]) {\n      child[$globalData] = this[$globalData];\n    }\n  }\n\n  [$isTransparent]() {\n    return !this.name;\n  }\n\n  [$lastAttribute]() {\n    return \"\";\n  }\n\n  [$text]() {\n    if (this[_children].length === 0) {\n      return this[$content];\n    }\n\n    return this[_children].map(c => c[$text]()).join(\"\");\n  }\n\n  get [_attributeNames]() {\n    const proto = Object.getPrototypeOf(this);\n\n    if (!proto._attributes) {\n      const attributes = proto._attributes = new Set();\n\n      for (const name of Object.getOwnPropertyNames(this)) {\n        if (this[name] === null || this[name] instanceof XFAObject || this[name] instanceof XFAObjectArray) {\n          break;\n        }\n\n        attributes.add(name);\n      }\n    }\n\n    return (0, _util.shadow)(this, _attributeNames, proto._attributes);\n  }\n\n  [$isDescendent](parent) {\n    let node = this;\n\n    while (node) {\n      if (node === parent) {\n        return true;\n      }\n\n      node = node[$getParent]();\n    }\n\n    return false;\n  }\n\n  [$getParent]() {\n    return this[_parent];\n  }\n\n  [$getSubformParent]() {\n    return this[$getParent]();\n  }\n\n  [$getChildren](name = null) {\n    if (!name) {\n      return this[_children];\n    }\n\n    return this[name];\n  }\n\n  [$dump]() {\n    const dumped = Object.create(null);\n\n    if (this[$content]) {\n      dumped.$content = this[$content];\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const value = this[name];\n\n      if (value === null) {\n        continue;\n      }\n\n      if (value instanceof XFAObject) {\n        dumped[name] = value[$dump]();\n      } else if (value instanceof XFAObjectArray) {\n        if (!value.isEmpty()) {\n          dumped[name] = value.dump();\n        }\n      } else {\n        dumped[name] = value;\n      }\n    }\n\n    return dumped;\n  }\n\n  [$toStyle]() {\n    return null;\n  }\n\n  [$toHTML]() {\n    return _utils.HTMLResult.EMPTY;\n  }\n\n  *[$getContainedChildren]() {\n    for (const node of this[$getChildren]()) {\n      yield node;\n    }\n  }\n\n  *[_filteredChildrenGenerator](filter, include) {\n    for (const node of this[$getContainedChildren]()) {\n      if (!filter || include === filter.has(node[$nodeName])) {\n        const availableSpace = this[$getAvailableSpace]();\n        const res = node[$toHTML](availableSpace);\n\n        if (!res.success) {\n          this[$extra].failingNode = node;\n        }\n\n        yield res;\n      }\n    }\n  }\n\n  [$flushHTML]() {\n    return null;\n  }\n\n  [$addHTML](html, bbox) {\n    this[$extra].children.push(html);\n  }\n\n  [$getAvailableSpace]() {}\n\n  [$childrenToHTML]({\n    filter = null,\n    include = true\n  }) {\n    if (!this[$extra].generator) {\n      this[$extra].generator = this[_filteredChildrenGenerator](filter, include);\n    } else {\n      const availableSpace = this[$getAvailableSpace]();\n      const res = this[$extra].failingNode[$toHTML](availableSpace);\n\n      if (!res.success) {\n        return res;\n      }\n\n      if (res.html) {\n        this[$addHTML](res.html, res.bbox);\n      }\n\n      delete this[$extra].failingNode;\n    }\n\n    while (true) {\n      const gen = this[$extra].generator.next();\n\n      if (gen.done) {\n        break;\n      }\n\n      const res = gen.value;\n\n      if (!res.success) {\n        return res;\n      }\n\n      if (res.html) {\n        this[$addHTML](res.html, res.bbox);\n      }\n    }\n\n    this[$extra].generator = null;\n    return _utils.HTMLResult.EMPTY;\n  }\n\n  [$setSetAttributes](attributes) {\n    this[_setAttributes] = new Set(Object.keys(attributes));\n  }\n\n  [_getUnsetAttributes](protoAttributes) {\n    const allAttr = this[_attributeNames];\n    const setAttr = this[_setAttributes];\n    return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n  }\n\n  [$resolvePrototypes](ids, ancestors = new Set()) {\n    for (const child of this[_children]) {\n      child[_resolvePrototypesHelper](ids, ancestors);\n    }\n  }\n\n  [_resolvePrototypesHelper](ids, ancestors) {\n    const proto = this[_getPrototype](ids, ancestors);\n\n    if (proto) {\n      this[_applyPrototype](proto, ids, ancestors);\n    } else {\n      this[$resolvePrototypes](ids, ancestors);\n    }\n  }\n\n  [_getPrototype](ids, ancestors) {\n    const {\n      use,\n      usehref\n    } = this;\n\n    if (!use && !usehref) {\n      return null;\n    }\n\n    let proto = null;\n    let somExpression = null;\n    let id = null;\n    let ref = use;\n\n    if (usehref) {\n      ref = usehref;\n\n      if (usehref.startsWith(\"#som(\") && usehref.endsWith(\")\")) {\n        somExpression = usehref.slice(\"#som(\".length, usehref.length - 1);\n      } else if (usehref.startsWith(\".#som(\") && usehref.endsWith(\")\")) {\n        somExpression = usehref.slice(\".#som(\".length, usehref.length - 1);\n      } else if (usehref.startsWith(\"#\")) {\n        id = usehref.slice(1);\n      } else if (usehref.startsWith(\".#\")) {\n        id = usehref.slice(2);\n      }\n    } else if (use.startsWith(\"#\")) {\n      id = use.slice(1);\n    } else {\n      somExpression = use;\n    }\n\n    this.use = this.usehref = \"\";\n\n    if (id) {\n      proto = ids.get(id);\n    } else {\n      proto = (0, _som.searchNode)(ids.get($root), this, somExpression, true, false);\n\n      if (proto) {\n        proto = proto[0];\n      }\n    }\n\n    if (!proto) {\n      (0, _util.warn)(`XFA - Invalid prototype reference: ${ref}.`);\n      return null;\n    }\n\n    if (proto[$nodeName] !== this[$nodeName]) {\n      (0, _util.warn)(`XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`);\n      return null;\n    }\n\n    if (ancestors.has(proto)) {\n      (0, _util.warn)(`XFA - Cycle detected in prototypes use.`);\n      return null;\n    }\n\n    ancestors.add(proto);\n\n    const protoProto = proto[_getPrototype](ids, ancestors);\n\n    if (protoProto) {\n      proto[_applyPrototype](protoProto, ids, ancestors);\n    }\n\n    proto[$resolvePrototypes](ids, ancestors);\n    ancestors.delete(proto);\n    return proto;\n  }\n\n  [_applyPrototype](proto, ids, ancestors) {\n    if (ancestors.has(proto)) {\n      (0, _util.warn)(`XFA - Cycle detected in prototypes use.`);\n      return;\n    }\n\n    if (!this[$content] && proto[$content]) {\n      this[$content] = proto[$content];\n    }\n\n    const newAncestors = new Set(ancestors);\n    newAncestors.add(proto);\n\n    for (const unsetAttrName of this[_getUnsetAttributes](proto[_setAttributes])) {\n      this[unsetAttrName] = proto[unsetAttrName];\n\n      if (this[_setAttributes]) {\n        this[_setAttributes].add(unsetAttrName);\n      }\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (this[_attributeNames].has(name)) {\n        continue;\n      }\n\n      const value = this[name];\n      const protoValue = proto[name];\n\n      if (value instanceof XFAObjectArray) {\n        for (const child of value[_children]) {\n          child[_resolvePrototypesHelper](ids, ancestors);\n        }\n\n        for (let i = value[_children].length, ii = protoValue[_children].length; i < ii; i++) {\n          const child = proto[_children][i][$clone]();\n\n          if (value.push(child)) {\n            child[_parent] = this;\n\n            this[_children].push(child);\n\n            child[_resolvePrototypesHelper](ids, ancestors);\n          } else {\n            break;\n          }\n        }\n\n        continue;\n      }\n\n      if (value !== null) {\n        value[$resolvePrototypes](ids, ancestors);\n\n        if (protoValue) {\n          value[_applyPrototype](protoValue, ids, ancestors);\n        }\n\n        continue;\n      }\n\n      if (protoValue !== null) {\n        const child = protoValue[$clone]();\n        child[_parent] = this;\n        this[name] = child;\n\n        this[_children].push(child);\n\n        child[_resolvePrototypesHelper](ids, ancestors);\n      }\n    }\n  }\n\n  static [_cloneAttribute](obj) {\n    if (Array.isArray(obj)) {\n      return obj.map(x => XFAObject[_cloneAttribute](x));\n    }\n\n    if (typeof obj === \"object\" && obj !== null) {\n      return Object.assign({}, obj);\n    }\n\n    return obj;\n  }\n\n  [$clone]() {\n    const clone = Object.create(Object.getPrototypeOf(this));\n\n    for (const $symbol of Object.getOwnPropertySymbols(this)) {\n      try {\n        clone[$symbol] = this[$symbol];\n      } catch (_) {\n        (0, _util.shadow)(clone, $symbol, this[$symbol]);\n      }\n    }\n\n    clone[$uid] = `${clone[$nodeName]}${uid++}`;\n    clone[_children] = [];\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (this[_attributeNames].has(name)) {\n        clone[name] = XFAObject[_cloneAttribute](this[name]);\n        continue;\n      }\n\n      const value = this[name];\n\n      if (value instanceof XFAObjectArray) {\n        clone[name] = new XFAObjectArray(value[_max]);\n      } else {\n        clone[name] = null;\n      }\n    }\n\n    for (const child of this[_children]) {\n      const name = child[$nodeName];\n      const clonedChild = child[$clone]();\n\n      clone[_children].push(clonedChild);\n\n      clonedChild[_parent] = clone;\n\n      if (clone[name] === null) {\n        clone[name] = clonedChild;\n      } else {\n        clone[name][_children].push(clonedChild);\n      }\n    }\n\n    return clone;\n  }\n\n  [$getChildren](name = null) {\n    if (!name) {\n      return this[_children];\n    }\n\n    return this[_children].filter(c => c[$nodeName] === name);\n  }\n\n  [$getChildrenByClass](name) {\n    return this[name];\n  }\n\n  [$getChildrenByName](name, allTransparent, first = true) {\n    return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n  }\n\n  *[$getChildrenByNameIt](name, allTransparent, first = true) {\n    if (name === \"parent\") {\n      yield this[_parent];\n      return;\n    }\n\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name) {\n        yield child;\n      }\n\n      if (child.name === name) {\n        yield child;\n      }\n\n      if (allTransparent || child[$isTransparent]()) {\n        yield* child[$getChildrenByNameIt](name, allTransparent, false);\n      }\n    }\n\n    if (first && this[_attributeNames].has(name)) {\n      yield new XFAAttribute(this, name, this[name]);\n    }\n  }\n\n}\n\nexports.XFAObject = XFAObject;\n\nclass XFAObjectArray {\n  constructor(max = Infinity) {\n    this[_max] = max;\n    this[_children] = [];\n  }\n\n  push(child) {\n    const len = this[_children].length;\n\n    if (len <= this[_max]) {\n      this[_children].push(child);\n\n      return true;\n    }\n\n    (0, _util.warn)(`XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`);\n    return false;\n  }\n\n  isEmpty() {\n    return this[_children].length === 0;\n  }\n\n  dump() {\n    return this[_children].length === 1 ? this[_children][0][$dump]() : this[_children].map(x => x[$dump]());\n  }\n\n  [$clone]() {\n    const clone = new XFAObjectArray(this[_max]);\n    clone[_children] = this[_children].map(c => c[$clone]());\n    return clone;\n  }\n\n  get children() {\n    return this[_children];\n  }\n\n  clear() {\n    this[_children].length = 0;\n  }\n\n}\n\nexports.XFAObjectArray = XFAObjectArray;\n\nclass XFAAttribute {\n  constructor(node, name, value) {\n    this[_parent] = node;\n    this[$nodeName] = name;\n    this[$content] = value;\n    this[$consumed] = false;\n    this[$uid] = `attribute${uid++}`;\n  }\n\n  [$getParent]() {\n    return this[_parent];\n  }\n\n  [$isDataValue]() {\n    return true;\n  }\n\n  [$getDataValue]() {\n    return this[$content].trim();\n  }\n\n  [$setValue](value) {\n    value = value.value || \"\";\n    this[$content] = value.toString();\n  }\n\n  [$text]() {\n    return this[$content];\n  }\n\n  [$isDescendent](parent) {\n    return this[_parent] === parent || this[_parent][$isDescendent](parent);\n  }\n\n}\n\nexports.XFAAttribute = XFAAttribute;\n\nclass XmlObject extends XFAObject {\n  constructor(nsId, name, attributes = {}) {\n    super(nsId, name);\n    this[$content] = \"\";\n    this[_dataValue] = null;\n\n    if (name !== \"#text\") {\n      const map = new Map();\n      this[_attributes] = map;\n\n      for (const [attrName, value] of Object.entries(attributes)) {\n        map.set(attrName, new XFAAttribute(this, attrName, value));\n      }\n\n      if (attributes.hasOwnProperty($nsAttributes)) {\n        const dataNode = attributes[$nsAttributes].xfa.dataNode;\n\n        if (dataNode !== undefined) {\n          if (dataNode === \"dataGroup\") {\n            this[_dataValue] = false;\n          } else if (dataNode === \"dataValue\") {\n            this[_dataValue] = true;\n          }\n        }\n      }\n    }\n\n    this[$consumed] = false;\n  }\n\n  [$toString](buf) {\n    const tagName = this[$nodeName];\n\n    if (tagName === \"#text\") {\n      buf.push((0, _core_utils.encodeToXmlString)(this[$content]));\n      return;\n    }\n\n    const utf8TagName = (0, _util.utf8StringToString)(tagName);\n    const prefix = this[$namespaceId] === NS_DATASETS ? \"xfa:\" : \"\";\n    buf.push(`<${prefix}${utf8TagName}`);\n\n    for (const [name, value] of this[_attributes].entries()) {\n      const utf8Name = (0, _util.utf8StringToString)(name);\n      buf.push(` ${utf8Name}=\"${(0, _core_utils.encodeToXmlString)(value[$content])}\"`);\n    }\n\n    if (this[_dataValue] !== null) {\n      if (this[_dataValue]) {\n        buf.push(` xfa:dataNode=\"dataValue\"`);\n      } else {\n        buf.push(` xfa:dataNode=\"dataGroup\"`);\n      }\n    }\n\n    if (!this[$content] && this[_children].length === 0) {\n      buf.push(\"/>\");\n      return;\n    }\n\n    buf.push(\">\");\n\n    if (this[$content]) {\n      if (typeof this[$content] === \"string\") {\n        buf.push((0, _core_utils.encodeToXmlString)(this[$content]));\n      } else {\n        this[$content][$toString](buf);\n      }\n    } else {\n      for (const child of this[_children]) {\n        child[$toString](buf);\n      }\n    }\n\n    buf.push(`</${prefix}${utf8TagName}>`);\n  }\n\n  [$onChild](child) {\n    if (this[$content]) {\n      const node = new XmlObject(this[$namespaceId], \"#text\");\n      this[$appendChild](node);\n      node[$content] = this[$content];\n      this[$content] = \"\";\n    }\n\n    this[$appendChild](child);\n    return true;\n  }\n\n  [$onText](str) {\n    this[$content] += str;\n  }\n\n  [$finalize]() {\n    if (this[$content] && this[_children].length > 0) {\n      const node = new XmlObject(this[$namespaceId], \"#text\");\n      this[$appendChild](node);\n      node[$content] = this[$content];\n      delete this[$content];\n    }\n  }\n\n  [$toHTML]() {\n    if (this[$nodeName] === \"#text\") {\n      return _utils.HTMLResult.success({\n        name: \"#text\",\n        value: this[$content]\n      });\n    }\n\n    return _utils.HTMLResult.EMPTY;\n  }\n\n  [$getChildren](name = null) {\n    if (!name) {\n      return this[_children];\n    }\n\n    return this[_children].filter(c => c[$nodeName] === name);\n  }\n\n  [$getAttributes]() {\n    return this[_attributes];\n  }\n\n  [$getChildrenByClass](name) {\n    const value = this[_attributes].get(name);\n\n    if (value !== undefined) {\n      return value;\n    }\n\n    return this[$getChildren](name);\n  }\n\n  *[$getChildrenByNameIt](name, allTransparent) {\n    const value = this[_attributes].get(name);\n\n    if (value) {\n      yield value;\n    }\n\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name) {\n        yield child;\n      }\n\n      if (allTransparent) {\n        yield* child[$getChildrenByNameIt](name, allTransparent);\n      }\n    }\n  }\n\n  *[$getAttributeIt](name, skipConsumed) {\n    const value = this[_attributes].get(name);\n\n    if (value && (!skipConsumed || !value[$consumed])) {\n      yield value;\n    }\n\n    for (const child of this[_children]) {\n      yield* child[$getAttributeIt](name, skipConsumed);\n    }\n  }\n\n  *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n    for (const child of this[_children]) {\n      if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n        yield child;\n      }\n\n      if (allTransparent) {\n        yield* child[$getRealChildrenByNameIt](name, allTransparent, skipConsumed);\n      }\n    }\n  }\n\n  [$isDataValue]() {\n    if (this[_dataValue] === null) {\n      return this[_children].length === 0 || this[_children][0][$namespaceId] === _namespaces.NamespaceIds.xhtml.id;\n    }\n\n    return this[_dataValue];\n  }\n\n  [$getDataValue]() {\n    if (this[_dataValue] === null) {\n      if (this[_children].length === 0) {\n        return this[$content].trim();\n      }\n\n      if (this[_children][0][$namespaceId] === _namespaces.NamespaceIds.xhtml.id) {\n        return this[_children][0][$text]().trim();\n      }\n\n      return null;\n    }\n\n    return this[$content].trim();\n  }\n\n  [$setValue](value) {\n    value = value.value || \"\";\n    this[$content] = value.toString();\n  }\n\n  [$dump](hasNS = false) {\n    const dumped = Object.create(null);\n\n    if (hasNS) {\n      dumped.$ns = this[$namespaceId];\n    }\n\n    if (this[$content]) {\n      dumped.$content = this[$content];\n    }\n\n    dumped.$name = this[$nodeName];\n    dumped.children = [];\n\n    for (const child of this[_children]) {\n      dumped.children.push(child[$dump](hasNS));\n    }\n\n    dumped.attributes = Object.create(null);\n\n    for (const [name, value] of this[_attributes]) {\n      dumped.attributes[name] = value[$content];\n    }\n\n    return dumped;\n  }\n\n}\n\nexports.XmlObject = XmlObject;\n\nclass ContentObject extends XFAObject {\n  constructor(nsId, name) {\n    super(nsId, name);\n    this[$content] = \"\";\n  }\n\n  [$onText](text) {\n    this[$content] += text;\n  }\n\n  [$finalize]() {}\n\n}\n\nexports.ContentObject = ContentObject;\n\nclass OptionObject extends ContentObject {\n  constructor(nsId, name, options) {\n    super(nsId, name);\n    this[_options] = options;\n  }\n\n  [$finalize]() {\n    this[$content] = (0, _utils.getKeyword)({\n      data: this[$content],\n      defaultValue: this[_options][0],\n      validate: k => this[_options].includes(k)\n    });\n  }\n\n  [$clean](builder) {\n    super[$clean](builder);\n    delete this[_options];\n  }\n\n}\n\nexports.OptionObject = OptionObject;\n\nclass StringObject extends ContentObject {\n  [$finalize]() {\n    this[$content] = this[$content].trim();\n  }\n\n}\n\nexports.StringObject = StringObject;\n\nclass IntegerObject extends ContentObject {\n  constructor(nsId, name, defaultValue, validator) {\n    super(nsId, name);\n    this[_defaultValue] = defaultValue;\n    this[_validator] = validator;\n  }\n\n  [$finalize]() {\n    this[$content] = (0, _utils.getInteger)({\n      data: this[$content],\n      defaultValue: this[_defaultValue],\n      validate: this[_validator]\n    });\n  }\n\n  [$clean](builder) {\n    super[$clean](builder);\n    delete this[_defaultValue];\n    delete this[_validator];\n  }\n\n}\n\nexports.IntegerObject = IntegerObject;\n\nclass Option01 extends IntegerObject {\n  constructor(nsId, name) {\n    super(nsId, name, 0, n => n === 1);\n  }\n\n}\n\nexports.Option01 = Option01;\n\nclass Option10 extends IntegerObject {\n  constructor(nsId, name) {\n    super(nsId, name, 1, n => n === 0);\n  }\n\n}\n\nexports.Option10 = Option10;\n\n/***/ }),\n/* 78 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.HTMLResult = void 0;\nexports.getBBox = getBBox;\nexports.getColor = getColor;\nexports.getFloat = getFloat;\nexports.getInteger = getInteger;\nexports.getKeyword = getKeyword;\nexports.getMeasurement = getMeasurement;\nexports.getRatio = getRatio;\nexports.getRelevant = getRelevant;\nexports.getStringOption = getStringOption;\nexports.stripQuotes = stripQuotes;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst dimConverters = {\n  pt: x => x,\n  cm: x => x / 2.54 * 72,\n  mm: x => x / (10 * 2.54) * 72,\n  in: x => x * 72,\n  px: x => x\n};\nconst measurementPattern = /([+-]?\\d+\\.?\\d*)(.*)/;\n\nfunction stripQuotes(str) {\n  if (str.startsWith(\"'\") || str.startsWith('\"')) {\n    return str.slice(1, str.length - 1);\n  }\n\n  return str;\n}\n\nfunction getInteger({\n  data,\n  defaultValue,\n  validate\n}) {\n  if (!data) {\n    return defaultValue;\n  }\n\n  data = data.trim();\n  const n = parseInt(data, 10);\n\n  if (!isNaN(n) && validate(n)) {\n    return n;\n  }\n\n  return defaultValue;\n}\n\nfunction getFloat({\n  data,\n  defaultValue,\n  validate\n}) {\n  if (!data) {\n    return defaultValue;\n  }\n\n  data = data.trim();\n  const n = parseFloat(data);\n\n  if (!isNaN(n) && validate(n)) {\n    return n;\n  }\n\n  return defaultValue;\n}\n\nfunction getKeyword({\n  data,\n  defaultValue,\n  validate\n}) {\n  if (!data) {\n    return defaultValue;\n  }\n\n  data = data.trim();\n\n  if (validate(data)) {\n    return data;\n  }\n\n  return defaultValue;\n}\n\nfunction getStringOption(data, options) {\n  return getKeyword({\n    data,\n    defaultValue: options[0],\n    validate: k => options.includes(k)\n  });\n}\n\nfunction getMeasurement(str, def = \"0\") {\n  def = def || \"0\";\n\n  if (!str) {\n    return getMeasurement(def);\n  }\n\n  const match = str.trim().match(measurementPattern);\n\n  if (!match) {\n    return getMeasurement(def);\n  }\n\n  const [, valueStr, unit] = match;\n  const value = parseFloat(valueStr);\n\n  if (isNaN(value)) {\n    return getMeasurement(def);\n  }\n\n  if (value === 0) {\n    return 0;\n  }\n\n  const conv = dimConverters[unit];\n\n  if (conv) {\n    return conv(value);\n  }\n\n  return value;\n}\n\nfunction getRatio(data) {\n  if (!data) {\n    return {\n      num: 1,\n      den: 1\n    };\n  }\n\n  const ratio = data.trim().split(/\\s*:\\s*/).map(x => parseFloat(x)).filter(x => !isNaN(x));\n\n  if (ratio.length === 1) {\n    ratio.push(1);\n  }\n\n  if (ratio.length === 0) {\n    return {\n      num: 1,\n      den: 1\n    };\n  }\n\n  const [num, den] = ratio;\n  return {\n    num,\n    den\n  };\n}\n\nfunction getRelevant(data) {\n  if (!data) {\n    return [];\n  }\n\n  return data.trim().split(/\\s+/).map(e => {\n    return {\n      excluded: e[0] === \"-\",\n      viewname: e.substring(1)\n    };\n  });\n}\n\nfunction getColor(data, def = [0, 0, 0]) {\n  let [r, g, b] = def;\n\n  if (!data) {\n    return {\n      r,\n      g,\n      b\n    };\n  }\n\n  const color = data.trim().split(/\\s*,\\s*/).map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255)).map(c => isNaN(c) ? 0 : c);\n\n  if (color.length < 3) {\n    return {\n      r,\n      g,\n      b\n    };\n  }\n\n  [r, g, b] = color;\n  return {\n    r,\n    g,\n    b\n  };\n}\n\nfunction getBBox(data) {\n  const def = -1;\n\n  if (!data) {\n    return {\n      x: def,\n      y: def,\n      width: def,\n      height: def\n    };\n  }\n\n  const bbox = data.trim().split(/\\s*,\\s*/).map(m => getMeasurement(m, \"-1\"));\n\n  if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n    return {\n      x: def,\n      y: def,\n      width: def,\n      height: def\n    };\n  }\n\n  const [x, y, width, height] = bbox;\n  return {\n    x,\n    y,\n    width,\n    height\n  };\n}\n\nclass HTMLResult {\n  static get FAILURE() {\n    return (0, _util.shadow)(this, \"FAILURE\", new HTMLResult(false, null, null, null));\n  }\n\n  static get EMPTY() {\n    return (0, _util.shadow)(this, \"EMPTY\", new HTMLResult(true, null, null, null));\n  }\n\n  constructor(success, html, bbox, breakNode) {\n    this.success = success;\n    this.html = html;\n    this.bbox = bbox;\n    this.breakNode = breakNode;\n  }\n\n  isBreak() {\n    return !!this.breakNode;\n  }\n\n  static breakNode(node) {\n    return new HTMLResult(false, null, null, node);\n  }\n\n  static success(html, bbox = null) {\n    return new HTMLResult(true, html, bbox, null);\n  }\n\n}\n\nexports.HTMLResult = HTMLResult;\n\n/***/ }),\n/* 79 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.NamespaceIds = exports.$buildXFAObject = void 0;\nconst $buildXFAObject = Symbol();\nexports.$buildXFAObject = $buildXFAObject;\nconst NamespaceIds = {\n  config: {\n    id: 0,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\")\n  },\n  connectionSet: {\n    id: 1,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\")\n  },\n  datasets: {\n    id: 2,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\")\n  },\n  form: {\n    id: 3,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\")\n  },\n  localeSet: {\n    id: 4,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\")\n  },\n  pdf: {\n    id: 5,\n    check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\"\n  },\n  signature: {\n    id: 6,\n    check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\"\n  },\n  sourceSet: {\n    id: 7,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\")\n  },\n  stylesheet: {\n    id: 8,\n    check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\"\n  },\n  template: {\n    id: 9,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\")\n  },\n  xdc: {\n    id: 10,\n    check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\")\n  },\n  xdp: {\n    id: 11,\n    check: ns => ns === \"http://ns.adobe.com/xdp/\"\n  },\n  xfdf: {\n    id: 12,\n    check: ns => ns === \"http://ns.adobe.com/xfdf/\"\n  },\n  xhtml: {\n    id: 13,\n    check: ns => ns === \"http://www.w3.org/1999/xhtml\"\n  },\n  xmpmeta: {\n    id: 14,\n    check: ns => ns === \"http://ns.adobe.com/xmpmeta/\"\n  }\n};\nexports.NamespaceIds = NamespaceIds;\n\n/***/ }),\n/* 80 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.createDataNode = createDataNode;\nexports.searchNode = searchNode;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n  dot: 0,\n  dotDot: 1,\n  dotHash: 2,\n  dotBracket: 3,\n  dotParen: 4\n};\nconst shortcuts = new Map([[\"$data\", (root, current) => root.datasets ? root.datasets.data : root], [\"$record\", (root, current) => (root.datasets ? root.datasets.data : root)[_xfa_object.$getChildren]()[0]], [\"$template\", (root, current) => root.template], [\"$connectionSet\", (root, current) => root.connectionSet], [\"$form\", (root, current) => root.form], [\"$layout\", (root, current) => root.layout], [\"$host\", (root, current) => root.host], [\"$dataWindow\", (root, current) => root.dataWindow], [\"$event\", (root, current) => root.event], [\"!\", (root, current) => root.datasets], [\"$xfa\", (root, current) => root], [\"xfa\", (root, current) => root], [\"$\", (root, current) => current]]);\nconst somCache = new WeakMap();\nconst NS_DATASETS = _namespaces.NamespaceIds.datasets.id;\n\nfunction parseIndex(index) {\n  index = index.trim();\n\n  if (index === \"*\") {\n    return Infinity;\n  }\n\n  return parseInt(index, 10) || 0;\n}\n\nfunction parseExpression(expr, dotDotAllowed, noExpr = true) {\n  let match = expr.match(namePattern);\n\n  if (!match) {\n    return null;\n  }\n\n  let [name] = match;\n  const parsed = [{\n    name,\n    cacheName: \".\" + name,\n    index: 0,\n    js: null,\n    formCalc: null,\n    operator: operators.dot\n  }];\n  let pos = name.length;\n\n  while (pos < expr.length) {\n    const spos = pos;\n    const char = expr.charAt(pos++);\n\n    if (char === \"[\") {\n      match = expr.slice(pos).match(indexPattern);\n\n      if (!match) {\n        (0, _util.warn)(\"XFA - Invalid index in SOM expression\");\n        return null;\n      }\n\n      parsed.at(-1).index = parseIndex(match[0]);\n      pos += match[0].length + 1;\n      continue;\n    }\n\n    let operator;\n\n    switch (expr.charAt(pos)) {\n      case \".\":\n        if (!dotDotAllowed) {\n          return null;\n        }\n\n        pos++;\n        operator = operators.dotDot;\n        break;\n\n      case \"#\":\n        pos++;\n        operator = operators.dotHash;\n        break;\n\n      case \"[\":\n        if (noExpr) {\n          (0, _util.warn)(\"XFA - SOM expression contains a FormCalc subexpression which is not supported for now.\");\n          return null;\n        }\n\n        operator = operators.dotBracket;\n        break;\n\n      case \"(\":\n        if (noExpr) {\n          (0, _util.warn)(\"XFA - SOM expression contains a JavaScript subexpression which is not supported for now.\");\n          return null;\n        }\n\n        operator = operators.dotParen;\n        break;\n\n      default:\n        operator = operators.dot;\n        break;\n    }\n\n    match = expr.slice(pos).match(namePattern);\n\n    if (!match) {\n      break;\n    }\n\n    [name] = match;\n    pos += name.length;\n    parsed.push({\n      name,\n      cacheName: expr.slice(spos, pos),\n      operator,\n      index: 0,\n      js: null,\n      formCalc: null\n    });\n  }\n\n  return parsed;\n}\n\nfunction searchNode(root, container, expr, dotDotAllowed = true, useCache = true) {\n  const parsed = parseExpression(expr, dotDotAllowed);\n\n  if (!parsed) {\n    return null;\n  }\n\n  const fn = shortcuts.get(parsed[0].name);\n  let i = 0;\n  let isQualified;\n\n  if (fn) {\n    isQualified = true;\n    root = [fn(root, container)];\n    i = 1;\n  } else {\n    isQualified = container === null;\n    root = [container || root];\n  }\n\n  for (let ii = parsed.length; i < ii; i++) {\n    const {\n      name,\n      cacheName,\n      operator,\n      index\n    } = parsed[i];\n    const nodes = [];\n\n    for (const node of root) {\n      if (!(node instanceof _xfa_object.XFAObject)) {\n        continue;\n      }\n\n      let children, cached;\n\n      if (useCache) {\n        cached = somCache.get(node);\n\n        if (!cached) {\n          cached = new Map();\n          somCache.set(node, cached);\n        }\n\n        children = cached.get(cacheName);\n      }\n\n      if (!children) {\n        switch (operator) {\n          case operators.dot:\n            children = node[_xfa_object.$getChildrenByName](name, false);\n            break;\n\n          case operators.dotDot:\n            children = node[_xfa_object.$getChildrenByName](name, true);\n            break;\n\n          case operators.dotHash:\n            children = node[_xfa_object.$getChildrenByClass](name);\n\n            if (children instanceof _xfa_object.XFAObjectArray) {\n              children = children.children;\n            } else {\n              children = [children];\n            }\n\n            break;\n\n          default:\n            break;\n        }\n\n        if (useCache) {\n          cached.set(cacheName, children);\n        }\n      }\n\n      if (children.length > 0) {\n        nodes.push(children);\n      }\n    }\n\n    if (nodes.length === 0 && !isQualified && i === 0) {\n      const parent = container[_xfa_object.$getParent]();\n\n      container = parent;\n\n      if (!container) {\n        return null;\n      }\n\n      i = -1;\n      root = [container];\n      continue;\n    }\n\n    if (isFinite(index)) {\n      root = nodes.filter(node => index < node.length).map(node => node[index]);\n    } else {\n      root = nodes.flat();\n    }\n  }\n\n  if (root.length === 0) {\n    return null;\n  }\n\n  return root;\n}\n\nfunction createNodes(root, path) {\n  let node = null;\n\n  for (const {\n    name,\n    index\n  } of path) {\n    for (let i = 0, ii = !isFinite(index) ? 0 : index; i <= ii; i++) {\n      const nsId = root[_xfa_object.$namespaceId] === NS_DATASETS ? -1 : root[_xfa_object.$namespaceId];\n      node = new _xfa_object.XmlObject(nsId, name);\n\n      root[_xfa_object.$appendChild](node);\n    }\n\n    root = node;\n  }\n\n  return node;\n}\n\nfunction createDataNode(root, container, expr) {\n  const parsed = parseExpression(expr);\n\n  if (!parsed) {\n    return null;\n  }\n\n  if (parsed.some(x => x.operator === operators.dotDot)) {\n    return null;\n  }\n\n  const fn = shortcuts.get(parsed[0].name);\n  let i = 0;\n\n  if (fn) {\n    root = fn(root, container);\n    i = 1;\n  } else {\n    root = container || root;\n  }\n\n  for (let ii = parsed.length; i < ii; i++) {\n    const {\n      name,\n      operator,\n      index\n    } = parsed[i];\n\n    if (!isFinite(index)) {\n      parsed[i].index = 0;\n      return createNodes(root, parsed.slice(i));\n    }\n\n    let children;\n\n    switch (operator) {\n      case operators.dot:\n        children = root[_xfa_object.$getChildrenByName](name, false);\n        break;\n\n      case operators.dotDot:\n        children = root[_xfa_object.$getChildrenByName](name, true);\n        break;\n\n      case operators.dotHash:\n        children = root[_xfa_object.$getChildrenByClass](name);\n\n        if (children instanceof _xfa_object.XFAObjectArray) {\n          children = children.children;\n        } else {\n          children = [children];\n        }\n\n        break;\n\n      default:\n        break;\n    }\n\n    if (children.length === 0) {\n      return createNodes(root, parsed.slice(i));\n    }\n\n    if (index < children.length) {\n      const child = children[index];\n\n      if (!(child instanceof _xfa_object.XFAObject)) {\n        (0, _util.warn)(`XFA - Cannot create a node.`);\n        return null;\n      }\n\n      root = child;\n    } else {\n      parsed[i].index = index - children.length;\n      return createNodes(root, parsed.slice(i));\n    }\n  }\n\n  return null;\n}\n\n/***/ }),\n/* 81 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Binder = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _template = __w_pdfjs_require__(82);\n\nvar _som = __w_pdfjs_require__(80);\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst NS_DATASETS = _namespaces.NamespaceIds.datasets.id;\n\nfunction createText(content) {\n  const node = new _template.Text({});\n  node[_xfa_object.$content] = content;\n  return node;\n}\n\nclass Binder {\n  constructor(root) {\n    this.root = root;\n    this.datasets = root.datasets;\n\n    if (root.datasets && root.datasets.data) {\n      this.data = root.datasets.data;\n    } else {\n      this.data = new _xfa_object.XmlObject(_namespaces.NamespaceIds.datasets.id, \"data\");\n    }\n\n    this.emptyMerge = this.data[_xfa_object.$getChildren]().length === 0;\n    this.root.form = this.form = root.template[_xfa_object.$clone]();\n  }\n\n  _isConsumeData() {\n    return !this.emptyMerge && this._mergeMode;\n  }\n\n  _isMatchTemplate() {\n    return !this._isConsumeData();\n  }\n\n  bind() {\n    this._bindElement(this.form, this.data);\n\n    return this.form;\n  }\n\n  getData() {\n    return this.data;\n  }\n\n  _bindValue(formNode, data, picture) {\n    formNode[_xfa_object.$data] = data;\n\n    if (formNode[_xfa_object.$hasSettableValue]()) {\n      if (data[_xfa_object.$isDataValue]()) {\n        const value = data[_xfa_object.$getDataValue]();\n\n        formNode[_xfa_object.$setValue](createText(value));\n      } else if (formNode instanceof _template.Field && formNode.ui && formNode.ui.choiceList && formNode.ui.choiceList.open === \"multiSelect\") {\n        const value = data[_xfa_object.$getChildren]().map(child => child[_xfa_object.$content].trim()).join(\"\\n\");\n\n        formNode[_xfa_object.$setValue](createText(value));\n      } else if (this._isConsumeData()) {\n        (0, _util.warn)(`XFA - Nodes haven't the same type.`);\n      }\n    } else if (!data[_xfa_object.$isDataValue]() || this._isMatchTemplate()) {\n      this._bindElement(formNode, data);\n    } else {\n      (0, _util.warn)(`XFA - Nodes haven't the same type.`);\n    }\n  }\n\n  _findDataByNameToConsume(name, isValue, dataNode, global) {\n    if (!name) {\n      return null;\n    }\n\n    let generator, match;\n\n    for (let i = 0; i < 3; i++) {\n      generator = dataNode[_xfa_object.$getRealChildrenByNameIt](name, false, true);\n\n      while (true) {\n        match = generator.next().value;\n\n        if (!match) {\n          break;\n        }\n\n        if (isValue === match[_xfa_object.$isDataValue]()) {\n          return match;\n        }\n      }\n\n      if (dataNode[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.datasets.id && dataNode[_xfa_object.$nodeName] === \"data\") {\n        break;\n      }\n\n      dataNode = dataNode[_xfa_object.$getParent]();\n    }\n\n    if (!global) {\n      return null;\n    }\n\n    generator = this.data[_xfa_object.$getRealChildrenByNameIt](name, true, false);\n    match = generator.next().value;\n\n    if (match) {\n      return match;\n    }\n\n    generator = this.data[_xfa_object.$getAttributeIt](name, true);\n    match = generator.next().value;\n\n    if (match && match[_xfa_object.$isDataValue]()) {\n      return match;\n    }\n\n    return null;\n  }\n\n  _setProperties(formNode, dataNode) {\n    if (!formNode.hasOwnProperty(\"setProperty\")) {\n      return;\n    }\n\n    for (const {\n      ref,\n      target,\n      connection\n    } of formNode.setProperty.children) {\n      if (connection) {\n        continue;\n      }\n\n      if (!ref) {\n        continue;\n      }\n\n      const nodes = (0, _som.searchNode)(this.root, dataNode, ref, false, false);\n\n      if (!nodes) {\n        (0, _util.warn)(`XFA - Invalid reference: ${ref}.`);\n        continue;\n      }\n\n      const [node] = nodes;\n\n      if (!node[_xfa_object.$isDescendent](this.data)) {\n        (0, _util.warn)(`XFA - Invalid node: must be a data node.`);\n        continue;\n      }\n\n      const targetNodes = (0, _som.searchNode)(this.root, formNode, target, false, false);\n\n      if (!targetNodes) {\n        (0, _util.warn)(`XFA - Invalid target: ${target}.`);\n        continue;\n      }\n\n      const [targetNode] = targetNodes;\n\n      if (!targetNode[_xfa_object.$isDescendent](formNode)) {\n        (0, _util.warn)(`XFA - Invalid target: must be a property or subproperty.`);\n        continue;\n      }\n\n      const targetParent = targetNode[_xfa_object.$getParent]();\n\n      if (targetNode instanceof _template.SetProperty || targetParent instanceof _template.SetProperty) {\n        (0, _util.warn)(`XFA - Invalid target: cannot be a setProperty or one of its properties.`);\n        continue;\n      }\n\n      if (targetNode instanceof _template.BindItems || targetParent instanceof _template.BindItems) {\n        (0, _util.warn)(`XFA - Invalid target: cannot be a bindItems or one of its properties.`);\n        continue;\n      }\n\n      const content = node[_xfa_object.$text]();\n\n      const name = targetNode[_xfa_object.$nodeName];\n\n      if (targetNode instanceof _xfa_object.XFAAttribute) {\n        const attrs = Object.create(null);\n        attrs[name] = content;\n        const obj = Reflect.construct(Object.getPrototypeOf(targetParent).constructor, [attrs]);\n        targetParent[name] = obj[name];\n        continue;\n      }\n\n      if (!targetNode.hasOwnProperty(_xfa_object.$content)) {\n        (0, _util.warn)(`XFA - Invalid node to use in setProperty`);\n        continue;\n      }\n\n      targetNode[_xfa_object.$data] = node;\n      targetNode[_xfa_object.$content] = content;\n\n      targetNode[_xfa_object.$finalize]();\n    }\n  }\n\n  _bindItems(formNode, dataNode) {\n    if (!formNode.hasOwnProperty(\"items\") || !formNode.hasOwnProperty(\"bindItems\") || formNode.bindItems.isEmpty()) {\n      return;\n    }\n\n    for (const item of formNode.items.children) {\n      formNode[_xfa_object.$removeChild](item);\n    }\n\n    formNode.items.clear();\n    const labels = new _template.Items({});\n    const values = new _template.Items({});\n\n    formNode[_xfa_object.$appendChild](labels);\n\n    formNode.items.push(labels);\n\n    formNode[_xfa_object.$appendChild](values);\n\n    formNode.items.push(values);\n\n    for (const {\n      ref,\n      labelRef,\n      valueRef,\n      connection\n    } of formNode.bindItems.children) {\n      if (connection) {\n        continue;\n      }\n\n      if (!ref) {\n        continue;\n      }\n\n      const nodes = (0, _som.searchNode)(this.root, dataNode, ref, false, false);\n\n      if (!nodes) {\n        (0, _util.warn)(`XFA - Invalid reference: ${ref}.`);\n        continue;\n      }\n\n      for (const node of nodes) {\n        if (!node[_xfa_object.$isDescendent](this.datasets)) {\n          (0, _util.warn)(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n          continue;\n        }\n\n        const labelNodes = (0, _som.searchNode)(this.root, node, labelRef, true, false);\n\n        if (!labelNodes) {\n          (0, _util.warn)(`XFA - Invalid label: ${labelRef}.`);\n          continue;\n        }\n\n        const [labelNode] = labelNodes;\n\n        if (!labelNode[_xfa_object.$isDescendent](this.datasets)) {\n          (0, _util.warn)(`XFA - Invalid label: must be a datasets child.`);\n          continue;\n        }\n\n        const valueNodes = (0, _som.searchNode)(this.root, node, valueRef, true, false);\n\n        if (!valueNodes) {\n          (0, _util.warn)(`XFA - Invalid value: ${valueRef}.`);\n          continue;\n        }\n\n        const [valueNode] = valueNodes;\n\n        if (!valueNode[_xfa_object.$isDescendent](this.datasets)) {\n          (0, _util.warn)(`XFA - Invalid value: must be a datasets child.`);\n          continue;\n        }\n\n        const label = createText(labelNode[_xfa_object.$text]());\n        const value = createText(valueNode[_xfa_object.$text]());\n\n        labels[_xfa_object.$appendChild](label);\n\n        labels.text.push(label);\n\n        values[_xfa_object.$appendChild](value);\n\n        values.text.push(value);\n      }\n    }\n  }\n\n  _bindOccurrences(formNode, matches, picture) {\n    let baseClone;\n\n    if (matches.length > 1) {\n      baseClone = formNode[_xfa_object.$clone]();\n\n      baseClone[_xfa_object.$removeChild](baseClone.occur);\n\n      baseClone.occur = null;\n    }\n\n    this._bindValue(formNode, matches[0], picture);\n\n    this._setProperties(formNode, matches[0]);\n\n    this._bindItems(formNode, matches[0]);\n\n    if (matches.length === 1) {\n      return;\n    }\n\n    const parent = formNode[_xfa_object.$getParent]();\n\n    const name = formNode[_xfa_object.$nodeName];\n\n    const pos = parent[_xfa_object.$indexOf](formNode);\n\n    for (let i = 1, ii = matches.length; i < ii; i++) {\n      const match = matches[i];\n\n      const clone = baseClone[_xfa_object.$clone]();\n\n      parent[name].push(clone);\n\n      parent[_xfa_object.$insertAt](pos + i, clone);\n\n      this._bindValue(clone, match, picture);\n\n      this._setProperties(clone, match);\n\n      this._bindItems(clone, match);\n    }\n  }\n\n  _createOccurrences(formNode) {\n    if (!this.emptyMerge) {\n      return;\n    }\n\n    const {\n      occur\n    } = formNode;\n\n    if (!occur || occur.initial <= 1) {\n      return;\n    }\n\n    const parent = formNode[_xfa_object.$getParent]();\n\n    const name = formNode[_xfa_object.$nodeName];\n\n    if (!(parent[name] instanceof _xfa_object.XFAObjectArray)) {\n      return;\n    }\n\n    let currentNumber;\n\n    if (formNode.name) {\n      currentNumber = parent[name].children.filter(e => e.name === formNode.name).length;\n    } else {\n      currentNumber = parent[name].children.length;\n    }\n\n    const pos = parent[_xfa_object.$indexOf](formNode) + 1;\n    const ii = occur.initial - currentNumber;\n\n    if (ii) {\n      const nodeClone = formNode[_xfa_object.$clone]();\n\n      nodeClone[_xfa_object.$removeChild](nodeClone.occur);\n\n      nodeClone.occur = null;\n      parent[name].push(nodeClone);\n\n      parent[_xfa_object.$insertAt](pos, nodeClone);\n\n      for (let i = 1; i < ii; i++) {\n        const clone = nodeClone[_xfa_object.$clone]();\n\n        parent[name].push(clone);\n\n        parent[_xfa_object.$insertAt](pos + i, clone);\n      }\n    }\n  }\n\n  _getOccurInfo(formNode) {\n    const {\n      name,\n      occur\n    } = formNode;\n\n    if (!occur || !name) {\n      return [1, 1];\n    }\n\n    const max = occur.max === -1 ? Infinity : occur.max;\n    return [occur.min, max];\n  }\n\n  _setAndBind(formNode, dataNode) {\n    this._setProperties(formNode, dataNode);\n\n    this._bindItems(formNode, dataNode);\n\n    this._bindElement(formNode, dataNode);\n  }\n\n  _bindElement(formNode, dataNode) {\n    const uselessNodes = [];\n\n    this._createOccurrences(formNode);\n\n    for (const child of formNode[_xfa_object.$getChildren]()) {\n      if (child[_xfa_object.$data]) {\n        continue;\n      }\n\n      if (this._mergeMode === undefined && child[_xfa_object.$nodeName] === \"subform\") {\n        this._mergeMode = child.mergeMode === \"consumeData\";\n\n        const dataChildren = dataNode[_xfa_object.$getChildren]();\n\n        if (dataChildren.length > 0) {\n          this._bindOccurrences(child, [dataChildren[0]], null);\n        } else if (this.emptyMerge) {\n          const nsId = dataNode[_xfa_object.$namespaceId] === NS_DATASETS ? -1 : dataNode[_xfa_object.$namespaceId];\n          const dataChild = child[_xfa_object.$data] = new _xfa_object.XmlObject(nsId, child.name || \"root\");\n\n          dataNode[_xfa_object.$appendChild](dataChild);\n\n          this._bindElement(child, dataChild);\n        }\n\n        continue;\n      }\n\n      if (!child[_xfa_object.$isBindable]()) {\n        continue;\n      }\n\n      let global = false;\n      let picture = null;\n      let ref = null;\n      let match = null;\n\n      if (child.bind) {\n        switch (child.bind.match) {\n          case \"none\":\n            this._setAndBind(child, dataNode);\n\n            continue;\n\n          case \"global\":\n            global = true;\n            break;\n\n          case \"dataRef\":\n            if (!child.bind.ref) {\n              (0, _util.warn)(`XFA - ref is empty in node ${child[_xfa_object.$nodeName]}.`);\n\n              this._setAndBind(child, dataNode);\n\n              continue;\n            }\n\n            ref = child.bind.ref;\n            break;\n\n          default:\n            break;\n        }\n\n        if (child.bind.picture) {\n          picture = child.bind.picture[_xfa_object.$content];\n        }\n      }\n\n      const [min, max] = this._getOccurInfo(child);\n\n      if (ref) {\n        match = (0, _som.searchNode)(this.root, dataNode, ref, true, false);\n\n        if (match === null) {\n          match = (0, _som.createDataNode)(this.data, dataNode, ref);\n\n          if (!match) {\n            continue;\n          }\n\n          if (this._isConsumeData()) {\n            match[_xfa_object.$consumed] = true;\n          }\n\n          this._setAndBind(child, match);\n\n          continue;\n        } else {\n          if (this._isConsumeData()) {\n            match = match.filter(node => !node[_xfa_object.$consumed]);\n          }\n\n          if (match.length > max) {\n            match = match.slice(0, max);\n          } else if (match.length === 0) {\n            match = null;\n          }\n\n          if (match && this._isConsumeData()) {\n            match.forEach(node => {\n              node[_xfa_object.$consumed] = true;\n            });\n          }\n        }\n      } else {\n        if (!child.name) {\n          this._setAndBind(child, dataNode);\n\n          continue;\n        }\n\n        if (this._isConsumeData()) {\n          const matches = [];\n\n          while (matches.length < max) {\n            const found = this._findDataByNameToConsume(child.name, child[_xfa_object.$hasSettableValue](), dataNode, global);\n\n            if (!found) {\n              break;\n            }\n\n            found[_xfa_object.$consumed] = true;\n            matches.push(found);\n          }\n\n          match = matches.length > 0 ? matches : null;\n        } else {\n          match = dataNode[_xfa_object.$getRealChildrenByNameIt](child.name, false, this.emptyMerge).next().value;\n\n          if (!match) {\n            if (min === 0) {\n              uselessNodes.push(child);\n              continue;\n            }\n\n            const nsId = dataNode[_xfa_object.$namespaceId] === NS_DATASETS ? -1 : dataNode[_xfa_object.$namespaceId];\n            match = child[_xfa_object.$data] = new _xfa_object.XmlObject(nsId, child.name);\n\n            if (this.emptyMerge) {\n              match[_xfa_object.$consumed] = true;\n            }\n\n            dataNode[_xfa_object.$appendChild](match);\n\n            this._setAndBind(child, match);\n\n            continue;\n          }\n\n          if (this.emptyMerge) {\n            match[_xfa_object.$consumed] = true;\n          }\n\n          match = [match];\n        }\n      }\n\n      if (match) {\n        this._bindOccurrences(child, match, picture);\n      } else if (min > 0) {\n        this._setAndBind(child, dataNode);\n      } else {\n        uselessNodes.push(child);\n      }\n    }\n\n    uselessNodes.forEach(node => node[_xfa_object.$getParent]()[_xfa_object.$removeChild](node));\n  }\n\n}\n\nexports.Binder = Binder;\n\n/***/ }),\n/* 82 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Value = exports.Text = exports.TemplateNamespace = exports.Template = exports.SetProperty = exports.Items = exports.Field = exports.BindItems = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _layout = __w_pdfjs_require__(83);\n\nvar _html_utils = __w_pdfjs_require__(84);\n\nvar _utils = __w_pdfjs_require__(78);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _fonts = __w_pdfjs_require__(85);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _som = __w_pdfjs_require__(80);\n\nconst TEMPLATE_NS_ID = _namespaces.NamespaceIds.template.id;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2;\nconst MAX_EMPTY_PAGES = 3;\nconst DEFAULT_TAB_INDEX = 5000;\nconst HEADING_PATTERN = /^H(\\d+)$/;\nconst MIMES = new Set([\"image/gif\", \"image/jpeg\", \"image/jpg\", \"image/pjpeg\", \"image/png\", \"image/apng\", \"image/x-png\", \"image/bmp\", \"image/x-ms-bmp\", \"image/tiff\", \"image/tif\", \"application/octet-stream\"]);\nconst IMAGES_HEADERS = [[[0x42, 0x4d], \"image/bmp\"], [[0xff, 0xd8, 0xff], \"image/jpeg\"], [[0x49, 0x49, 0x2a, 0x00], \"image/tiff\"], [[0x4d, 0x4d, 0x00, 0x2a], \"image/tiff\"], [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], \"image/gif\"], [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], \"image/png\"]];\n\nfunction getBorderDims(node) {\n  if (!node || !node.border) {\n    return {\n      w: 0,\n      h: 0\n    };\n  }\n\n  const borderExtra = node.border[_xfa_object.$getExtra]();\n\n  if (!borderExtra) {\n    return {\n      w: 0,\n      h: 0\n    };\n  }\n\n  return {\n    w: borderExtra.widths[0] + borderExtra.widths[2] + borderExtra.insets[0] + borderExtra.insets[2],\n    h: borderExtra.widths[1] + borderExtra.widths[3] + borderExtra.insets[1] + borderExtra.insets[3]\n  };\n}\n\nfunction hasMargin(node) {\n  return node.margin && (node.margin.topInset || node.margin.rightInset || node.margin.bottomInset || node.margin.leftInset);\n}\n\nfunction _setValue(templateNode, value) {\n  if (!templateNode.value) {\n    const nodeValue = new Value({});\n\n    templateNode[_xfa_object.$appendChild](nodeValue);\n\n    templateNode.value = nodeValue;\n  }\n\n  templateNode.value[_xfa_object.$setValue](value);\n}\n\nfunction* getContainedChildren(node) {\n  for (const child of node[_xfa_object.$getChildren]()) {\n    if (child instanceof SubformSet) {\n      yield* child[_xfa_object.$getContainedChildren]();\n      continue;\n    }\n\n    yield child;\n  }\n}\n\nfunction isRequired(node) {\n  return node.validate && node.validate.nullTest === \"error\";\n}\n\nfunction setTabIndex(node) {\n  while (node) {\n    if (!node.traversal) {\n      node[_xfa_object.$tabIndex] = node[_xfa_object.$getParent]()[_xfa_object.$tabIndex];\n      return;\n    }\n\n    if (node[_xfa_object.$tabIndex]) {\n      return;\n    }\n\n    let next = null;\n\n    for (const child of node.traversal[_xfa_object.$getChildren]()) {\n      if (child.operation === \"next\") {\n        next = child;\n        break;\n      }\n    }\n\n    if (!next || !next.ref) {\n      node[_xfa_object.$tabIndex] = node[_xfa_object.$getParent]()[_xfa_object.$tabIndex];\n      return;\n    }\n\n    const root = node[_xfa_object.$getTemplateRoot]();\n\n    node[_xfa_object.$tabIndex] = ++root[_xfa_object.$tabIndex];\n\n    const ref = root[_xfa_object.$searchNode](next.ref, node);\n\n    if (!ref) {\n      return;\n    }\n\n    node = ref[0];\n  }\n}\n\nfunction applyAssist(obj, attributes) {\n  const assist = obj.assist;\n\n  if (assist) {\n    const assistTitle = assist[_xfa_object.$toHTML]();\n\n    if (assistTitle) {\n      attributes.title = assistTitle;\n    }\n\n    const role = assist.role;\n    const match = role.match(HEADING_PATTERN);\n\n    if (match) {\n      const ariaRole = \"heading\";\n      const ariaLevel = match[1];\n      attributes.role = ariaRole;\n      attributes[\"aria-level\"] = ariaLevel;\n    }\n  }\n\n  if (obj.layout === \"table\") {\n    attributes.role = \"table\";\n  } else if (obj.layout === \"row\") {\n    attributes.role = \"row\";\n  } else {\n    const parent = obj[_xfa_object.$getParent]();\n\n    if (parent.layout === \"row\") {\n      if (parent.assist && parent.assist.role === \"TH\") {\n        attributes.role = \"columnheader\";\n      } else {\n        attributes.role = \"cell\";\n      }\n    }\n  }\n}\n\nfunction ariaLabel(obj) {\n  if (!obj.assist) {\n    return null;\n  }\n\n  const assist = obj.assist;\n\n  if (assist.speak && assist.speak[_xfa_object.$content] !== \"\") {\n    return assist.speak[_xfa_object.$content];\n  }\n\n  if (assist.toolTip) {\n    return assist.toolTip[_xfa_object.$content];\n  }\n\n  return null;\n}\n\nfunction valueToHtml(value) {\n  return _utils.HTMLResult.success({\n    name: \"div\",\n    attributes: {\n      class: [\"xfaRich\"],\n      style: Object.create(null)\n    },\n    children: [{\n      name: \"span\",\n      attributes: {\n        style: Object.create(null)\n      },\n      value\n    }]\n  });\n}\n\nfunction setFirstUnsplittable(node) {\n  const root = node[_xfa_object.$getTemplateRoot]();\n\n  if (root[_xfa_object.$extra].firstUnsplittable === null) {\n    root[_xfa_object.$extra].firstUnsplittable = node;\n    root[_xfa_object.$extra].noLayoutFailure = true;\n  }\n}\n\nfunction unsetFirstUnsplittable(node) {\n  const root = node[_xfa_object.$getTemplateRoot]();\n\n  if (root[_xfa_object.$extra].firstUnsplittable === node) {\n    root[_xfa_object.$extra].noLayoutFailure = false;\n  }\n}\n\nfunction handleBreak(node) {\n  if (node[_xfa_object.$extra]) {\n    return false;\n  }\n\n  node[_xfa_object.$extra] = Object.create(null);\n\n  if (node.targetType === \"auto\") {\n    return false;\n  }\n\n  const root = node[_xfa_object.$getTemplateRoot]();\n\n  let target = null;\n\n  if (node.target) {\n    target = root[_xfa_object.$searchNode](node.target, node[_xfa_object.$getParent]());\n\n    if (!target) {\n      return false;\n    }\n\n    target = target[0];\n  }\n\n  const {\n    currentPageArea,\n    currentContentArea\n  } = root[_xfa_object.$extra];\n\n  if (node.targetType === \"pageArea\") {\n    if (!(target instanceof PageArea)) {\n      target = null;\n    }\n\n    if (node.startNew) {\n      node[_xfa_object.$extra].target = target || currentPageArea;\n      return true;\n    } else if (target && target !== currentPageArea) {\n      node[_xfa_object.$extra].target = target;\n      return true;\n    }\n\n    return false;\n  }\n\n  if (!(target instanceof ContentArea)) {\n    target = null;\n  }\n\n  const pageArea = target && target[_xfa_object.$getParent]();\n\n  let index;\n  let nextPageArea = pageArea;\n\n  if (node.startNew) {\n    if (target) {\n      const contentAreas = pageArea.contentArea.children;\n      const indexForCurrent = contentAreas.indexOf(currentContentArea);\n      const indexForTarget = contentAreas.indexOf(target);\n\n      if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) {\n        nextPageArea = null;\n      }\n\n      index = indexForTarget - 1;\n    } else {\n      index = currentPageArea.contentArea.children.indexOf(currentContentArea);\n    }\n  } else if (target && target !== currentContentArea) {\n    const contentAreas = pageArea.contentArea.children;\n    index = contentAreas.indexOf(target) - 1;\n    nextPageArea = pageArea === currentPageArea ? null : pageArea;\n  } else {\n    return false;\n  }\n\n  node[_xfa_object.$extra].target = nextPageArea;\n  node[_xfa_object.$extra].index = index;\n  return true;\n}\n\nfunction handleOverflow(node, extraNode, space) {\n  const root = node[_xfa_object.$getTemplateRoot]();\n\n  const saved = root[_xfa_object.$extra].noLayoutFailure;\n  const savedMethod = extraNode[_xfa_object.$getSubformParent];\n\n  extraNode[_xfa_object.$getSubformParent] = () => node;\n\n  root[_xfa_object.$extra].noLayoutFailure = true;\n\n  const res = extraNode[_xfa_object.$toHTML](space);\n\n  node[_xfa_object.$addHTML](res.html, res.bbox);\n\n  root[_xfa_object.$extra].noLayoutFailure = saved;\n  extraNode[_xfa_object.$getSubformParent] = savedMethod;\n}\n\nclass AppearanceFilter extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"appearanceFilter\");\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Arc extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"arc\", true);\n    this.circular = (0, _utils.getInteger)({\n      data: attributes.circular,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.startAngle = (0, _utils.getFloat)({\n      data: attributes.startAngle,\n      defaultValue: 0,\n      validate: x => true\n    });\n    this.sweepAngle = (0, _utils.getFloat)({\n      data: attributes.sweepAngle,\n      defaultValue: 360,\n      validate: x => true\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.edge = null;\n    this.fill = null;\n  }\n\n  [_xfa_object.$toHTML]() {\n    const edge = this.edge || new Edge({});\n\n    const edgeStyle = edge[_xfa_object.$toStyle]();\n\n    const style = Object.create(null);\n\n    if (this.fill && this.fill.presence === \"visible\") {\n      Object.assign(style, this.fill[_xfa_object.$toStyle]());\n    } else {\n      style.fill = \"transparent\";\n    }\n\n    style.strokeWidth = (0, _html_utils.measureToString)(edge.presence === \"visible\" ? edge.thickness : 0);\n    style.stroke = edgeStyle.color;\n    let arc;\n    const attributes = {\n      xmlns: SVG_NS,\n      style: {\n        width: \"100%\",\n        height: \"100%\",\n        overflow: \"visible\"\n      }\n    };\n\n    if (this.sweepAngle === 360) {\n      arc = {\n        name: \"ellipse\",\n        attributes: {\n          xmlns: SVG_NS,\n          cx: \"50%\",\n          cy: \"50%\",\n          rx: \"50%\",\n          ry: \"50%\",\n          style\n        }\n      };\n    } else {\n      const startAngle = this.startAngle * Math.PI / 180;\n      const sweepAngle = this.sweepAngle * Math.PI / 180;\n      const largeArc = this.sweepAngle > 180 ? 1 : 0;\n      const [x1, y1, x2, y2] = [50 * (1 + Math.cos(startAngle)), 50 * (1 - Math.sin(startAngle)), 50 * (1 + Math.cos(startAngle + sweepAngle)), 50 * (1 - Math.sin(startAngle + sweepAngle))];\n      arc = {\n        name: \"path\",\n        attributes: {\n          xmlns: SVG_NS,\n          d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,\n          vectorEffect: \"non-scaling-stroke\",\n          style\n        }\n      };\n      Object.assign(attributes, {\n        viewBox: \"0 0 100 100\",\n        preserveAspectRatio: \"none\"\n      });\n    }\n\n    const svg = {\n      name: \"svg\",\n      children: [arc],\n      attributes\n    };\n\n    const parent = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    if (hasMargin(parent)) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\"\n          }\n        },\n        children: [svg]\n      });\n    }\n\n    svg.attributes.style.position = \"absolute\";\n    return _utils.HTMLResult.success(svg);\n  }\n\n}\n\nclass Area extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"area\", true);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.desc = null;\n    this.extras = null;\n    this.area = new _xfa_object.XFAObjectArray();\n    this.draw = new _xfa_object.XFAObjectArray();\n    this.exObject = new _xfa_object.XFAObjectArray();\n    this.exclGroup = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n    this.subformSet = new _xfa_object.XFAObjectArray();\n  }\n\n  *[_xfa_object.$getContainedChildren]() {\n    yield* getContainedChildren(this);\n  }\n\n  [_xfa_object.$isTransparent]() {\n    return true;\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n  [_xfa_object.$addHTML](html, bbox) {\n    const [x, y, w, h] = bbox;\n    this[_xfa_object.$extra].width = Math.max(this[_xfa_object.$extra].width, x + w);\n    this[_xfa_object.$extra].height = Math.max(this[_xfa_object.$extra].height, y + h);\n\n    this[_xfa_object.$extra].children.push(html);\n  }\n\n  [_xfa_object.$getAvailableSpace]() {\n    return this[_xfa_object.$extra].availableSpace;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"position\");\n    const attributes = {\n      style,\n      id: this[_xfa_object.$uid],\n      class: [\"xfaArea\"]\n    };\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      attributes.class.push(\"xfaPrintOnly\");\n    }\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    const children = [];\n    this[_xfa_object.$extra] = {\n      children,\n      width: 0,\n      height: 0,\n      availableSpace\n    };\n\n    const result = this[_xfa_object.$childrenToHTML]({\n      filter: new Set([\"area\", \"draw\", \"field\", \"exclGroup\", \"subform\", \"subformSet\"]),\n      include: true\n    });\n\n    if (!result.success) {\n      if (result.isBreak()) {\n        return result;\n      }\n\n      delete this[_xfa_object.$extra];\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    style.width = (0, _html_utils.measureToString)(this[_xfa_object.$extra].width);\n    style.height = (0, _html_utils.measureToString)(this[_xfa_object.$extra].height);\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    const bbox = [this.x, this.y, this[_xfa_object.$extra].width, this[_xfa_object.$extra].height];\n    delete this[_xfa_object.$extra];\n    return _utils.HTMLResult.success(html, bbox);\n  }\n\n}\n\nclass Assist extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"assist\", true);\n    this.id = attributes.id || \"\";\n    this.role = attributes.role || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.speak = null;\n    this.toolTip = null;\n  }\n\n  [_xfa_object.$toHTML]() {\n    return this.toolTip && this.toolTip[_xfa_object.$content] ? this.toolTip[_xfa_object.$content] : null;\n  }\n\n}\n\nclass Barcode extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"barcode\", true);\n    this.charEncoding = (0, _utils.getKeyword)({\n      data: attributes.charEncoding ? attributes.charEncoding.toLowerCase() : \"\",\n      defaultValue: \"\",\n      validate: k => [\"utf-8\", \"big-five\", \"fontspecific\", \"gbk\", \"gb-18030\", \"gb-2312\", \"ksc-5601\", \"none\", \"shift-jis\", \"ucs-2\", \"utf-16\"].includes(k) || k.match(/iso-8859-\\d{2}/)\n    });\n    this.checksum = (0, _utils.getStringOption)(attributes.checksum, [\"none\", \"1mod10\", \"1mod10_1mod11\", \"2mod10\", \"auto\"]);\n    this.dataColumnCount = (0, _utils.getInteger)({\n      data: attributes.dataColumnCount,\n      defaultValue: -1,\n      validate: x => x >= 0\n    });\n    this.dataLength = (0, _utils.getInteger)({\n      data: attributes.dataLength,\n      defaultValue: -1,\n      validate: x => x >= 0\n    });\n    this.dataPrep = (0, _utils.getStringOption)(attributes.dataPrep, [\"none\", \"flateCompress\"]);\n    this.dataRowCount = (0, _utils.getInteger)({\n      data: attributes.dataRowCount,\n      defaultValue: -1,\n      validate: x => x >= 0\n    });\n    this.endChar = attributes.endChar || \"\";\n    this.errorCorrectionLevel = (0, _utils.getInteger)({\n      data: attributes.errorCorrectionLevel,\n      defaultValue: -1,\n      validate: x => x >= 0 && x <= 8\n    });\n    this.id = attributes.id || \"\";\n    this.moduleHeight = (0, _utils.getMeasurement)(attributes.moduleHeight, \"5mm\");\n    this.moduleWidth = (0, _utils.getMeasurement)(attributes.moduleWidth, \"0.25mm\");\n    this.printCheckDigit = (0, _utils.getInteger)({\n      data: attributes.printCheckDigit,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.rowColumnRatio = (0, _utils.getRatio)(attributes.rowColumnRatio);\n    this.startChar = attributes.startChar || \"\";\n    this.textLocation = (0, _utils.getStringOption)(attributes.textLocation, [\"below\", \"above\", \"aboveEmbedded\", \"belowEmbedded\", \"none\"]);\n    this.truncate = (0, _utils.getInteger)({\n      data: attributes.truncate,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.type = (0, _utils.getStringOption)(attributes.type ? attributes.type.toLowerCase() : \"\", [\"aztec\", \"codabar\", \"code2of5industrial\", \"code2of5interleaved\", \"code2of5matrix\", \"code2of5standard\", \"code3of9\", \"code3of9extended\", \"code11\", \"code49\", \"code93\", \"code128\", \"code128a\", \"code128b\", \"code128c\", \"code128sscc\", \"datamatrix\", \"ean8\", \"ean8add2\", \"ean8add5\", \"ean13\", \"ean13add2\", \"ean13add5\", \"ean13pwcd\", \"fim\", \"logmars\", \"maxicode\", \"msi\", \"pdf417\", \"pdf417macro\", \"plessey\", \"postauscust2\", \"postauscust3\", \"postausreplypaid\", \"postausstandard\", \"postukrm4scc\", \"postusdpbc\", \"postusimb\", \"postusstandard\", \"postus5zip\", \"qrcode\", \"rfid\", \"rss14\", \"rss14expanded\", \"rss14limited\", \"rss14stacked\", \"rss14stackedomni\", \"rss14truncated\", \"telepen\", \"ucc128\", \"ucc128random\", \"ucc128sscc\", \"upca\", \"upcaadd2\", \"upcaadd5\", \"upcapwcd\", \"upce\", \"upceadd2\", \"upceadd5\", \"upcean2\", \"upcean5\", \"upsmaxicode\"]);\n    this.upsMode = (0, _utils.getStringOption)(attributes.upsMode, [\"usCarrier\", \"internationalCarrier\", \"secureSymbol\", \"standardSymbol\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.wideNarrowRatio = (0, _utils.getRatio)(attributes.wideNarrowRatio);\n    this.encrypt = null;\n    this.extras = null;\n  }\n\n}\n\nclass Bind extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bind\", true);\n    this.match = (0, _utils.getStringOption)(attributes.match, [\"once\", \"dataRef\", \"global\", \"none\"]);\n    this.ref = attributes.ref || \"\";\n    this.picture = null;\n  }\n\n}\n\nclass BindItems extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bindItems\");\n    this.connection = attributes.connection || \"\";\n    this.labelRef = attributes.labelRef || \"\";\n    this.ref = attributes.ref || \"\";\n    this.valueRef = attributes.valueRef || \"\";\n  }\n\n}\n\nexports.BindItems = BindItems;\n\nclass Bookend extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"bookend\");\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass BooleanElement extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"boolean\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] === 1 ? \"1\" : \"0\");\n  }\n\n}\n\nclass Border extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"border\", true);\n    this.break = (0, _utils.getStringOption)(attributes.break, [\"close\", \"open\"]);\n    this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.corner = new _xfa_object.XFAObjectArray(4);\n    this.edge = new _xfa_object.XFAObjectArray(4);\n    this.extras = null;\n    this.fill = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$getExtra]() {\n    if (!this[_xfa_object.$extra]) {\n      const edges = this.edge.children.slice();\n\n      if (edges.length < 4) {\n        const defaultEdge = edges.at(-1) || new Edge({});\n\n        for (let i = edges.length; i < 4; i++) {\n          edges.push(defaultEdge);\n        }\n      }\n\n      const widths = edges.map(edge => edge.thickness);\n      const insets = [0, 0, 0, 0];\n\n      if (this.margin) {\n        insets[0] = this.margin.topInset;\n        insets[1] = this.margin.rightInset;\n        insets[2] = this.margin.bottomInset;\n        insets[3] = this.margin.leftInset;\n      }\n\n      this[_xfa_object.$extra] = {\n        widths,\n        insets,\n        edges\n      };\n    }\n\n    return this[_xfa_object.$extra];\n  }\n\n  [_xfa_object.$toStyle]() {\n    const {\n      edges\n    } = this[_xfa_object.$getExtra]();\n\n    const edgeStyles = edges.map(node => {\n      const style = node[_xfa_object.$toStyle]();\n\n      style.color = style.color || \"#000000\";\n      return style;\n    });\n    const style = Object.create(null);\n\n    if (this.margin) {\n      Object.assign(style, this.margin[_xfa_object.$toStyle]());\n    }\n\n    if (this.fill && this.fill.presence === \"visible\") {\n      Object.assign(style, this.fill[_xfa_object.$toStyle]());\n    }\n\n    if (this.corner.children.some(node => node.radius !== 0)) {\n      const cornerStyles = this.corner.children.map(node => node[_xfa_object.$toStyle]());\n\n      if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n        const last = cornerStyles.at(-1);\n\n        for (let i = cornerStyles.length; i < 4; i++) {\n          cornerStyles.push(last);\n        }\n      }\n\n      style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n    }\n\n    switch (this.presence) {\n      case \"invisible\":\n      case \"hidden\":\n        style.borderStyle = \"\";\n        break;\n\n      case \"inactive\":\n        style.borderStyle = \"none\";\n        break;\n\n      default:\n        style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n        break;\n    }\n\n    style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n    style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n    return style;\n  }\n\n}\n\nclass Break extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"break\", true);\n    this.after = (0, _utils.getStringOption)(attributes.after, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n    this.afterTarget = attributes.afterTarget || \"\";\n    this.before = (0, _utils.getStringOption)(attributes.before, [\"auto\", \"contentArea\", \"pageArea\", \"pageEven\", \"pageOdd\"]);\n    this.beforeTarget = attributes.beforeTarget || \"\";\n    this.bookendLeader = attributes.bookendLeader || \"\";\n    this.bookendTrailer = attributes.bookendTrailer || \"\";\n    this.id = attributes.id || \"\";\n    this.overflowLeader = attributes.overflowLeader || \"\";\n    this.overflowTarget = attributes.overflowTarget || \"\";\n    this.overflowTrailer = attributes.overflowTrailer || \"\";\n    this.startNew = (0, _utils.getInteger)({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n}\n\nclass BreakAfter extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"breakAfter\", true);\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.startNew = (0, _utils.getInteger)({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.target = attributes.target || \"\";\n    this.targetType = (0, _utils.getStringOption)(attributes.targetType, [\"auto\", \"contentArea\", \"pageArea\"]);\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.script = null;\n  }\n\n}\n\nclass BreakBefore extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"breakBefore\", true);\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.startNew = (0, _utils.getInteger)({\n      data: attributes.startNew,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.target = attributes.target || \"\";\n    this.targetType = (0, _utils.getStringOption)(attributes.targetType, [\"auto\", \"contentArea\", \"pageArea\"]);\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.script = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    this[_xfa_object.$extra] = {};\n    return _utils.HTMLResult.FAILURE;\n  }\n\n}\n\nclass Button extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"button\", true);\n    this.highlight = (0, _utils.getStringOption)(attributes.highlight, [\"inverted\", \"none\", \"outline\", \"push\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const parent = this[_xfa_object.$getParent]();\n\n    const grandpa = parent[_xfa_object.$getParent]();\n\n    const htmlButton = {\n      name: \"button\",\n      attributes: {\n        id: this[_xfa_object.$uid],\n        class: [\"xfaButton\"],\n        style: {}\n      },\n      children: []\n    };\n\n    for (const event of grandpa.event.children) {\n      if (event.activity !== \"click\" || !event.script) {\n        continue;\n      }\n\n      const jsURL = (0, _core_utils.recoverJsURL)(event.script[_xfa_object.$content]);\n\n      if (!jsURL) {\n        continue;\n      }\n\n      const href = (0, _html_utils.fixURL)(jsURL.url);\n\n      if (!href) {\n        continue;\n      }\n\n      htmlButton.children.push({\n        name: \"a\",\n        attributes: {\n          id: \"link\" + this[_xfa_object.$uid],\n          href,\n          newWindow: jsURL.newWindow,\n          class: [\"xfaLink\"],\n          style: {}\n        },\n        children: []\n      });\n    }\n\n    return _utils.HTMLResult.success(htmlButton);\n  }\n\n}\n\nclass Calculate extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"calculate\", true);\n    this.id = attributes.id || \"\";\n    this.override = (0, _utils.getStringOption)(attributes.override, [\"disabled\", \"error\", \"ignore\", \"warning\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.message = null;\n    this.script = null;\n  }\n\n}\n\nclass Caption extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"caption\", true);\n    this.id = attributes.id || \"\";\n    this.placement = (0, _utils.getStringOption)(attributes.placement, [\"left\", \"bottom\", \"inline\", \"right\", \"top\"]);\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.reserve = Math.ceil((0, _utils.getMeasurement)(attributes.reserve));\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.font = null;\n    this.margin = null;\n    this.para = null;\n    this.value = null;\n  }\n\n  [_xfa_object.$setValue](value) {\n    _setValue(this, value);\n  }\n\n  [_xfa_object.$getExtra](availableSpace) {\n    if (!this[_xfa_object.$extra]) {\n      let {\n        width,\n        height\n      } = availableSpace;\n\n      switch (this.placement) {\n        case \"left\":\n        case \"right\":\n        case \"inline\":\n          width = this.reserve <= 0 ? width : this.reserve;\n          break;\n\n        case \"top\":\n        case \"bottom\":\n          height = this.reserve <= 0 ? height : this.reserve;\n          break;\n      }\n\n      this[_xfa_object.$extra] = (0, _html_utils.layoutNode)(this, {\n        width,\n        height\n      });\n    }\n\n    return this[_xfa_object.$extra];\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    if (!this.value) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    this[_xfa_object.$pushPara]();\n\n    const value = this.value[_xfa_object.$toHTML](availableSpace).html;\n\n    if (!value) {\n      this[_xfa_object.$popPara]();\n\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    const savedReserve = this.reserve;\n\n    if (this.reserve <= 0) {\n      const {\n        w,\n        h\n      } = this[_xfa_object.$getExtra](availableSpace);\n\n      switch (this.placement) {\n        case \"left\":\n        case \"right\":\n        case \"inline\":\n          this.reserve = w;\n          break;\n\n        case \"top\":\n        case \"bottom\":\n          this.reserve = h;\n          break;\n      }\n    }\n\n    const children = [];\n\n    if (typeof value === \"string\") {\n      children.push({\n        name: \"#text\",\n        value\n      });\n    } else {\n      children.push(value);\n    }\n\n    const style = (0, _html_utils.toStyle)(this, \"font\", \"margin\", \"visibility\");\n\n    switch (this.placement) {\n      case \"left\":\n      case \"right\":\n        if (this.reserve > 0) {\n          style.width = (0, _html_utils.measureToString)(this.reserve);\n        }\n\n        break;\n\n      case \"top\":\n      case \"bottom\":\n        if (this.reserve > 0) {\n          style.height = (0, _html_utils.measureToString)(this.reserve);\n        }\n\n        break;\n    }\n\n    (0, _html_utils.setPara)(this, null, value);\n\n    this[_xfa_object.$popPara]();\n\n    this.reserve = savedReserve;\n    return _utils.HTMLResult.success({\n      name: \"div\",\n      attributes: {\n        style,\n        class: [\"xfaCaption\"]\n      },\n      children\n    });\n  }\n\n}\n\nclass Certificate extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"certificate\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Certificates extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"certificates\", true);\n    this.credentialServerPolicy = (0, _utils.getStringOption)(attributes.credentialServerPolicy, [\"optional\", \"required\"]);\n    this.id = attributes.id || \"\";\n    this.url = attributes.url || \"\";\n    this.urlPolicy = attributes.urlPolicy || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encryption = null;\n    this.issuers = null;\n    this.keyUsage = null;\n    this.oids = null;\n    this.signing = null;\n    this.subjectDNs = null;\n  }\n\n}\n\nclass CheckButton extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"checkButton\", true);\n    this.id = attributes.id || \"\";\n    this.mark = (0, _utils.getStringOption)(attributes.mark, [\"default\", \"check\", \"circle\", \"cross\", \"diamond\", \"square\", \"star\"]);\n    this.shape = (0, _utils.getStringOption)(attributes.shape, [\"square\", \"round\"]);\n    this.size = (0, _utils.getMeasurement)(attributes.size, \"10pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(\"margin\");\n    const size = (0, _html_utils.measureToString)(this.size);\n    style.width = style.height = size;\n    let type;\n    let className;\n    let groupId;\n\n    const field = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    const items = field.items.children.length && field.items.children[0][_xfa_object.$toHTML]().html || [];\n    const exportedValue = {\n      on: (items[0] !== undefined ? items[0] : \"on\").toString(),\n      off: (items[1] !== undefined ? items[1] : \"off\").toString()\n    };\n    const value = field.value && field.value[_xfa_object.$text]() || \"off\";\n    const checked = value === exportedValue.on || undefined;\n\n    const container = field[_xfa_object.$getSubformParent]();\n\n    const fieldId = field[_xfa_object.$uid];\n    let dataId;\n\n    if (container instanceof ExclGroup) {\n      groupId = container[_xfa_object.$uid];\n      type = \"radio\";\n      className = \"xfaRadio\";\n      dataId = container[_xfa_object.$data] && container[_xfa_object.$data][_xfa_object.$uid] || container[_xfa_object.$uid];\n    } else {\n      type = \"checkbox\";\n      className = \"xfaCheckbox\";\n      dataId = field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid];\n    }\n\n    const input = {\n      name: \"input\",\n      attributes: {\n        class: [className],\n        style,\n        fieldId,\n        dataId,\n        type,\n        checked,\n        xfaOn: exportedValue.on,\n        xfaOff: exportedValue.off,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false\n      }\n    };\n\n    if (groupId) {\n      input.attributes.name = groupId;\n    }\n\n    if (isRequired(field)) {\n      input.attributes[\"aria-required\"] = true;\n      input.attributes.required = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [input]\n    });\n  }\n\n}\n\nclass ChoiceList extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"choiceList\", true);\n    this.commitOn = (0, _utils.getStringOption)(attributes.commitOn, [\"select\", \"exit\"]);\n    this.id = attributes.id || \"\";\n    this.open = (0, _utils.getStringOption)(attributes.open, [\"userControl\", \"always\", \"multiSelect\", \"onEntry\"]);\n    this.textEntry = (0, _utils.getInteger)({\n      data: attributes.textEntry,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"border\", \"margin\");\n\n    const ui = this[_xfa_object.$getParent]();\n\n    const field = ui[_xfa_object.$getParent]();\n\n    const fontSize = field.font && field.font.size || 10;\n    const optionStyle = {\n      fontSize: `calc(${fontSize}px * var(--scale-factor))`\n    };\n    const children = [];\n\n    if (field.items.children.length > 0) {\n      const items = field.items;\n      let displayedIndex = 0;\n      let saveIndex = 0;\n\n      if (items.children.length === 2) {\n        displayedIndex = items.children[0].save;\n        saveIndex = 1 - displayedIndex;\n      }\n\n      const displayed = items.children[displayedIndex][_xfa_object.$toHTML]().html;\n\n      const values = items.children[saveIndex][_xfa_object.$toHTML]().html;\n\n      let selected = false;\n      const value = field.value && field.value[_xfa_object.$text]() || \"\";\n\n      for (let i = 0, ii = displayed.length; i < ii; i++) {\n        const option = {\n          name: \"option\",\n          attributes: {\n            value: values[i] || displayed[i],\n            style: optionStyle\n          },\n          value: displayed[i]\n        };\n\n        if (values[i] === value) {\n          option.attributes.selected = selected = true;\n        }\n\n        children.push(option);\n      }\n\n      if (!selected) {\n        children.splice(0, 0, {\n          name: \"option\",\n          attributes: {\n            hidden: true,\n            selected: true\n          },\n          value: \" \"\n        });\n      }\n    }\n\n    const selectAttributes = {\n      class: [\"xfaSelect\"],\n      fieldId: field[_xfa_object.$uid],\n      dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n      style,\n      \"aria-label\": ariaLabel(field),\n      \"aria-required\": false\n    };\n\n    if (isRequired(field)) {\n      selectAttributes[\"aria-required\"] = true;\n      selectAttributes.required = true;\n    }\n\n    if (this.open === \"multiSelect\") {\n      selectAttributes.multiple = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [{\n        name: \"select\",\n        children,\n        attributes: selectAttributes\n      }]\n    });\n  }\n\n}\n\nclass Color extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"color\", true);\n    this.cSpace = (0, _utils.getStringOption)(attributes.cSpace, [\"SRGB\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.value = attributes.value ? (0, _utils.getColor)(attributes.value) : \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$hasSettableValue]() {\n    return false;\n  }\n\n  [_xfa_object.$toStyle]() {\n    return this.value ? _util.Util.makeHexColor(this.value.r, this.value.g, this.value.b) : null;\n  }\n\n}\n\nclass Comb extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"comb\");\n    this.id = attributes.id || \"\";\n    this.numberOfCells = (0, _utils.getInteger)({\n      data: attributes.numberOfCells,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Connect extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"connect\", true);\n    this.connection = attributes.connection || \"\";\n    this.id = attributes.id || \"\";\n    this.ref = attributes.ref || \"\";\n    this.usage = (0, _utils.getStringOption)(attributes.usage, [\"exportAndImport\", \"exportOnly\", \"importOnly\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.picture = null;\n  }\n\n}\n\nclass ContentArea extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"contentArea\", true);\n    this.h = (0, _utils.getMeasurement)(attributes.h);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = (0, _utils.getMeasurement)(attributes.w);\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.desc = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const left = (0, _html_utils.measureToString)(this.x);\n    const top = (0, _html_utils.measureToString)(this.y);\n    const style = {\n      left,\n      top,\n      width: (0, _html_utils.measureToString)(this.w),\n      height: (0, _html_utils.measureToString)(this.h)\n    };\n    const classNames = [\"xfaContentarea\"];\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"div\",\n      children: [],\n      attributes: {\n        style,\n        class: classNames,\n        id: this[_xfa_object.$uid]\n      }\n    });\n  }\n\n}\n\nclass Corner extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"corner\", true);\n    this.id = attributes.id || \"\";\n    this.inverted = (0, _utils.getInteger)({\n      data: attributes.inverted,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.join = (0, _utils.getStringOption)(attributes.join, [\"square\", \"round\"]);\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.radius = (0, _utils.getMeasurement)(attributes.radius);\n    this.stroke = (0, _utils.getStringOption)(attributes.stroke, [\"solid\", \"dashDot\", \"dashDotDot\", \"dashed\", \"dotted\", \"embossed\", \"etched\", \"lowered\", \"raised\"]);\n    this.thickness = (0, _utils.getMeasurement)(attributes.thickness, \"0.5pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    const style = (0, _html_utils.toStyle)(this, \"visibility\");\n    style.radius = (0, _html_utils.measureToString)(this.join === \"square\" ? 0 : this.radius);\n    return style;\n  }\n\n}\n\nclass DateElement extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"date\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const date = this[_xfa_object.$content].trim();\n\n    this[_xfa_object.$content] = date ? new Date(date) : null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass DateTime extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"dateTime\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const date = this[_xfa_object.$content].trim();\n\n    this[_xfa_object.$content] = date ? new Date(date) : null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass DateTimeEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"dateTimeEdit\", true);\n    this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.picker = (0, _utils.getStringOption)(attributes.picker, [\"host\", \"none\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"border\", \"font\", \"margin\");\n\n    const field = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    const html = {\n      name: \"input\",\n      attributes: {\n        type: \"text\",\n        fieldId: field[_xfa_object.$uid],\n        dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n        class: [\"xfaTextfield\"],\n        style,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false\n      }\n    };\n\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [html]\n    });\n  }\n\n}\n\nclass Decimal extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"decimal\");\n    this.fracDigits = (0, _utils.getInteger)({\n      data: attributes.fracDigits,\n      defaultValue: 2,\n      validate: x => true\n    });\n    this.id = attributes.id || \"\";\n    this.leadDigits = (0, _utils.getInteger)({\n      data: attributes.leadDigits,\n      defaultValue: -1,\n      validate: x => true\n    });\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const number = parseFloat(this[_xfa_object.$content].trim());\n    this[_xfa_object.$content] = isNaN(number) ? null : number;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass DefaultUi extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"defaultUi\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n}\n\nclass Desc extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"desc\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass DigestMethod extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"digestMethod\", [\"\", \"SHA1\", \"SHA256\", \"SHA512\", \"RIPEMD160\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass DigestMethods extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"digestMethods\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.digestMethod = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Draw extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"draw\", true);\n    this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.locale = attributes.locale || \"\";\n    this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n    this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n    this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n    this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.rotate = (0, _utils.getInteger)({\n      data: attributes.rotate,\n      defaultValue: 0,\n      validate: x => x % 90 === 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.assist = null;\n    this.border = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.font = null;\n    this.keep = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.ui = null;\n    this.value = null;\n    this.setProperty = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$setValue](value) {\n    _setValue(this, value);\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    (0, _html_utils.fixDimensions)(this);\n\n    this[_xfa_object.$pushPara]();\n\n    const savedW = this.w;\n    const savedH = this.h;\n    const {\n      w,\n      h,\n      isBroken\n    } = (0, _html_utils.layoutNode)(this, availableSpace);\n\n    if (w && this.w === \"\") {\n      if (isBroken && this[_xfa_object.$getSubformParent]()[_xfa_object.$isThereMoreWidth]()) {\n        this[_xfa_object.$popPara]();\n\n        return _utils.HTMLResult.FAILURE;\n      }\n\n      this.w = w;\n    }\n\n    if (h && this.h === \"\") {\n      this.h = h;\n    }\n\n    setFirstUnsplittable(this);\n\n    if (!(0, _layout.checkDimensions)(this, availableSpace)) {\n      this.w = savedW;\n      this.h = savedH;\n\n      this[_xfa_object.$popPara]();\n\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    unsetFirstUnsplittable(this);\n    const style = (0, _html_utils.toStyle)(this, \"font\", \"hAlign\", \"dimensions\", \"position\", \"presence\", \"rotate\", \"anchorType\", \"border\", \"margin\");\n    (0, _html_utils.setMinMaxDimensions)(this, style);\n\n    if (style.margin) {\n      style.padding = style.margin;\n      delete style.margin;\n    }\n\n    const classNames = [\"xfaDraw\"];\n\n    if (this.font) {\n      classNames.push(\"xfaFont\");\n    }\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    const attributes = {\n      style,\n      id: this[_xfa_object.$uid],\n      class: classNames\n    };\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children: []\n    };\n    applyAssist(this, attributes);\n    const bbox = (0, _html_utils.computeBbox)(this, html, availableSpace);\n    const value = this.value ? this.value[_xfa_object.$toHTML](availableSpace).html : null;\n\n    if (value === null) {\n      this.w = savedW;\n      this.h = savedH;\n\n      this[_xfa_object.$popPara]();\n\n      return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n    }\n\n    html.children.push(value);\n    (0, _html_utils.setPara)(this, style, value);\n    this.w = savedW;\n    this.h = savedH;\n\n    this[_xfa_object.$popPara]();\n\n    return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n  }\n\n}\n\nclass Edge extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"edge\", true);\n    this.cap = (0, _utils.getStringOption)(attributes.cap, [\"square\", \"butt\", \"round\"]);\n    this.id = attributes.id || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.stroke = (0, _utils.getStringOption)(attributes.stroke, [\"solid\", \"dashDot\", \"dashDotDot\", \"dashed\", \"dotted\", \"embossed\", \"etched\", \"lowered\", \"raised\"]);\n    this.thickness = (0, _utils.getMeasurement)(attributes.thickness, \"0.5pt\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    const style = (0, _html_utils.toStyle)(this, \"visibility\");\n    Object.assign(style, {\n      linecap: this.cap,\n      width: (0, _html_utils.measureToString)(this.thickness),\n      color: this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\",\n      style: \"\"\n    });\n\n    if (this.presence !== \"visible\") {\n      style.style = \"none\";\n    } else {\n      switch (this.stroke) {\n        case \"solid\":\n          style.style = \"solid\";\n          break;\n\n        case \"dashDot\":\n          style.style = \"dashed\";\n          break;\n\n        case \"dashDotDot\":\n          style.style = \"dashed\";\n          break;\n\n        case \"dashed\":\n          style.style = \"dashed\";\n          break;\n\n        case \"dotted\":\n          style.style = \"dotted\";\n          break;\n\n        case \"embossed\":\n          style.style = \"ridge\";\n          break;\n\n        case \"etched\":\n          style.style = \"groove\";\n          break;\n\n        case \"lowered\":\n          style.style = \"inset\";\n          break;\n\n        case \"raised\":\n          style.style = \"outset\";\n          break;\n      }\n    }\n\n    return style;\n  }\n\n}\n\nclass Encoding extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encoding\", [\"adbe.x509.rsa_sha1\", \"adbe.pkcs7.detached\", \"adbe.pkcs7.sha1\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Encodings extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encodings\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encoding = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Encrypt extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encrypt\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = null;\n  }\n\n}\n\nclass EncryptData extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptData\", true);\n    this.id = attributes.id || \"\";\n    this.operation = (0, _utils.getStringOption)(attributes.operation, [\"encrypt\", \"decrypt\"]);\n    this.target = attributes.target || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.filter = null;\n    this.manifest = null;\n  }\n\n}\n\nclass Encryption extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryption\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass EncryptionMethod extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptionMethod\", [\"\", \"AES256-CBC\", \"TRIPLEDES-CBC\", \"AES128-CBC\", \"AES192-CBC\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass EncryptionMethods extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"encryptionMethods\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.encryptionMethod = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Event extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"event\", true);\n    this.activity = (0, _utils.getStringOption)(attributes.activity, [\"click\", \"change\", \"docClose\", \"docReady\", \"enter\", \"exit\", \"full\", \"indexChange\", \"initialize\", \"mouseDown\", \"mouseEnter\", \"mouseExit\", \"mouseUp\", \"postExecute\", \"postOpen\", \"postPrint\", \"postSave\", \"postSign\", \"postSubmit\", \"preExecute\", \"preOpen\", \"prePrint\", \"preSave\", \"preSign\", \"preSubmit\", \"ready\", \"validationState\"]);\n    this.id = attributes.id || \"\";\n    this.listen = (0, _utils.getStringOption)(attributes.listen, [\"refOnly\", \"refAndDescendents\"]);\n    this.name = attributes.name || \"\";\n    this.ref = attributes.ref || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.encryptData = null;\n    this.execute = null;\n    this.script = null;\n    this.signData = null;\n    this.submit = null;\n  }\n\n}\n\nclass ExData extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exData\");\n    this.contentType = attributes.contentType || \"\";\n    this.href = attributes.href || \"\";\n    this.id = attributes.id || \"\";\n    this.maxLength = (0, _utils.getInteger)({\n      data: attributes.maxLength,\n      defaultValue: -1,\n      validate: x => x >= -1\n    });\n    this.name = attributes.name || \"\";\n    this.rid = attributes.rid || \"\";\n    this.transferEncoding = (0, _utils.getStringOption)(attributes.transferEncoding, [\"none\", \"base64\", \"package\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$isCDATAXml]() {\n    return this.contentType === \"text/html\";\n  }\n\n  [_xfa_object.$onChild](child) {\n    if (this.contentType === \"text/html\" && child[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.xhtml.id) {\n      this[_xfa_object.$content] = child;\n      return true;\n    }\n\n    if (this.contentType === \"text/xml\") {\n      this[_xfa_object.$content] = child;\n      return true;\n    }\n\n    return false;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    if (this.contentType !== \"text/html\" || !this[_xfa_object.$content]) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    return this[_xfa_object.$content][_xfa_object.$toHTML](availableSpace);\n  }\n\n}\n\nclass ExObject extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exObject\", true);\n    this.archive = attributes.archive || \"\";\n    this.classId = attributes.classId || \"\";\n    this.codeBase = attributes.codeBase || \"\";\n    this.codeType = attributes.codeType || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.exObject = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass ExclGroup extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"exclGroup\", true);\n    this.access = (0, _utils.getStringOption)(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n    this.accessKey = attributes.accessKey || \"\";\n    this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.layout = (0, _utils.getStringOption)(attributes.layout, [\"position\", \"lr-tb\", \"rl-row\", \"rl-tb\", \"row\", \"table\", \"tb\"]);\n    this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n    this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n    this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n    this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.border = null;\n    this.calculate = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.validate = null;\n    this.connect = new _xfa_object.XFAObjectArray();\n    this.event = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.setProperty = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n  [_xfa_object.$hasSettableValue]() {\n    return true;\n  }\n\n  [_xfa_object.$setValue](value) {\n    for (const field of this.field.children) {\n      if (!field.value) {\n        const nodeValue = new Value({});\n\n        field[_xfa_object.$appendChild](nodeValue);\n\n        field.value = nodeValue;\n      }\n\n      field.value[_xfa_object.$setValue](value);\n    }\n  }\n\n  [_xfa_object.$isThereMoreWidth]() {\n    return this.layout.endsWith(\"-tb\") && this[_xfa_object.$extra].attempt === 0 && this[_xfa_object.$extra].numberInLine > 0 || this[_xfa_object.$getParent]()[_xfa_object.$isThereMoreWidth]();\n  }\n\n  [_xfa_object.$isSplittable]() {\n    const parent = this[_xfa_object.$getSubformParent]();\n\n    if (!parent[_xfa_object.$isSplittable]()) {\n      return false;\n    }\n\n    if (this[_xfa_object.$extra]._isSplittable !== undefined) {\n      return this[_xfa_object.$extra]._isSplittable;\n    }\n\n    if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n      this[_xfa_object.$extra]._isSplittable = false;\n      return false;\n    }\n\n    if (parent.layout && parent.layout.endsWith(\"-tb\") && parent[_xfa_object.$extra].numberInLine !== 0) {\n      return false;\n    }\n\n    this[_xfa_object.$extra]._isSplittable = true;\n    return true;\n  }\n\n  [_xfa_object.$flushHTML]() {\n    return (0, _layout.flushHTML)(this);\n  }\n\n  [_xfa_object.$addHTML](html, bbox) {\n    (0, _layout.addHTML)(this, html, bbox);\n  }\n\n  [_xfa_object.$getAvailableSpace]() {\n    return (0, _layout.getAvailableSpace)(this);\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (this.presence === \"hidden\" || this.presence === \"inactive\" || this.h === 0 || this.w === 0) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    (0, _html_utils.fixDimensions)(this);\n    const children = [];\n    const attributes = {\n      id: this[_xfa_object.$uid],\n      class: []\n    };\n    (0, _html_utils.setAccess)(this, attributes.class);\n\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = Object.create(null);\n    }\n\n    Object.assign(this[_xfa_object.$extra], {\n      children,\n      attributes,\n      attempt: 0,\n      line: null,\n      numberInLine: 0,\n      availableSpace: {\n        width: Math.min(this.w || Infinity, availableSpace.width),\n        height: Math.min(this.h || Infinity, availableSpace.height)\n      },\n      width: 0,\n      height: 0,\n      prevHeight: 0,\n      currentWidth: 0\n    });\n\n    const isSplittable = this[_xfa_object.$isSplittable]();\n\n    if (!isSplittable) {\n      setFirstUnsplittable(this);\n    }\n\n    if (!(0, _layout.checkDimensions)(this, availableSpace)) {\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    const filter = new Set([\"field\"]);\n\n    if (this.layout.includes(\"row\")) {\n      const columnWidths = this[_xfa_object.$getSubformParent]().columnWidths;\n\n      if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n        this[_xfa_object.$extra].columnWidths = columnWidths;\n        this[_xfa_object.$extra].currentColumn = 0;\n      }\n    }\n\n    const style = (0, _html_utils.toStyle)(this, \"anchorType\", \"dimensions\", \"position\", \"presence\", \"border\", \"margin\", \"hAlign\");\n    const classNames = [\"xfaExclgroup\"];\n    const cl = (0, _html_utils.layoutClass)(this);\n\n    if (cl) {\n      classNames.push(cl);\n    }\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    attributes.style = style;\n    attributes.class = classNames;\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    this[_xfa_object.$pushPara]();\n\n    const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n    const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n\n    for (; this[_xfa_object.$extra].attempt < maxRun; this[_xfa_object.$extra].attempt++) {\n      if (isLrTb && this[_xfa_object.$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n        this[_xfa_object.$extra].numberInLine = 0;\n      }\n\n      const result = this[_xfa_object.$childrenToHTML]({\n        filter,\n        include: true\n      });\n\n      if (result.success) {\n        break;\n      }\n\n      if (result.isBreak()) {\n        this[_xfa_object.$popPara]();\n\n        return result;\n      }\n\n      if (isLrTb && this[_xfa_object.$extra].attempt === 0 && this[_xfa_object.$extra].numberInLine === 0 && !this[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        this[_xfa_object.$extra].attempt = maxRun;\n        break;\n      }\n    }\n\n    this[_xfa_object.$popPara]();\n\n    if (!isSplittable) {\n      unsetFirstUnsplittable(this);\n    }\n\n    if (this[_xfa_object.$extra].attempt === maxRun) {\n      if (!isSplittable) {\n        delete this[_xfa_object.$extra];\n      }\n\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    let marginH = 0;\n    let marginV = 0;\n\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n\n    const width = Math.max(this[_xfa_object.$extra].width + marginH, this.w || 0);\n    const height = Math.max(this[_xfa_object.$extra].height + marginV, this.h || 0);\n    const bbox = [this.x, this.y, width, height];\n\n    if (this.w === \"\") {\n      style.width = (0, _html_utils.measureToString)(width);\n    }\n\n    if (this.h === \"\") {\n      style.height = (0, _html_utils.measureToString)(height);\n    }\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    applyAssist(this, attributes);\n    delete this[_xfa_object.$extra];\n    return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n  }\n\n}\n\nclass Execute extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"execute\");\n    this.connection = attributes.connection || \"\";\n    this.executeType = (0, _utils.getStringOption)(attributes.executeType, [\"import\", \"remerge\"]);\n    this.id = attributes.id || \"\";\n    this.runAt = (0, _utils.getStringOption)(attributes.runAt, [\"client\", \"both\", \"server\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Extras extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"extras\", true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.extras = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Field extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"field\", true);\n    this.access = (0, _utils.getStringOption)(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n    this.accessKey = attributes.accessKey || \"\";\n    this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.locale = attributes.locale || \"\";\n    this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n    this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n    this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n    this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.rotate = (0, _utils.getInteger)({\n      data: attributes.rotate,\n      defaultValue: 0,\n      validate: x => x % 90 === 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.border = null;\n    this.calculate = null;\n    this.caption = null;\n    this.desc = null;\n    this.extras = null;\n    this.font = null;\n    this.format = null;\n    this.items = new _xfa_object.XFAObjectArray(2);\n    this.keep = null;\n    this.margin = null;\n    this.para = null;\n    this.traversal = null;\n    this.ui = null;\n    this.validate = null;\n    this.value = null;\n    this.bindItems = new _xfa_object.XFAObjectArray();\n    this.connect = new _xfa_object.XFAObjectArray();\n    this.event = new _xfa_object.XFAObjectArray();\n    this.setProperty = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n  [_xfa_object.$setValue](value) {\n    _setValue(this, value);\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (!this.ui) {\n      this.ui = new Ui({});\n      this.ui[_xfa_object.$globalData] = this[_xfa_object.$globalData];\n\n      this[_xfa_object.$appendChild](this.ui);\n\n      let node;\n\n      switch (this.items.children.length) {\n        case 0:\n          node = new TextEdit({});\n          this.ui.textEdit = node;\n          break;\n\n        case 1:\n          node = new CheckButton({});\n          this.ui.checkButton = node;\n          break;\n\n        case 2:\n          node = new ChoiceList({});\n          this.ui.choiceList = node;\n          break;\n      }\n\n      this.ui[_xfa_object.$appendChild](node);\n    }\n\n    if (!this.ui || this.presence === \"hidden\" || this.presence === \"inactive\" || this.h === 0 || this.w === 0) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    if (this.caption) {\n      delete this.caption[_xfa_object.$extra];\n    }\n\n    this[_xfa_object.$pushPara]();\n\n    const caption = this.caption ? this.caption[_xfa_object.$toHTML](availableSpace).html : null;\n    const savedW = this.w;\n    const savedH = this.h;\n    let marginH = 0;\n    let marginV = 0;\n\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n\n    let borderDims = null;\n\n    if (this.w === \"\" || this.h === \"\") {\n      let width = null;\n      let height = null;\n      let uiW = 0;\n      let uiH = 0;\n\n      if (this.ui.checkButton) {\n        uiW = uiH = this.ui.checkButton.size;\n      } else {\n        const {\n          w,\n          h\n        } = (0, _html_utils.layoutNode)(this, availableSpace);\n\n        if (w !== null) {\n          uiW = w;\n          uiH = h;\n        } else {\n          uiH = (0, _fonts.getMetrics)(this.font, true).lineNoGap;\n        }\n      }\n\n      borderDims = getBorderDims(this.ui[_xfa_object.$getExtra]());\n      uiW += borderDims.w;\n      uiH += borderDims.h;\n\n      if (this.caption) {\n        const {\n          w,\n          h,\n          isBroken\n        } = this.caption[_xfa_object.$getExtra](availableSpace);\n\n        if (isBroken && this[_xfa_object.$getSubformParent]()[_xfa_object.$isThereMoreWidth]()) {\n          this[_xfa_object.$popPara]();\n\n          return _utils.HTMLResult.FAILURE;\n        }\n\n        width = w;\n        height = h;\n\n        switch (this.caption.placement) {\n          case \"left\":\n          case \"right\":\n          case \"inline\":\n            width += uiW;\n            break;\n\n          case \"top\":\n          case \"bottom\":\n            height += uiH;\n            break;\n        }\n      } else {\n        width = uiW;\n        height = uiH;\n      }\n\n      if (width && this.w === \"\") {\n        width += marginH;\n        this.w = Math.min(this.maxW <= 0 ? Infinity : this.maxW, this.minW + 1 < width ? width : this.minW);\n      }\n\n      if (height && this.h === \"\") {\n        height += marginV;\n        this.h = Math.min(this.maxH <= 0 ? Infinity : this.maxH, this.minH + 1 < height ? height : this.minH);\n      }\n    }\n\n    this[_xfa_object.$popPara]();\n\n    (0, _html_utils.fixDimensions)(this);\n    setFirstUnsplittable(this);\n\n    if (!(0, _layout.checkDimensions)(this, availableSpace)) {\n      this.w = savedW;\n      this.h = savedH;\n\n      this[_xfa_object.$popPara]();\n\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    unsetFirstUnsplittable(this);\n    const style = (0, _html_utils.toStyle)(this, \"font\", \"dimensions\", \"position\", \"rotate\", \"anchorType\", \"presence\", \"margin\", \"hAlign\");\n    (0, _html_utils.setMinMaxDimensions)(this, style);\n    const classNames = [\"xfaField\"];\n\n    if (this.font) {\n      classNames.push(\"xfaFont\");\n    }\n\n    if ((0, _html_utils.isPrintOnly)(this)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    const attributes = {\n      style,\n      id: this[_xfa_object.$uid],\n      class: classNames\n    };\n\n    if (style.margin) {\n      style.padding = style.margin;\n      delete style.margin;\n    }\n\n    (0, _html_utils.setAccess)(this, classNames);\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    const children = [];\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    applyAssist(this, attributes);\n    const borderStyle = this.border ? this.border[_xfa_object.$toStyle]() : null;\n    const bbox = (0, _html_utils.computeBbox)(this, html, availableSpace);\n\n    const ui = this.ui[_xfa_object.$toHTML]().html;\n\n    if (!ui) {\n      Object.assign(style, borderStyle);\n      return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n    }\n\n    if (this[_xfa_object.$tabIndex]) {\n      if (ui.children && ui.children[0]) {\n        ui.children[0].attributes.tabindex = this[_xfa_object.$tabIndex];\n      } else {\n        ui.attributes.tabindex = this[_xfa_object.$tabIndex];\n      }\n    }\n\n    if (!ui.attributes.style) {\n      ui.attributes.style = Object.create(null);\n    }\n\n    let aElement = null;\n\n    if (this.ui.button) {\n      if (ui.children.length === 1) {\n        [aElement] = ui.children.splice(0, 1);\n      }\n\n      Object.assign(ui.attributes.style, borderStyle);\n    } else {\n      Object.assign(style, borderStyle);\n    }\n\n    children.push(ui);\n\n    if (this.value) {\n      if (this.ui.imageEdit) {\n        ui.children.push(this.value[_xfa_object.$toHTML]().html);\n      } else if (!this.ui.button) {\n        let value = \"\";\n\n        if (this.value.exData) {\n          value = this.value.exData[_xfa_object.$text]();\n        } else if (this.value.text) {\n          value = this.value.text[_xfa_object.$getExtra]();\n        } else {\n          const htmlValue = this.value[_xfa_object.$toHTML]().html;\n\n          if (htmlValue !== null) {\n            value = htmlValue.children[0].value;\n          }\n        }\n\n        if (this.ui.textEdit && this.value.text && this.value.text.maxChars) {\n          ui.children[0].attributes.maxLength = this.value.text.maxChars;\n        }\n\n        if (value) {\n          if (this.ui.numericEdit) {\n            value = parseFloat(value);\n            value = isNaN(value) ? \"\" : value.toString();\n          }\n\n          if (ui.children[0].name === \"textarea\") {\n            ui.children[0].attributes.textContent = value;\n          } else {\n            ui.children[0].attributes.value = value;\n          }\n        }\n      }\n    }\n\n    if (!this.ui.imageEdit && ui.children && ui.children[0] && this.h) {\n      borderDims = borderDims || getBorderDims(this.ui[_xfa_object.$getExtra]());\n      let captionHeight = 0;\n\n      if (this.caption && [\"top\", \"bottom\"].includes(this.caption.placement)) {\n        captionHeight = this.caption.reserve;\n\n        if (captionHeight <= 0) {\n          captionHeight = this.caption[_xfa_object.$getExtra](availableSpace).h;\n        }\n\n        const inputHeight = this.h - captionHeight - marginV - borderDims.h;\n        ui.children[0].attributes.style.height = (0, _html_utils.measureToString)(inputHeight);\n      } else {\n        ui.children[0].attributes.style.height = \"100%\";\n      }\n    }\n\n    if (aElement) {\n      ui.children.push(aElement);\n    }\n\n    if (!caption) {\n      if (ui.attributes.class) {\n        ui.attributes.class.push(\"xfaLeft\");\n      }\n\n      this.w = savedW;\n      this.h = savedH;\n      return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n    }\n\n    if (this.ui.button) {\n      if (style.padding) {\n        delete style.padding;\n      }\n\n      if (caption.name === \"div\") {\n        caption.name = \"span\";\n      }\n\n      ui.children.push(caption);\n      return _utils.HTMLResult.success(html, bbox);\n    } else if (this.ui.checkButton) {\n      caption.attributes.class[0] = \"xfaCaptionForCheckButton\";\n    }\n\n    if (!ui.attributes.class) {\n      ui.attributes.class = [];\n    }\n\n    ui.children.splice(0, 0, caption);\n\n    switch (this.caption.placement) {\n      case \"left\":\n        ui.attributes.class.push(\"xfaLeft\");\n        break;\n\n      case \"right\":\n        ui.attributes.class.push(\"xfaRight\");\n        break;\n\n      case \"top\":\n        ui.attributes.class.push(\"xfaTop\");\n        break;\n\n      case \"bottom\":\n        ui.attributes.class.push(\"xfaBottom\");\n        break;\n\n      case \"inline\":\n        ui.attributes.class.push(\"xfaLeft\");\n        break;\n    }\n\n    this.w = savedW;\n    this.h = savedH;\n    return _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n  }\n\n}\n\nexports.Field = Field;\n\nclass Fill extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"fill\", true);\n    this.id = attributes.id || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n    this.linear = null;\n    this.pattern = null;\n    this.radial = null;\n    this.solid = null;\n    this.stipple = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    const parent = this[_xfa_object.$getParent]();\n\n    const grandpa = parent[_xfa_object.$getParent]();\n\n    const ggrandpa = grandpa[_xfa_object.$getParent]();\n\n    const style = Object.create(null);\n    let propName = \"color\";\n    let altPropName = propName;\n\n    if (parent instanceof Border) {\n      propName = \"background-color\";\n      altPropName = \"background\";\n\n      if (ggrandpa instanceof Ui) {\n        style.backgroundColor = \"white\";\n      }\n    }\n\n    if (parent instanceof Rectangle || parent instanceof Arc) {\n      propName = altPropName = \"fill\";\n      style.fill = \"white\";\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (name === \"extras\" || name === \"color\") {\n        continue;\n      }\n\n      const obj = this[name];\n\n      if (!(obj instanceof _xfa_object.XFAObject)) {\n        continue;\n      }\n\n      const color = obj[_xfa_object.$toStyle](this.color);\n\n      if (color) {\n        style[color.startsWith(\"#\") ? propName : altPropName] = color;\n      }\n\n      return style;\n    }\n\n    if (this.color && this.color.value) {\n      const color = this.color[_xfa_object.$toStyle]();\n\n      style[color.startsWith(\"#\") ? propName : altPropName] = color;\n    }\n\n    return style;\n  }\n\n}\n\nclass Filter extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"filter\", true);\n    this.addRevocationInfo = (0, _utils.getStringOption)(attributes.addRevocationInfo, [\"\", \"required\", \"optional\", \"none\"]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.version = (0, _utils.getInteger)({\n      data: this.version,\n      defaultValue: 5,\n      validate: x => x >= 1 && x <= 5\n    });\n    this.appearanceFilter = null;\n    this.certificates = null;\n    this.digestMethods = null;\n    this.encodings = null;\n    this.encryptionMethods = null;\n    this.handler = null;\n    this.lockDocument = null;\n    this.mdp = null;\n    this.reasons = null;\n    this.timeStamp = null;\n  }\n\n}\n\nclass Float extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"float\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const number = parseFloat(this[_xfa_object.$content].trim());\n    this[_xfa_object.$content] = isNaN(number) ? null : number;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass Font extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"font\", true);\n    this.baselineShift = (0, _utils.getMeasurement)(attributes.baselineShift);\n    this.fontHorizontalScale = (0, _utils.getFloat)({\n      data: attributes.fontHorizontalScale,\n      defaultValue: 100,\n      validate: x => x >= 0\n    });\n    this.fontVerticalScale = (0, _utils.getFloat)({\n      data: attributes.fontVerticalScale,\n      defaultValue: 100,\n      validate: x => x >= 0\n    });\n    this.id = attributes.id || \"\";\n    this.kerningMode = (0, _utils.getStringOption)(attributes.kerningMode, [\"none\", \"pair\"]);\n    this.letterSpacing = (0, _utils.getMeasurement)(attributes.letterSpacing, \"0\");\n    this.lineThrough = (0, _utils.getInteger)({\n      data: attributes.lineThrough,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2\n    });\n    this.lineThroughPeriod = (0, _utils.getStringOption)(attributes.lineThroughPeriod, [\"all\", \"word\"]);\n    this.overline = (0, _utils.getInteger)({\n      data: attributes.overline,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2\n    });\n    this.overlinePeriod = (0, _utils.getStringOption)(attributes.overlinePeriod, [\"all\", \"word\"]);\n    this.posture = (0, _utils.getStringOption)(attributes.posture, [\"normal\", \"italic\"]);\n    this.size = (0, _utils.getMeasurement)(attributes.size, \"10pt\");\n    this.typeface = attributes.typeface || \"Courier\";\n    this.underline = (0, _utils.getInteger)({\n      data: attributes.underline,\n      defaultValue: 0,\n      validate: x => x === 1 || x === 2\n    });\n    this.underlinePeriod = (0, _utils.getStringOption)(attributes.underlinePeriod, [\"all\", \"word\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.weight = (0, _utils.getStringOption)(attributes.weight, [\"normal\", \"bold\"]);\n    this.extras = null;\n    this.fill = null;\n  }\n\n  [_xfa_object.$clean](builder) {\n    super[_xfa_object.$clean](builder);\n\n    this[_xfa_object.$globalData].usedTypefaces.add(this.typeface);\n  }\n\n  [_xfa_object.$toStyle]() {\n    const style = (0, _html_utils.toStyle)(this, \"fill\");\n    const color = style.color;\n\n    if (color) {\n      if (color === \"#000000\") {\n        delete style.color;\n      } else if (!color.startsWith(\"#\")) {\n        style.background = color;\n        style.backgroundClip = \"text\";\n        style.color = \"transparent\";\n      }\n    }\n\n    if (this.baselineShift) {\n      style.verticalAlign = (0, _html_utils.measureToString)(this.baselineShift);\n    }\n\n    style.fontKerning = this.kerningMode === \"none\" ? \"none\" : \"normal\";\n    style.letterSpacing = (0, _html_utils.measureToString)(this.letterSpacing);\n\n    if (this.lineThrough !== 0) {\n      style.textDecoration = \"line-through\";\n\n      if (this.lineThrough === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n\n    if (this.overline !== 0) {\n      style.textDecoration = \"overline\";\n\n      if (this.overline === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n\n    style.fontStyle = this.posture;\n    style.fontSize = (0, _html_utils.measureToString)(0.99 * this.size);\n    (0, _html_utils.setFontFamily)(this, this, this[_xfa_object.$globalData].fontFinder, style);\n\n    if (this.underline !== 0) {\n      style.textDecoration = \"underline\";\n\n      if (this.underline === 2) {\n        style.textDecorationStyle = \"double\";\n      }\n    }\n\n    style.fontWeight = this.weight;\n    return style;\n  }\n\n}\n\nclass Format extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"format\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.picture = null;\n  }\n\n}\n\nclass Handler extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"handler\");\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Hyphenation extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"hyphenation\");\n    this.excludeAllCaps = (0, _utils.getInteger)({\n      data: attributes.excludeAllCaps,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.excludeInitialCap = (0, _utils.getInteger)({\n      data: attributes.excludeInitialCap,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.hyphenate = (0, _utils.getInteger)({\n      data: attributes.hyphenate,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.id = attributes.id || \"\";\n    this.pushCharacterCount = (0, _utils.getInteger)({\n      data: attributes.pushCharacterCount,\n      defaultValue: 3,\n      validate: x => x >= 0\n    });\n    this.remainCharacterCount = (0, _utils.getInteger)({\n      data: attributes.remainCharacterCount,\n      defaultValue: 3,\n      validate: x => x >= 0\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.wordCharacterCount = (0, _utils.getInteger)({\n      data: attributes.wordCharacterCount,\n      defaultValue: 7,\n      validate: x => x >= 0\n    });\n  }\n\n}\n\nclass Image extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"image\");\n    this.aspect = (0, _utils.getStringOption)(attributes.aspect, [\"fit\", \"actual\", \"height\", \"none\", \"width\"]);\n    this.contentType = attributes.contentType || \"\";\n    this.href = attributes.href || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.transferEncoding = (0, _utils.getStringOption)(attributes.transferEncoding, [\"base64\", \"none\", \"package\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$toHTML]() {\n    if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    let buffer = this[_xfa_object.$globalData].images && this[_xfa_object.$globalData].images.get(this.href);\n\n    if (!buffer && (this.href || !this[_xfa_object.$content])) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    if (!buffer && this.transferEncoding === \"base64\") {\n      buffer = (0, _util.stringToBytes)(atob(this[_xfa_object.$content]));\n    }\n\n    if (!buffer) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    if (!this.contentType) {\n      for (const [header, type] of IMAGES_HEADERS) {\n        if (buffer.length > header.length && header.every((x, i) => x === buffer[i])) {\n          this.contentType = type;\n          break;\n        }\n      }\n\n      if (!this.contentType) {\n        return _utils.HTMLResult.EMPTY;\n      }\n    }\n\n    const blob = new Blob([buffer], {\n      type: this.contentType\n    });\n    let style;\n\n    switch (this.aspect) {\n      case \"fit\":\n      case \"actual\":\n        break;\n\n      case \"height\":\n        style = {\n          height: \"100%\",\n          objectFit: \"fill\"\n        };\n        break;\n\n      case \"none\":\n        style = {\n          width: \"100%\",\n          height: \"100%\",\n          objectFit: \"fill\"\n        };\n        break;\n\n      case \"width\":\n        style = {\n          width: \"100%\",\n          objectFit: \"fill\"\n        };\n        break;\n    }\n\n    const parent = this[_xfa_object.$getParent]();\n\n    return _utils.HTMLResult.success({\n      name: \"img\",\n      attributes: {\n        class: [\"xfaImage\"],\n        style,\n        src: URL.createObjectURL(blob),\n        alt: parent ? ariaLabel(parent[_xfa_object.$getParent]()) : null\n      }\n    });\n  }\n\n}\n\nclass ImageEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"imageEdit\", true);\n    this.data = (0, _utils.getStringOption)(attributes.data, [\"link\", \"embed\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    if (this.data === \"embed\") {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        children: [],\n        attributes: {}\n      });\n    }\n\n    return _utils.HTMLResult.EMPTY;\n  }\n\n}\n\nclass Integer extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"integer\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const number = parseInt(this[_xfa_object.$content].trim(), 10);\n    this[_xfa_object.$content] = isNaN(number) ? null : number;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass Issuers extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"issuers\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Items extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"items\", true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.ref = attributes.ref || \"\";\n    this.save = (0, _utils.getInteger)({\n      data: attributes.save,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$toHTML]() {\n    const output = [];\n\n    for (const child of this[_xfa_object.$getChildren]()) {\n      output.push(child[_xfa_object.$text]());\n    }\n\n    return _utils.HTMLResult.success(output);\n  }\n\n}\n\nexports.Items = Items;\n\nclass Keep extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"keep\", true);\n    this.id = attributes.id || \"\";\n    const options = [\"none\", \"contentArea\", \"pageArea\"];\n    this.intact = (0, _utils.getStringOption)(attributes.intact, options);\n    this.next = (0, _utils.getStringOption)(attributes.next, options);\n    this.previous = (0, _utils.getStringOption)(attributes.previous, options);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n}\n\nclass KeyUsage extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"keyUsage\");\n    const options = [\"\", \"yes\", \"no\"];\n    this.crlSign = (0, _utils.getStringOption)(attributes.crlSign, options);\n    this.dataEncipherment = (0, _utils.getStringOption)(attributes.dataEncipherment, options);\n    this.decipherOnly = (0, _utils.getStringOption)(attributes.decipherOnly, options);\n    this.digitalSignature = (0, _utils.getStringOption)(attributes.digitalSignature, options);\n    this.encipherOnly = (0, _utils.getStringOption)(attributes.encipherOnly, options);\n    this.id = attributes.id || \"\";\n    this.keyAgreement = (0, _utils.getStringOption)(attributes.keyAgreement, options);\n    this.keyCertSign = (0, _utils.getStringOption)(attributes.keyCertSign, options);\n    this.keyEncipherment = (0, _utils.getStringOption)(attributes.keyEncipherment, options);\n    this.nonRepudiation = (0, _utils.getStringOption)(attributes.nonRepudiation, options);\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Line extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"line\", true);\n    this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.slope = (0, _utils.getStringOption)(attributes.slope, [\"\\\\\", \"/\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.edge = null;\n  }\n\n  [_xfa_object.$toHTML]() {\n    const parent = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    const edge = this.edge || new Edge({});\n\n    const edgeStyle = edge[_xfa_object.$toStyle]();\n\n    const style = Object.create(null);\n    const thickness = edge.presence === \"visible\" ? edge.thickness : 0;\n    style.strokeWidth = (0, _html_utils.measureToString)(thickness);\n    style.stroke = edgeStyle.color;\n    let x1, y1, x2, y2;\n    let width = \"100%\";\n    let height = \"100%\";\n\n    if (parent.w <= thickness) {\n      [x1, y1, x2, y2] = [\"50%\", 0, \"50%\", \"100%\"];\n      width = style.strokeWidth;\n    } else if (parent.h <= thickness) {\n      [x1, y1, x2, y2] = [0, \"50%\", \"100%\", \"50%\"];\n      height = style.strokeWidth;\n    } else {\n      if (this.slope === \"\\\\\") {\n        [x1, y1, x2, y2] = [0, 0, \"100%\", \"100%\"];\n      } else {\n        [x1, y1, x2, y2] = [0, \"100%\", \"100%\", 0];\n      }\n    }\n\n    const line = {\n      name: \"line\",\n      attributes: {\n        xmlns: SVG_NS,\n        x1,\n        y1,\n        x2,\n        y2,\n        style\n      }\n    };\n    const svg = {\n      name: \"svg\",\n      children: [line],\n      attributes: {\n        xmlns: SVG_NS,\n        width,\n        height,\n        style: {\n          overflow: \"visible\"\n        }\n      }\n    };\n\n    if (hasMargin(parent)) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\"\n          }\n        },\n        children: [svg]\n      });\n    }\n\n    svg.attributes.style.position = \"absolute\";\n    return _utils.HTMLResult.success(svg);\n  }\n\n}\n\nclass Linear extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"linear\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"toRight\", \"toBottom\", \"toLeft\", \"toTop\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](startColor) {\n    startColor = startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n    const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n    const endColor = this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\";\n    return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n  }\n\n}\n\nclass LockDocument extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"lockDocument\");\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = (0, _utils.getStringOption)(this[_xfa_object.$content], [\"auto\", \"0\", \"1\"]);\n  }\n\n}\n\nclass Manifest extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"manifest\", true);\n    this.action = (0, _utils.getStringOption)(attributes.action, [\"include\", \"all\", \"exclude\"]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.ref = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Margin extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"margin\", true);\n    this.bottomInset = (0, _utils.getMeasurement)(attributes.bottomInset, \"0\");\n    this.id = attributes.id || \"\";\n    this.leftInset = (0, _utils.getMeasurement)(attributes.leftInset, \"0\");\n    this.rightInset = (0, _utils.getMeasurement)(attributes.rightInset, \"0\");\n    this.topInset = (0, _utils.getMeasurement)(attributes.topInset, \"0\");\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    return {\n      margin: (0, _html_utils.measureToString)(this.topInset) + \" \" + (0, _html_utils.measureToString)(this.rightInset) + \" \" + (0, _html_utils.measureToString)(this.bottomInset) + \" \" + (0, _html_utils.measureToString)(this.leftInset)\n    };\n  }\n\n}\n\nclass Mdp extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"mdp\");\n    this.id = attributes.id || \"\";\n    this.permissions = (0, _utils.getInteger)({\n      data: attributes.permissions,\n      defaultValue: 2,\n      validate: x => x === 1 || x === 3\n    });\n    this.signatureType = (0, _utils.getStringOption)(attributes.signatureType, [\"filler\", \"author\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Medium extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"medium\");\n    this.id = attributes.id || \"\";\n    this.imagingBBox = (0, _utils.getBBox)(attributes.imagingBBox);\n    this.long = (0, _utils.getMeasurement)(attributes.long);\n    this.orientation = (0, _utils.getStringOption)(attributes.orientation, [\"portrait\", \"landscape\"]);\n    this.short = (0, _utils.getMeasurement)(attributes.short);\n    this.stock = attributes.stock || \"\";\n    this.trayIn = (0, _utils.getStringOption)(attributes.trayIn, [\"auto\", \"delegate\", \"pageFront\"]);\n    this.trayOut = (0, _utils.getStringOption)(attributes.trayOut, [\"auto\", \"delegate\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Message extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"message\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.text = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass NumericEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"numericEdit\", true);\n    this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"border\", \"font\", \"margin\");\n\n    const field = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    const html = {\n      name: \"input\",\n      attributes: {\n        type: \"text\",\n        fieldId: field[_xfa_object.$uid],\n        dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n        class: [\"xfaTextfield\"],\n        style,\n        \"aria-label\": ariaLabel(field),\n        \"aria-required\": false\n      }\n    };\n\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [html]\n    });\n  }\n\n}\n\nclass Occur extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"occur\", true);\n    this.id = attributes.id || \"\";\n    this.initial = attributes.initial !== \"\" ? (0, _utils.getInteger)({\n      data: attributes.initial,\n      defaultValue: \"\",\n      validate: x => true\n    }) : \"\";\n    this.max = attributes.max !== \"\" ? (0, _utils.getInteger)({\n      data: attributes.max,\n      defaultValue: 1,\n      validate: x => true\n    }) : \"\";\n    this.min = attributes.min !== \"\" ? (0, _utils.getInteger)({\n      data: attributes.min,\n      defaultValue: 1,\n      validate: x => true\n    }) : \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$clean]() {\n    const parent = this[_xfa_object.$getParent]();\n\n    const originalMin = this.min;\n\n    if (this.min === \"\") {\n      this.min = parent instanceof PageArea || parent instanceof PageSet ? 0 : 1;\n    }\n\n    if (this.max === \"\") {\n      if (originalMin === \"\") {\n        this.max = parent instanceof PageArea || parent instanceof PageSet ? -1 : 1;\n      } else {\n        this.max = this.min;\n      }\n    }\n\n    if (this.max !== -1 && this.max < this.min) {\n      this.max = this.min;\n    }\n\n    if (this.initial === \"\") {\n      this.initial = parent instanceof Template ? 1 : this.min;\n    }\n  }\n\n}\n\nclass Oid extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"oid\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Oids extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"oids\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.oid = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Overflow extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"overflow\");\n    this.id = attributes.id || \"\";\n    this.leader = attributes.leader || \"\";\n    this.target = attributes.target || \"\";\n    this.trailer = attributes.trailer || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$getExtra]() {\n    if (!this[_xfa_object.$extra]) {\n      const parent = this[_xfa_object.$getParent]();\n\n      const root = this[_xfa_object.$getTemplateRoot]();\n\n      const target = root[_xfa_object.$searchNode](this.target, parent);\n\n      const leader = root[_xfa_object.$searchNode](this.leader, parent);\n\n      const trailer = root[_xfa_object.$searchNode](this.trailer, parent);\n\n      this[_xfa_object.$extra] = {\n        target: target && target[0] || null,\n        leader: leader && leader[0] || null,\n        trailer: trailer && trailer[0] || null,\n        addLeader: false,\n        addTrailer: false\n      };\n    }\n\n    return this[_xfa_object.$extra];\n  }\n\n}\n\nclass PageArea extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pageArea\", true);\n    this.blankOrNotBlank = (0, _utils.getStringOption)(attributes.blankOrNotBlank, [\"any\", \"blank\", \"notBlank\"]);\n    this.id = attributes.id || \"\";\n    this.initialNumber = (0, _utils.getInteger)({\n      data: attributes.initialNumber,\n      defaultValue: 1,\n      validate: x => true\n    });\n    this.name = attributes.name || \"\";\n    this.numbered = (0, _utils.getInteger)({\n      data: attributes.numbered,\n      defaultValue: 1,\n      validate: x => true\n    });\n    this.oddOrEven = (0, _utils.getStringOption)(attributes.oddOrEven, [\"any\", \"even\", \"odd\"]);\n    this.pagePosition = (0, _utils.getStringOption)(attributes.pagePosition, [\"any\", \"first\", \"last\", \"only\", \"rest\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.desc = null;\n    this.extras = null;\n    this.medium = null;\n    this.occur = null;\n    this.area = new _xfa_object.XFAObjectArray();\n    this.contentArea = new _xfa_object.XFAObjectArray();\n    this.draw = new _xfa_object.XFAObjectArray();\n    this.exclGroup = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$isUsable]() {\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = {\n        numberOfUse: 0\n      };\n      return true;\n    }\n\n    return !this.occur || this.occur.max === -1 || this[_xfa_object.$extra].numberOfUse < this.occur.max;\n  }\n\n  [_xfa_object.$cleanPage]() {\n    delete this[_xfa_object.$extra];\n  }\n\n  [_xfa_object.$getNextPage]() {\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = {\n        numberOfUse: 0\n      };\n    }\n\n    const parent = this[_xfa_object.$getParent]();\n\n    if (parent.relation === \"orderedOccurrence\") {\n      if (this[_xfa_object.$isUsable]()) {\n        this[_xfa_object.$extra].numberOfUse += 1;\n        return this;\n      }\n    }\n\n    return parent[_xfa_object.$getNextPage]();\n  }\n\n  [_xfa_object.$getAvailableSpace]() {\n    return this[_xfa_object.$extra].space || {\n      width: 0,\n      height: 0\n    };\n  }\n\n  [_xfa_object.$toHTML]() {\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = {\n        numberOfUse: 1\n      };\n    }\n\n    const children = [];\n    this[_xfa_object.$extra].children = children;\n    const style = Object.create(null);\n\n    if (this.medium && this.medium.short && this.medium.long) {\n      style.width = (0, _html_utils.measureToString)(this.medium.short);\n      style.height = (0, _html_utils.measureToString)(this.medium.long);\n      this[_xfa_object.$extra].space = {\n        width: this.medium.short,\n        height: this.medium.long\n      };\n\n      if (this.medium.orientation === \"landscape\") {\n        const x = style.width;\n        style.width = style.height;\n        style.height = x;\n        this[_xfa_object.$extra].space = {\n          width: this.medium.long,\n          height: this.medium.short\n        };\n      }\n    } else {\n      (0, _util.warn)(\"XFA - No medium specified in pageArea: please file a bug.\");\n    }\n\n    this[_xfa_object.$childrenToHTML]({\n      filter: new Set([\"area\", \"draw\", \"field\", \"subform\"]),\n      include: true\n    });\n\n    this[_xfa_object.$childrenToHTML]({\n      filter: new Set([\"contentArea\"]),\n      include: true\n    });\n\n    return _utils.HTMLResult.success({\n      name: \"div\",\n      children,\n      attributes: {\n        class: [\"xfaPage\"],\n        id: this[_xfa_object.$uid],\n        style,\n        xfaName: this.name\n      }\n    });\n  }\n\n}\n\nclass PageSet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pageSet\", true);\n    this.duplexImposition = (0, _utils.getStringOption)(attributes.duplexImposition, [\"longEdge\", \"shortEdge\"]);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relation = (0, _utils.getStringOption)(attributes.relation, [\"orderedOccurrence\", \"duplexPaginated\", \"simplexPaginated\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.occur = null;\n    this.pageArea = new _xfa_object.XFAObjectArray();\n    this.pageSet = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$cleanPage]() {\n    for (const page of this.pageArea.children) {\n      page[_xfa_object.$cleanPage]();\n    }\n\n    for (const page of this.pageSet.children) {\n      page[_xfa_object.$cleanPage]();\n    }\n  }\n\n  [_xfa_object.$isUsable]() {\n    return !this.occur || this.occur.max === -1 || this[_xfa_object.$extra].numberOfUse < this.occur.max;\n  }\n\n  [_xfa_object.$getNextPage]() {\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = {\n        numberOfUse: 1,\n        pageIndex: -1,\n        pageSetIndex: -1\n      };\n    }\n\n    if (this.relation === \"orderedOccurrence\") {\n      if (this[_xfa_object.$extra].pageIndex + 1 < this.pageArea.children.length) {\n        this[_xfa_object.$extra].pageIndex += 1;\n        const pageArea = this.pageArea.children[this[_xfa_object.$extra].pageIndex];\n        return pageArea[_xfa_object.$getNextPage]();\n      }\n\n      if (this[_xfa_object.$extra].pageSetIndex + 1 < this.pageSet.children.length) {\n        this[_xfa_object.$extra].pageSetIndex += 1;\n        return this.pageSet.children[this[_xfa_object.$extra].pageSetIndex][_xfa_object.$getNextPage]();\n      }\n\n      if (this[_xfa_object.$isUsable]()) {\n        this[_xfa_object.$extra].numberOfUse += 1;\n        this[_xfa_object.$extra].pageIndex = -1;\n        this[_xfa_object.$extra].pageSetIndex = -1;\n        return this[_xfa_object.$getNextPage]();\n      }\n\n      const parent = this[_xfa_object.$getParent]();\n\n      if (parent instanceof PageSet) {\n        return parent[_xfa_object.$getNextPage]();\n      }\n\n      this[_xfa_object.$cleanPage]();\n\n      return this[_xfa_object.$getNextPage]();\n    }\n\n    const pageNumber = this[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].pageNumber;\n\n    const parity = pageNumber % 2 === 0 ? \"even\" : \"odd\";\n    const position = pageNumber === 0 ? \"first\" : \"rest\";\n    let page = this.pageArea.children.find(p => p.oddOrEven === parity && p.pagePosition === position);\n\n    if (page) {\n      return page;\n    }\n\n    page = this.pageArea.children.find(p => p.oddOrEven === \"any\" && p.pagePosition === position);\n\n    if (page) {\n      return page;\n    }\n\n    page = this.pageArea.children.find(p => p.oddOrEven === \"any\" && p.pagePosition === \"any\");\n\n    if (page) {\n      return page;\n    }\n\n    return this.pageArea.children[0];\n  }\n\n}\n\nclass Para extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"para\", true);\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.lineHeight = attributes.lineHeight ? (0, _utils.getMeasurement)(attributes.lineHeight, \"0pt\") : \"\";\n    this.marginLeft = attributes.marginLeft ? (0, _utils.getMeasurement)(attributes.marginLeft, \"0pt\") : \"\";\n    this.marginRight = attributes.marginRight ? (0, _utils.getMeasurement)(attributes.marginRight, \"0pt\") : \"\";\n    this.orphans = (0, _utils.getInteger)({\n      data: attributes.orphans,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.preserve = attributes.preserve || \"\";\n    this.radixOffset = attributes.radixOffset ? (0, _utils.getMeasurement)(attributes.radixOffset, \"0pt\") : \"\";\n    this.spaceAbove = attributes.spaceAbove ? (0, _utils.getMeasurement)(attributes.spaceAbove, \"0pt\") : \"\";\n    this.spaceBelow = attributes.spaceBelow ? (0, _utils.getMeasurement)(attributes.spaceBelow, \"0pt\") : \"\";\n    this.tabDefault = attributes.tabDefault ? (0, _utils.getMeasurement)(this.tabDefault) : \"\";\n    this.tabStops = (attributes.tabStops || \"\").trim().split(/\\s+/).map((x, i) => i % 2 === 1 ? (0, _utils.getMeasurement)(x) : x);\n    this.textIndent = attributes.textIndent ? (0, _utils.getMeasurement)(attributes.textIndent, \"0pt\") : \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.vAlign = (0, _utils.getStringOption)(attributes.vAlign, [\"top\", \"bottom\", \"middle\"]);\n    this.widows = (0, _utils.getInteger)({\n      data: attributes.widows,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.hyphenation = null;\n  }\n\n  [_xfa_object.$toStyle]() {\n    const style = (0, _html_utils.toStyle)(this, \"hAlign\");\n\n    if (this.marginLeft !== \"\") {\n      style.paddingLeft = (0, _html_utils.measureToString)(this.marginLeft);\n    }\n\n    if (this.marginRight !== \"\") {\n      style.paddingight = (0, _html_utils.measureToString)(this.marginRight);\n    }\n\n    if (this.spaceAbove !== \"\") {\n      style.paddingTop = (0, _html_utils.measureToString)(this.spaceAbove);\n    }\n\n    if (this.spaceBelow !== \"\") {\n      style.paddingBottom = (0, _html_utils.measureToString)(this.spaceBelow);\n    }\n\n    if (this.textIndent !== \"\") {\n      style.textIndent = (0, _html_utils.measureToString)(this.textIndent);\n      (0, _html_utils.fixTextIndent)(style);\n    }\n\n    if (this.lineHeight > 0) {\n      style.lineHeight = (0, _html_utils.measureToString)(this.lineHeight);\n    }\n\n    if (this.tabDefault !== \"\") {\n      style.tabSize = (0, _html_utils.measureToString)(this.tabDefault);\n    }\n\n    if (this.tabStops.length > 0) {}\n\n    if (this.hyphenatation) {\n      Object.assign(style, this.hyphenatation[_xfa_object.$toStyle]());\n    }\n\n    return style;\n  }\n\n}\n\nclass PasswordEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"passwordEdit\", true);\n    this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.passwordChar = attributes.passwordChar || \"*\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n}\n\nclass Pattern extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"pattern\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"crossHatch\", \"crossDiagonal\", \"diagonalLeft\", \"diagonalRight\", \"horizontal\", \"vertical\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](startColor) {\n    startColor = startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n    const endColor = this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\";\n    const width = 5;\n    const cmd = \"repeating-linear-gradient\";\n    const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${2 * width}px`;\n\n    switch (this.type) {\n      case \"crossHatch\":\n        return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n\n      case \"crossDiagonal\":\n        return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n\n      case \"diagonalLeft\":\n        return `${cmd}(45deg,${colors})`;\n\n      case \"diagonalRight\":\n        return `${cmd}(-45deg,${colors})`;\n\n      case \"horizontal\":\n        return `${cmd}(to top,${colors})`;\n\n      case \"vertical\":\n        return `${cmd}(to right,${colors})`;\n    }\n\n    return \"\";\n  }\n\n}\n\nclass Picture extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"picture\");\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Proto extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"proto\", true);\n    this.appearanceFilter = new _xfa_object.XFAObjectArray();\n    this.arc = new _xfa_object.XFAObjectArray();\n    this.area = new _xfa_object.XFAObjectArray();\n    this.assist = new _xfa_object.XFAObjectArray();\n    this.barcode = new _xfa_object.XFAObjectArray();\n    this.bindItems = new _xfa_object.XFAObjectArray();\n    this.bookend = new _xfa_object.XFAObjectArray();\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.border = new _xfa_object.XFAObjectArray();\n    this.break = new _xfa_object.XFAObjectArray();\n    this.breakAfter = new _xfa_object.XFAObjectArray();\n    this.breakBefore = new _xfa_object.XFAObjectArray();\n    this.button = new _xfa_object.XFAObjectArray();\n    this.calculate = new _xfa_object.XFAObjectArray();\n    this.caption = new _xfa_object.XFAObjectArray();\n    this.certificate = new _xfa_object.XFAObjectArray();\n    this.certificates = new _xfa_object.XFAObjectArray();\n    this.checkButton = new _xfa_object.XFAObjectArray();\n    this.choiceList = new _xfa_object.XFAObjectArray();\n    this.color = new _xfa_object.XFAObjectArray();\n    this.comb = new _xfa_object.XFAObjectArray();\n    this.connect = new _xfa_object.XFAObjectArray();\n    this.contentArea = new _xfa_object.XFAObjectArray();\n    this.corner = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.dateTimeEdit = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.defaultUi = new _xfa_object.XFAObjectArray();\n    this.desc = new _xfa_object.XFAObjectArray();\n    this.digestMethod = new _xfa_object.XFAObjectArray();\n    this.digestMethods = new _xfa_object.XFAObjectArray();\n    this.draw = new _xfa_object.XFAObjectArray();\n    this.edge = new _xfa_object.XFAObjectArray();\n    this.encoding = new _xfa_object.XFAObjectArray();\n    this.encodings = new _xfa_object.XFAObjectArray();\n    this.encrypt = new _xfa_object.XFAObjectArray();\n    this.encryptData = new _xfa_object.XFAObjectArray();\n    this.encryption = new _xfa_object.XFAObjectArray();\n    this.encryptionMethod = new _xfa_object.XFAObjectArray();\n    this.encryptionMethods = new _xfa_object.XFAObjectArray();\n    this.event = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.exObject = new _xfa_object.XFAObjectArray();\n    this.exclGroup = new _xfa_object.XFAObjectArray();\n    this.execute = new _xfa_object.XFAObjectArray();\n    this.extras = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.fill = new _xfa_object.XFAObjectArray();\n    this.filter = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.font = new _xfa_object.XFAObjectArray();\n    this.format = new _xfa_object.XFAObjectArray();\n    this.handler = new _xfa_object.XFAObjectArray();\n    this.hyphenation = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.imageEdit = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.issuers = new _xfa_object.XFAObjectArray();\n    this.items = new _xfa_object.XFAObjectArray();\n    this.keep = new _xfa_object.XFAObjectArray();\n    this.keyUsage = new _xfa_object.XFAObjectArray();\n    this.line = new _xfa_object.XFAObjectArray();\n    this.linear = new _xfa_object.XFAObjectArray();\n    this.lockDocument = new _xfa_object.XFAObjectArray();\n    this.manifest = new _xfa_object.XFAObjectArray();\n    this.margin = new _xfa_object.XFAObjectArray();\n    this.mdp = new _xfa_object.XFAObjectArray();\n    this.medium = new _xfa_object.XFAObjectArray();\n    this.message = new _xfa_object.XFAObjectArray();\n    this.numericEdit = new _xfa_object.XFAObjectArray();\n    this.occur = new _xfa_object.XFAObjectArray();\n    this.oid = new _xfa_object.XFAObjectArray();\n    this.oids = new _xfa_object.XFAObjectArray();\n    this.overflow = new _xfa_object.XFAObjectArray();\n    this.pageArea = new _xfa_object.XFAObjectArray();\n    this.pageSet = new _xfa_object.XFAObjectArray();\n    this.para = new _xfa_object.XFAObjectArray();\n    this.passwordEdit = new _xfa_object.XFAObjectArray();\n    this.pattern = new _xfa_object.XFAObjectArray();\n    this.picture = new _xfa_object.XFAObjectArray();\n    this.radial = new _xfa_object.XFAObjectArray();\n    this.reason = new _xfa_object.XFAObjectArray();\n    this.reasons = new _xfa_object.XFAObjectArray();\n    this.rectangle = new _xfa_object.XFAObjectArray();\n    this.ref = new _xfa_object.XFAObjectArray();\n    this.script = new _xfa_object.XFAObjectArray();\n    this.setProperty = new _xfa_object.XFAObjectArray();\n    this.signData = new _xfa_object.XFAObjectArray();\n    this.signature = new _xfa_object.XFAObjectArray();\n    this.signing = new _xfa_object.XFAObjectArray();\n    this.solid = new _xfa_object.XFAObjectArray();\n    this.speak = new _xfa_object.XFAObjectArray();\n    this.stipple = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n    this.subformSet = new _xfa_object.XFAObjectArray();\n    this.subjectDN = new _xfa_object.XFAObjectArray();\n    this.subjectDNs = new _xfa_object.XFAObjectArray();\n    this.submit = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.textEdit = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n    this.timeStamp = new _xfa_object.XFAObjectArray();\n    this.toolTip = new _xfa_object.XFAObjectArray();\n    this.traversal = new _xfa_object.XFAObjectArray();\n    this.traverse = new _xfa_object.XFAObjectArray();\n    this.ui = new _xfa_object.XFAObjectArray();\n    this.validate = new _xfa_object.XFAObjectArray();\n    this.value = new _xfa_object.XFAObjectArray();\n    this.variables = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Radial extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"radial\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"toEdge\", \"toCenter\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](startColor) {\n    startColor = startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n    const endColor = this.color ? this.color[_xfa_object.$toStyle]() : \"#000000\";\n    const colors = this.type === \"toEdge\" ? `${startColor},${endColor}` : `${endColor},${startColor}`;\n    return `radial-gradient(circle at center, ${colors})`;\n  }\n\n}\n\nclass Reason extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"reason\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Reasons extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"reasons\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.reason = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Rectangle extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"rectangle\", true);\n    this.hand = (0, _utils.getStringOption)(attributes.hand, [\"even\", \"left\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.corner = new _xfa_object.XFAObjectArray(4);\n    this.edge = new _xfa_object.XFAObjectArray(4);\n    this.fill = null;\n  }\n\n  [_xfa_object.$toHTML]() {\n    const edge = this.edge.children.length ? this.edge.children[0] : new Edge({});\n\n    const edgeStyle = edge[_xfa_object.$toStyle]();\n\n    const style = Object.create(null);\n\n    if (this.fill && this.fill.presence === \"visible\") {\n      Object.assign(style, this.fill[_xfa_object.$toStyle]());\n    } else {\n      style.fill = \"transparent\";\n    }\n\n    style.strokeWidth = (0, _html_utils.measureToString)(edge.presence === \"visible\" ? edge.thickness : 0);\n    style.stroke = edgeStyle.color;\n    const corner = this.corner.children.length ? this.corner.children[0] : new Corner({});\n\n    const cornerStyle = corner[_xfa_object.$toStyle]();\n\n    const rect = {\n      name: \"rect\",\n      attributes: {\n        xmlns: SVG_NS,\n        width: \"100%\",\n        height: \"100%\",\n        x: 0,\n        y: 0,\n        rx: cornerStyle.radius,\n        ry: cornerStyle.radius,\n        style\n      }\n    };\n    const svg = {\n      name: \"svg\",\n      children: [rect],\n      attributes: {\n        xmlns: SVG_NS,\n        style: {\n          overflow: \"visible\"\n        },\n        width: \"100%\",\n        height: \"100%\"\n      }\n    };\n\n    const parent = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    if (hasMargin(parent)) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          style: {\n            display: \"inline\",\n            width: \"100%\",\n            height: \"100%\"\n          }\n        },\n        children: [svg]\n      });\n    }\n\n    svg.attributes.style.position = \"absolute\";\n    return _utils.HTMLResult.success(svg);\n  }\n\n}\n\nclass RefElement extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"ref\");\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Script extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"script\");\n    this.binding = attributes.binding || \"\";\n    this.contentType = attributes.contentType || \"\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.runAt = (0, _utils.getStringOption)(attributes.runAt, [\"client\", \"both\", \"server\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass SetProperty extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"setProperty\");\n    this.connection = attributes.connection || \"\";\n    this.ref = attributes.ref || \"\";\n    this.target = attributes.target || \"\";\n  }\n\n}\n\nexports.SetProperty = SetProperty;\n\nclass SignData extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signData\", true);\n    this.id = attributes.id || \"\";\n    this.operation = (0, _utils.getStringOption)(attributes.operation, [\"sign\", \"clear\", \"verify\"]);\n    this.ref = attributes.ref || \"\";\n    this.target = attributes.target || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.filter = null;\n    this.manifest = null;\n  }\n\n}\n\nclass Signature extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signature\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.border = null;\n    this.extras = null;\n    this.filter = null;\n    this.manifest = null;\n    this.margin = null;\n  }\n\n}\n\nclass Signing extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"signing\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.certificate = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Solid extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"solid\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](startColor) {\n    return startColor ? startColor[_xfa_object.$toStyle]() : \"#FFFFFF\";\n  }\n\n}\n\nclass Speak extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"speak\");\n    this.disable = (0, _utils.getInteger)({\n      data: attributes.disable,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.id = attributes.id || \"\";\n    this.priority = (0, _utils.getStringOption)(attributes.priority, [\"custom\", \"caption\", \"name\", \"toolTip\"]);\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Stipple extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"stipple\", true);\n    this.id = attributes.id || \"\";\n    this.rate = (0, _utils.getInteger)({\n      data: attributes.rate,\n      defaultValue: 50,\n      validate: x => x >= 0 && x <= 100\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.color = null;\n    this.extras = null;\n  }\n\n  [_xfa_object.$toStyle](bgColor) {\n    const alpha = this.rate / 100;\n    return _util.Util.makeHexColor(Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha), Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha), Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha));\n  }\n\n}\n\nclass Subform extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subform\", true);\n    this.access = (0, _utils.getStringOption)(attributes.access, [\"open\", \"nonInteractive\", \"protected\", \"readOnly\"]);\n    this.allowMacro = (0, _utils.getInteger)({\n      data: attributes.allowMacro,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.anchorType = (0, _utils.getStringOption)(attributes.anchorType, [\"topLeft\", \"bottomCenter\", \"bottomLeft\", \"bottomRight\", \"middleCenter\", \"middleLeft\", \"middleRight\", \"topCenter\", \"topRight\"]);\n    this.colSpan = (0, _utils.getInteger)({\n      data: attributes.colSpan,\n      defaultValue: 1,\n      validate: n => n >= 1 || n === -1\n    });\n    this.columnWidths = (attributes.columnWidths || \"\").trim().split(/\\s+/).map(x => x === \"-1\" ? -1 : (0, _utils.getMeasurement)(x));\n    this.h = attributes.h ? (0, _utils.getMeasurement)(attributes.h) : \"\";\n    this.hAlign = (0, _utils.getStringOption)(attributes.hAlign, [\"left\", \"center\", \"justify\", \"justifyAll\", \"radix\", \"right\"]);\n    this.id = attributes.id || \"\";\n    this.layout = (0, _utils.getStringOption)(attributes.layout, [\"position\", \"lr-tb\", \"rl-row\", \"rl-tb\", \"row\", \"table\", \"tb\"]);\n    this.locale = attributes.locale || \"\";\n    this.maxH = (0, _utils.getMeasurement)(attributes.maxH, \"0pt\");\n    this.maxW = (0, _utils.getMeasurement)(attributes.maxW, \"0pt\");\n    this.mergeMode = (0, _utils.getStringOption)(attributes.mergeMode, [\"consumeData\", \"matchTemplate\"]);\n    this.minH = (0, _utils.getMeasurement)(attributes.minH, \"0pt\");\n    this.minW = (0, _utils.getMeasurement)(attributes.minW, \"0pt\");\n    this.name = attributes.name || \"\";\n    this.presence = (0, _utils.getStringOption)(attributes.presence, [\"visible\", \"hidden\", \"inactive\", \"invisible\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.restoreState = (0, _utils.getStringOption)(attributes.restoreState, [\"manual\", \"auto\"]);\n    this.scope = (0, _utils.getStringOption)(attributes.scope, [\"name\", \"none\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.w = attributes.w ? (0, _utils.getMeasurement)(attributes.w) : \"\";\n    this.x = (0, _utils.getMeasurement)(attributes.x, \"0pt\");\n    this.y = (0, _utils.getMeasurement)(attributes.y, \"0pt\");\n    this.assist = null;\n    this.bind = null;\n    this.bookend = null;\n    this.border = null;\n    this.break = null;\n    this.calculate = null;\n    this.desc = null;\n    this.extras = null;\n    this.keep = null;\n    this.margin = null;\n    this.occur = null;\n    this.overflow = null;\n    this.pageSet = null;\n    this.para = null;\n    this.traversal = null;\n    this.validate = null;\n    this.variables = null;\n    this.area = new _xfa_object.XFAObjectArray();\n    this.breakAfter = new _xfa_object.XFAObjectArray();\n    this.breakBefore = new _xfa_object.XFAObjectArray();\n    this.connect = new _xfa_object.XFAObjectArray();\n    this.draw = new _xfa_object.XFAObjectArray();\n    this.event = new _xfa_object.XFAObjectArray();\n    this.exObject = new _xfa_object.XFAObjectArray();\n    this.exclGroup = new _xfa_object.XFAObjectArray();\n    this.field = new _xfa_object.XFAObjectArray();\n    this.proto = new _xfa_object.XFAObjectArray();\n    this.setProperty = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n    this.subformSet = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$getSubformParent]() {\n    const parent = this[_xfa_object.$getParent]();\n\n    if (parent instanceof SubformSet) {\n      return parent[_xfa_object.$getSubformParent]();\n    }\n\n    return parent;\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n  [_xfa_object.$isThereMoreWidth]() {\n    return this.layout.endsWith(\"-tb\") && this[_xfa_object.$extra].attempt === 0 && this[_xfa_object.$extra].numberInLine > 0 || this[_xfa_object.$getParent]()[_xfa_object.$isThereMoreWidth]();\n  }\n\n  *[_xfa_object.$getContainedChildren]() {\n    yield* getContainedChildren(this);\n  }\n\n  [_xfa_object.$flushHTML]() {\n    return (0, _layout.flushHTML)(this);\n  }\n\n  [_xfa_object.$addHTML](html, bbox) {\n    (0, _layout.addHTML)(this, html, bbox);\n  }\n\n  [_xfa_object.$getAvailableSpace]() {\n    return (0, _layout.getAvailableSpace)(this);\n  }\n\n  [_xfa_object.$isSplittable]() {\n    const parent = this[_xfa_object.$getSubformParent]();\n\n    if (!parent[_xfa_object.$isSplittable]()) {\n      return false;\n    }\n\n    if (this[_xfa_object.$extra]._isSplittable !== undefined) {\n      return this[_xfa_object.$extra]._isSplittable;\n    }\n\n    if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n      this[_xfa_object.$extra]._isSplittable = false;\n      return false;\n    }\n\n    if (this.keep && this.keep.intact !== \"none\") {\n      this[_xfa_object.$extra]._isSplittable = false;\n      return false;\n    }\n\n    if (parent.layout && parent.layout.endsWith(\"-tb\") && parent[_xfa_object.$extra].numberInLine !== 0) {\n      return false;\n    }\n\n    this[_xfa_object.$extra]._isSplittable = true;\n    return true;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    setTabIndex(this);\n\n    if (this.break) {\n      if (this.break.after !== \"auto\" || this.break.afterTarget !== \"\") {\n        const node = new BreakAfter({\n          targetType: this.break.after,\n          target: this.break.afterTarget,\n          startNew: this.break.startNew.toString()\n        });\n        node[_xfa_object.$globalData] = this[_xfa_object.$globalData];\n\n        this[_xfa_object.$appendChild](node);\n\n        this.breakAfter.push(node);\n      }\n\n      if (this.break.before !== \"auto\" || this.break.beforeTarget !== \"\") {\n        const node = new BreakBefore({\n          targetType: this.break.before,\n          target: this.break.beforeTarget,\n          startNew: this.break.startNew.toString()\n        });\n        node[_xfa_object.$globalData] = this[_xfa_object.$globalData];\n\n        this[_xfa_object.$appendChild](node);\n\n        this.breakBefore.push(node);\n      }\n\n      if (this.break.overflowTarget !== \"\") {\n        const node = new Overflow({\n          target: this.break.overflowTarget,\n          leader: this.break.overflowLeader,\n          trailer: this.break.overflowTrailer\n        });\n        node[_xfa_object.$globalData] = this[_xfa_object.$globalData];\n\n        this[_xfa_object.$appendChild](node);\n\n        this.overflow.push(node);\n      }\n\n      this[_xfa_object.$removeChild](this.break);\n\n      this.break = null;\n    }\n\n    if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    if (this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) {\n      (0, _util.warn)(\"XFA - Several breakBefore or breakAfter in subforms: please file a bug.\");\n    }\n\n    if (this.breakBefore.children.length >= 1) {\n      const breakBefore = this.breakBefore.children[0];\n\n      if (handleBreak(breakBefore)) {\n        return _utils.HTMLResult.breakNode(breakBefore);\n      }\n    }\n\n    if (this[_xfa_object.$extra] && this[_xfa_object.$extra].afterBreakAfter) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    (0, _html_utils.fixDimensions)(this);\n    const children = [];\n    const attributes = {\n      id: this[_xfa_object.$uid],\n      class: []\n    };\n    (0, _html_utils.setAccess)(this, attributes.class);\n\n    if (!this[_xfa_object.$extra]) {\n      this[_xfa_object.$extra] = Object.create(null);\n    }\n\n    Object.assign(this[_xfa_object.$extra], {\n      children,\n      line: null,\n      attributes,\n      attempt: 0,\n      numberInLine: 0,\n      availableSpace: {\n        width: Math.min(this.w || Infinity, availableSpace.width),\n        height: Math.min(this.h || Infinity, availableSpace.height)\n      },\n      width: 0,\n      height: 0,\n      prevHeight: 0,\n      currentWidth: 0\n    });\n\n    const root = this[_xfa_object.$getTemplateRoot]();\n\n    const savedNoLayoutFailure = root[_xfa_object.$extra].noLayoutFailure;\n\n    const isSplittable = this[_xfa_object.$isSplittable]();\n\n    if (!isSplittable) {\n      setFirstUnsplittable(this);\n    }\n\n    if (!(0, _layout.checkDimensions)(this, availableSpace)) {\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    const filter = new Set([\"area\", \"draw\", \"exclGroup\", \"field\", \"subform\", \"subformSet\"]);\n\n    if (this.layout.includes(\"row\")) {\n      const columnWidths = this[_xfa_object.$getSubformParent]().columnWidths;\n\n      if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n        this[_xfa_object.$extra].columnWidths = columnWidths;\n        this[_xfa_object.$extra].currentColumn = 0;\n      }\n    }\n\n    const style = (0, _html_utils.toStyle)(this, \"anchorType\", \"dimensions\", \"position\", \"presence\", \"border\", \"margin\", \"hAlign\");\n    const classNames = [\"xfaSubform\"];\n    const cl = (0, _html_utils.layoutClass)(this);\n\n    if (cl) {\n      classNames.push(cl);\n    }\n\n    attributes.style = style;\n    attributes.class = classNames;\n\n    if (this.name) {\n      attributes.xfaName = this.name;\n    }\n\n    if (this.overflow) {\n      const overflowExtra = this.overflow[_xfa_object.$getExtra]();\n\n      if (overflowExtra.addLeader) {\n        overflowExtra.addLeader = false;\n        handleOverflow(this, overflowExtra.leader, availableSpace);\n      }\n    }\n\n    this[_xfa_object.$pushPara]();\n\n    const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n    const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n\n    for (; this[_xfa_object.$extra].attempt < maxRun; this[_xfa_object.$extra].attempt++) {\n      if (isLrTb && this[_xfa_object.$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n        this[_xfa_object.$extra].numberInLine = 0;\n      }\n\n      const result = this[_xfa_object.$childrenToHTML]({\n        filter,\n        include: true\n      });\n\n      if (result.success) {\n        break;\n      }\n\n      if (result.isBreak()) {\n        this[_xfa_object.$popPara]();\n\n        return result;\n      }\n\n      if (isLrTb && this[_xfa_object.$extra].attempt === 0 && this[_xfa_object.$extra].numberInLine === 0 && !root[_xfa_object.$extra].noLayoutFailure) {\n        this[_xfa_object.$extra].attempt = maxRun;\n        break;\n      }\n    }\n\n    this[_xfa_object.$popPara]();\n\n    if (!isSplittable) {\n      unsetFirstUnsplittable(this);\n    }\n\n    root[_xfa_object.$extra].noLayoutFailure = savedNoLayoutFailure;\n\n    if (this[_xfa_object.$extra].attempt === maxRun) {\n      if (this.overflow) {\n        this[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].overflowNode = this.overflow;\n      }\n\n      if (!isSplittable) {\n        delete this[_xfa_object.$extra];\n      }\n\n      return _utils.HTMLResult.FAILURE;\n    }\n\n    if (this.overflow) {\n      const overflowExtra = this.overflow[_xfa_object.$getExtra]();\n\n      if (overflowExtra.addTrailer) {\n        overflowExtra.addTrailer = false;\n        handleOverflow(this, overflowExtra.trailer, availableSpace);\n      }\n    }\n\n    let marginH = 0;\n    let marginV = 0;\n\n    if (this.margin) {\n      marginH = this.margin.leftInset + this.margin.rightInset;\n      marginV = this.margin.topInset + this.margin.bottomInset;\n    }\n\n    const width = Math.max(this[_xfa_object.$extra].width + marginH, this.w || 0);\n    const height = Math.max(this[_xfa_object.$extra].height + marginV, this.h || 0);\n    const bbox = [this.x, this.y, width, height];\n\n    if (this.w === \"\") {\n      style.width = (0, _html_utils.measureToString)(width);\n    }\n\n    if (this.h === \"\") {\n      style.height = (0, _html_utils.measureToString)(height);\n    }\n\n    if ((style.width === \"0px\" || style.height === \"0px\") && children.length === 0) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    const html = {\n      name: \"div\",\n      attributes,\n      children\n    };\n    applyAssist(this, attributes);\n\n    const result = _utils.HTMLResult.success((0, _html_utils.createWrapper)(this, html), bbox);\n\n    if (this.breakAfter.children.length >= 1) {\n      const breakAfter = this.breakAfter.children[0];\n\n      if (handleBreak(breakAfter)) {\n        this[_xfa_object.$extra].afterBreakAfter = result;\n        return _utils.HTMLResult.breakNode(breakAfter);\n      }\n    }\n\n    delete this[_xfa_object.$extra];\n    return result;\n  }\n\n}\n\nclass SubformSet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subformSet\", true);\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.relation = (0, _utils.getStringOption)(attributes.relation, [\"ordered\", \"choice\", \"unordered\"]);\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.bookend = null;\n    this.break = null;\n    this.desc = null;\n    this.extras = null;\n    this.occur = null;\n    this.overflow = null;\n    this.breakAfter = new _xfa_object.XFAObjectArray();\n    this.breakBefore = new _xfa_object.XFAObjectArray();\n    this.subform = new _xfa_object.XFAObjectArray();\n    this.subformSet = new _xfa_object.XFAObjectArray();\n  }\n\n  *[_xfa_object.$getContainedChildren]() {\n    yield* getContainedChildren(this);\n  }\n\n  [_xfa_object.$getSubformParent]() {\n    let parent = this[_xfa_object.$getParent]();\n\n    while (!(parent instanceof Subform)) {\n      parent = parent[_xfa_object.$getParent]();\n    }\n\n    return parent;\n  }\n\n  [_xfa_object.$isBindable]() {\n    return true;\n  }\n\n}\n\nclass SubjectDN extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subjectDN\");\n    this.delimiter = attributes.delimiter || \",\";\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = new Map(this[_xfa_object.$content].split(this.delimiter).map(kv => {\n      kv = kv.split(\"=\", 2);\n      kv[0] = kv[0].trim();\n      return kv;\n    }));\n  }\n\n}\n\nclass SubjectDNs extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"subjectDNs\", true);\n    this.id = attributes.id || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.subjectDN = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Submit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"submit\", true);\n    this.embedPDF = (0, _utils.getInteger)({\n      data: attributes.embedPDF,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.format = (0, _utils.getStringOption)(attributes.format, [\"xdp\", \"formdata\", \"pdf\", \"urlencoded\", \"xfd\", \"xml\"]);\n    this.id = attributes.id || \"\";\n    this.target = attributes.target || \"\";\n    this.textEncoding = (0, _utils.getKeyword)({\n      data: attributes.textEncoding ? attributes.textEncoding.toLowerCase() : \"\",\n      defaultValue: \"\",\n      validate: k => [\"utf-8\", \"big-five\", \"fontspecific\", \"gbk\", \"gb-18030\", \"gb-2312\", \"ksc-5601\", \"none\", \"shift-jis\", \"ucs-2\", \"utf-16\"].includes(k) || k.match(/iso-8859-\\d{2}/)\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.xdpContent = attributes.xdpContent || \"\";\n    this.encrypt = null;\n    this.encryptData = new _xfa_object.XFAObjectArray();\n    this.signData = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Template extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"template\", true);\n    this.baseProfile = (0, _utils.getStringOption)(attributes.baseProfile, [\"full\", \"interactiveForms\"]);\n    this.extras = null;\n    this.subform = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$finalize]() {\n    if (this.subform.children.length === 0) {\n      (0, _util.warn)(\"XFA - No subforms in template node.\");\n    }\n\n    if (this.subform.children.length >= 2) {\n      (0, _util.warn)(\"XFA - Several subforms in template node: please file a bug.\");\n    }\n\n    this[_xfa_object.$tabIndex] = DEFAULT_TAB_INDEX;\n  }\n\n  [_xfa_object.$isSplittable]() {\n    return true;\n  }\n\n  [_xfa_object.$searchNode](expr, container) {\n    if (expr.startsWith(\"#\")) {\n      return [this[_xfa_object.$ids].get(expr.slice(1))];\n    }\n\n    return (0, _som.searchNode)(this, container, expr, true, true);\n  }\n\n  *[_xfa_object.$toPages]() {\n    if (!this.subform.children.length) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        children: []\n      });\n    }\n\n    this[_xfa_object.$extra] = {\n      overflowNode: null,\n      firstUnsplittable: null,\n      currentContentArea: null,\n      currentPageArea: null,\n      noLayoutFailure: false,\n      pageNumber: 1,\n      pagePosition: \"first\",\n      oddOrEven: \"odd\",\n      blankOrNotBlank: \"nonBlank\",\n      paraStack: []\n    };\n    const root = this.subform.children[0];\n\n    root.pageSet[_xfa_object.$cleanPage]();\n\n    const pageAreas = root.pageSet.pageArea.children;\n    const mainHtml = {\n      name: \"div\",\n      children: []\n    };\n    let pageArea = null;\n    let breakBefore = null;\n    let breakBeforeTarget = null;\n\n    if (root.breakBefore.children.length >= 1) {\n      breakBefore = root.breakBefore.children[0];\n      breakBeforeTarget = breakBefore.target;\n    } else if (root.subform.children.length >= 1 && root.subform.children[0].breakBefore.children.length >= 1) {\n      breakBefore = root.subform.children[0].breakBefore.children[0];\n      breakBeforeTarget = breakBefore.target;\n    } else if (root.break && root.break.beforeTarget) {\n      breakBefore = root.break;\n      breakBeforeTarget = breakBefore.beforeTarget;\n    } else if (root.subform.children.length >= 1 && root.subform.children[0].break && root.subform.children[0].break.beforeTarget) {\n      breakBefore = root.subform.children[0].break;\n      breakBeforeTarget = breakBefore.beforeTarget;\n    }\n\n    if (breakBefore) {\n      const target = this[_xfa_object.$searchNode](breakBeforeTarget, breakBefore[_xfa_object.$getParent]());\n\n      if (target instanceof PageArea) {\n        pageArea = target;\n        breakBefore[_xfa_object.$extra] = {};\n      }\n    }\n\n    if (!pageArea) {\n      pageArea = pageAreas[0];\n    }\n\n    pageArea[_xfa_object.$extra] = {\n      numberOfUse: 1\n    };\n\n    const pageAreaParent = pageArea[_xfa_object.$getParent]();\n\n    pageAreaParent[_xfa_object.$extra] = {\n      numberOfUse: 1,\n      pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea),\n      pageSetIndex: 0\n    };\n    let targetPageArea;\n    let leader = null;\n    let trailer = null;\n    let hasSomething = true;\n    let hasSomethingCounter = 0;\n    let startIndex = 0;\n\n    while (true) {\n      if (!hasSomething) {\n        mainHtml.children.pop();\n\n        if (++hasSomethingCounter === MAX_EMPTY_PAGES) {\n          (0, _util.warn)(\"XFA - Something goes wrong: please file a bug.\");\n          return mainHtml;\n        }\n      } else {\n        hasSomethingCounter = 0;\n      }\n\n      targetPageArea = null;\n      this[_xfa_object.$extra].currentPageArea = pageArea;\n\n      const page = pageArea[_xfa_object.$toHTML]().html;\n\n      mainHtml.children.push(page);\n\n      if (leader) {\n        this[_xfa_object.$extra].noLayoutFailure = true;\n        page.children.push(leader[_xfa_object.$toHTML](pageArea[_xfa_object.$extra].space).html);\n        leader = null;\n      }\n\n      if (trailer) {\n        this[_xfa_object.$extra].noLayoutFailure = true;\n        page.children.push(trailer[_xfa_object.$toHTML](pageArea[_xfa_object.$extra].space).html);\n        trailer = null;\n      }\n\n      const contentAreas = pageArea.contentArea.children;\n      const htmlContentAreas = page.children.filter(node => node.attributes.class.includes(\"xfaContentarea\"));\n      hasSomething = false;\n      this[_xfa_object.$extra].firstUnsplittable = null;\n      this[_xfa_object.$extra].noLayoutFailure = false;\n\n      const flush = index => {\n        const html = root[_xfa_object.$flushHTML]();\n\n        if (html) {\n          hasSomething = hasSomething || html.children && html.children.length !== 0;\n          htmlContentAreas[index].children.push(html);\n        }\n      };\n\n      for (let i = startIndex, ii = contentAreas.length; i < ii; i++) {\n        const contentArea = this[_xfa_object.$extra].currentContentArea = contentAreas[i];\n        const space = {\n          width: contentArea.w,\n          height: contentArea.h\n        };\n        startIndex = 0;\n\n        if (leader) {\n          htmlContentAreas[i].children.push(leader[_xfa_object.$toHTML](space).html);\n          leader = null;\n        }\n\n        if (trailer) {\n          htmlContentAreas[i].children.push(trailer[_xfa_object.$toHTML](space).html);\n          trailer = null;\n        }\n\n        const html = root[_xfa_object.$toHTML](space);\n\n        if (html.success) {\n          if (html.html) {\n            hasSomething = hasSomething || html.html.children && html.html.children.length !== 0;\n            htmlContentAreas[i].children.push(html.html);\n          } else if (!hasSomething && mainHtml.children.length > 1) {\n            mainHtml.children.pop();\n          }\n\n          return mainHtml;\n        }\n\n        if (html.isBreak()) {\n          const node = html.breakNode;\n          flush(i);\n\n          if (node.targetType === \"auto\") {\n            continue;\n          }\n\n          if (node.leader) {\n            leader = this[_xfa_object.$searchNode](node.leader, node[_xfa_object.$getParent]());\n            leader = leader ? leader[0] : null;\n          }\n\n          if (node.trailer) {\n            trailer = this[_xfa_object.$searchNode](node.trailer, node[_xfa_object.$getParent]());\n            trailer = trailer ? trailer[0] : null;\n          }\n\n          if (node.targetType === \"pageArea\") {\n            targetPageArea = node[_xfa_object.$extra].target;\n            i = Infinity;\n          } else if (!node[_xfa_object.$extra].target) {\n            i = node[_xfa_object.$extra].index;\n          } else {\n            targetPageArea = node[_xfa_object.$extra].target;\n            startIndex = node[_xfa_object.$extra].index + 1;\n            i = Infinity;\n          }\n\n          continue;\n        }\n\n        if (this[_xfa_object.$extra].overflowNode) {\n          const node = this[_xfa_object.$extra].overflowNode;\n          this[_xfa_object.$extra].overflowNode = null;\n\n          const overflowExtra = node[_xfa_object.$getExtra]();\n\n          const target = overflowExtra.target;\n          overflowExtra.addLeader = overflowExtra.leader !== null;\n          overflowExtra.addTrailer = overflowExtra.trailer !== null;\n          flush(i);\n          const currentIndex = i;\n          i = Infinity;\n\n          if (target instanceof PageArea) {\n            targetPageArea = target;\n          } else if (target instanceof ContentArea) {\n            const index = contentAreas.indexOf(target);\n\n            if (index !== -1) {\n              if (index > currentIndex) {\n                i = index - 1;\n              } else {\n                startIndex = index;\n              }\n            } else {\n              targetPageArea = target[_xfa_object.$getParent]();\n              startIndex = targetPageArea.contentArea.children.indexOf(target);\n            }\n          }\n\n          continue;\n        }\n\n        flush(i);\n      }\n\n      this[_xfa_object.$extra].pageNumber += 1;\n\n      if (targetPageArea) {\n        if (targetPageArea[_xfa_object.$isUsable]()) {\n          targetPageArea[_xfa_object.$extra].numberOfUse += 1;\n        } else {\n          targetPageArea = null;\n        }\n      }\n\n      pageArea = targetPageArea || pageArea[_xfa_object.$getNextPage]();\n      yield null;\n    }\n  }\n\n}\n\nexports.Template = Template;\n\nclass Text extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"text\");\n    this.id = attributes.id || \"\";\n    this.maxChars = (0, _utils.getInteger)({\n      data: attributes.maxChars,\n      defaultValue: 0,\n      validate: x => x >= 0\n    });\n    this.name = attributes.name || \"\";\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$acceptWhitespace]() {\n    return true;\n  }\n\n  [_xfa_object.$onChild](child) {\n    if (child[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.xhtml.id) {\n      this[_xfa_object.$content] = child;\n      return true;\n    }\n\n    (0, _util.warn)(`XFA - Invalid content in Text: ${child[_xfa_object.$nodeName]}.`);\n    return false;\n  }\n\n  [_xfa_object.$onText](str) {\n    if (this[_xfa_object.$content] instanceof _xfa_object.XFAObject) {\n      return;\n    }\n\n    super[_xfa_object.$onText](str);\n  }\n\n  [_xfa_object.$finalize]() {\n    if (typeof this[_xfa_object.$content] === \"string\") {\n      this[_xfa_object.$content] = this[_xfa_object.$content].replace(/\\r\\n/g, \"\\n\");\n    }\n  }\n\n  [_xfa_object.$getExtra]() {\n    if (typeof this[_xfa_object.$content] === \"string\") {\n      return this[_xfa_object.$content].split(/[\\u2029\\u2028\\n]/).reduce((acc, line) => {\n        if (line) {\n          acc.push(line);\n        }\n\n        return acc;\n      }, []).join(\"\\n\");\n    }\n\n    return this[_xfa_object.$content][_xfa_object.$text]();\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    if (typeof this[_xfa_object.$content] === \"string\") {\n      const html = valueToHtml(this[_xfa_object.$content]).html;\n\n      if (this[_xfa_object.$content].includes(\"\\u2029\")) {\n        html.name = \"div\";\n        html.children = [];\n\n        this[_xfa_object.$content].split(\"\\u2029\").map(para => para.split(/[\\u2028\\n]/).reduce((acc, line) => {\n          acc.push({\n            name: \"span\",\n            value: line\n          }, {\n            name: \"br\"\n          });\n          return acc;\n        }, [])).forEach(lines => {\n          html.children.push({\n            name: \"p\",\n            children: lines\n          });\n        });\n      } else if (/[\\u2028\\n]/.test(this[_xfa_object.$content])) {\n        html.name = \"div\";\n        html.children = [];\n\n        this[_xfa_object.$content].split(/[\\u2028\\n]/).forEach(line => {\n          html.children.push({\n            name: \"span\",\n            value: line\n          }, {\n            name: \"br\"\n          });\n        });\n      }\n\n      return _utils.HTMLResult.success(html);\n    }\n\n    return this[_xfa_object.$content][_xfa_object.$toHTML](availableSpace);\n  }\n\n}\n\nexports.Text = Text;\n\nclass TextEdit extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"textEdit\", true);\n    this.allowRichText = (0, _utils.getInteger)({\n      data: attributes.allowRichText,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.hScrollPolicy = (0, _utils.getStringOption)(attributes.hScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.id = attributes.id || \"\";\n    this.multiLine = (0, _utils.getInteger)({\n      data: attributes.multiLine,\n      defaultValue: \"\",\n      validate: x => x === 0 || x === 1\n    });\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.vScrollPolicy = (0, _utils.getStringOption)(attributes.vScrollPolicy, [\"auto\", \"off\", \"on\"]);\n    this.border = null;\n    this.comb = null;\n    this.extras = null;\n    this.margin = null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const style = (0, _html_utils.toStyle)(this, \"border\", \"font\", \"margin\");\n    let html;\n\n    const field = this[_xfa_object.$getParent]()[_xfa_object.$getParent]();\n\n    if (this.multiLine === \"\") {\n      this.multiLine = field instanceof Draw ? 1 : 0;\n    }\n\n    if (this.multiLine === 1) {\n      html = {\n        name: \"textarea\",\n        attributes: {\n          dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n          fieldId: field[_xfa_object.$uid],\n          class: [\"xfaTextfield\"],\n          style,\n          \"aria-label\": ariaLabel(field),\n          \"aria-required\": false\n        }\n      };\n    } else {\n      html = {\n        name: \"input\",\n        attributes: {\n          type: \"text\",\n          dataId: field[_xfa_object.$data] && field[_xfa_object.$data][_xfa_object.$uid] || field[_xfa_object.$uid],\n          fieldId: field[_xfa_object.$uid],\n          class: [\"xfaTextfield\"],\n          style,\n          \"aria-label\": ariaLabel(field),\n          \"aria-required\": false\n        }\n      };\n    }\n\n    if (isRequired(field)) {\n      html.attributes[\"aria-required\"] = true;\n      html.attributes.required = true;\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"label\",\n      attributes: {\n        class: [\"xfaLabel\"]\n      },\n      children: [html]\n    });\n  }\n\n}\n\nclass Time extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"time\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n  [_xfa_object.$finalize]() {\n    const date = this[_xfa_object.$content].trim();\n\n    this[_xfa_object.$content] = date ? new Date(date) : null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return valueToHtml(this[_xfa_object.$content] ? this[_xfa_object.$content].toString() : \"\");\n  }\n\n}\n\nclass TimeStamp extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"timeStamp\");\n    this.id = attributes.id || \"\";\n    this.server = attributes.server || \"\";\n    this.type = (0, _utils.getStringOption)(attributes.type, [\"optional\", \"required\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass ToolTip extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"toolTip\");\n    this.id = attributes.id || \"\";\n    this.rid = attributes.rid || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Traversal extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"traversal\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.traverse = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Traverse extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"traverse\", true);\n    this.id = attributes.id || \"\";\n    this.operation = (0, _utils.getStringOption)(attributes.operation, [\"next\", \"back\", \"down\", \"first\", \"left\", \"right\", \"up\"]);\n    this.ref = attributes.ref || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.script = null;\n  }\n\n  get name() {\n    return this.operation;\n  }\n\n  [_xfa_object.$isTransparent]() {\n    return false;\n  }\n\n}\n\nclass Ui extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"ui\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.picture = null;\n    this.barcode = null;\n    this.button = null;\n    this.checkButton = null;\n    this.choiceList = null;\n    this.dateTimeEdit = null;\n    this.defaultUi = null;\n    this.imageEdit = null;\n    this.numericEdit = null;\n    this.passwordEdit = null;\n    this.signature = null;\n    this.textEdit = null;\n  }\n\n  [_xfa_object.$getExtra]() {\n    if (this[_xfa_object.$extra] === undefined) {\n      for (const name of Object.getOwnPropertyNames(this)) {\n        if (name === \"extras\" || name === \"picture\") {\n          continue;\n        }\n\n        const obj = this[name];\n\n        if (!(obj instanceof _xfa_object.XFAObject)) {\n          continue;\n        }\n\n        this[_xfa_object.$extra] = obj;\n        return obj;\n      }\n\n      this[_xfa_object.$extra] = null;\n    }\n\n    return this[_xfa_object.$extra];\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const obj = this[_xfa_object.$getExtra]();\n\n    if (obj) {\n      return obj[_xfa_object.$toHTML](availableSpace);\n    }\n\n    return _utils.HTMLResult.EMPTY;\n  }\n\n}\n\nclass Validate extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"validate\", true);\n    this.formatTest = (0, _utils.getStringOption)(attributes.formatTest, [\"warning\", \"disabled\", \"error\"]);\n    this.id = attributes.id || \"\";\n    this.nullTest = (0, _utils.getStringOption)(attributes.nullTest, [\"disabled\", \"error\", \"warning\"]);\n    this.scriptTest = (0, _utils.getStringOption)(attributes.scriptTest, [\"error\", \"disabled\", \"warning\"]);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.extras = null;\n    this.message = null;\n    this.picture = null;\n    this.script = null;\n  }\n\n}\n\nclass Value extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"value\", true);\n    this.id = attributes.id || \"\";\n    this.override = (0, _utils.getInteger)({\n      data: attributes.override,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.relevant = (0, _utils.getRelevant)(attributes.relevant);\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.arc = null;\n    this.boolean = null;\n    this.date = null;\n    this.dateTime = null;\n    this.decimal = null;\n    this.exData = null;\n    this.float = null;\n    this.image = null;\n    this.integer = null;\n    this.line = null;\n    this.rectangle = null;\n    this.text = null;\n    this.time = null;\n  }\n\n  [_xfa_object.$setValue](value) {\n    const parent = this[_xfa_object.$getParent]();\n\n    if (parent instanceof Field) {\n      if (parent.ui && parent.ui.imageEdit) {\n        if (!this.image) {\n          this.image = new Image({});\n\n          this[_xfa_object.$appendChild](this.image);\n        }\n\n        this.image[_xfa_object.$content] = value[_xfa_object.$content];\n        return;\n      }\n    }\n\n    const valueName = value[_xfa_object.$nodeName];\n\n    if (this[valueName] !== null) {\n      this[valueName][_xfa_object.$content] = value[_xfa_object.$content];\n      return;\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const obj = this[name];\n\n      if (obj instanceof _xfa_object.XFAObject) {\n        this[name] = null;\n\n        this[_xfa_object.$removeChild](obj);\n      }\n    }\n\n    this[value[_xfa_object.$nodeName]] = value;\n\n    this[_xfa_object.$appendChild](value);\n  }\n\n  [_xfa_object.$text]() {\n    if (this.exData) {\n      if (typeof this.exData[_xfa_object.$content] === \"string\") {\n        return this.exData[_xfa_object.$content].trim();\n      }\n\n      return this.exData[_xfa_object.$content][_xfa_object.$text]().trim();\n    }\n\n    for (const name of Object.getOwnPropertyNames(this)) {\n      if (name === \"image\") {\n        continue;\n      }\n\n      const obj = this[name];\n\n      if (obj instanceof _xfa_object.XFAObject) {\n        return (obj[_xfa_object.$content] || \"\").toString().trim();\n      }\n    }\n\n    return null;\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    for (const name of Object.getOwnPropertyNames(this)) {\n      const obj = this[name];\n\n      if (!(obj instanceof _xfa_object.XFAObject)) {\n        continue;\n      }\n\n      return obj[_xfa_object.$toHTML](availableSpace);\n    }\n\n    return _utils.HTMLResult.EMPTY;\n  }\n\n}\n\nexports.Value = Value;\n\nclass Variables extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(TEMPLATE_NS_ID, \"variables\", true);\n    this.id = attributes.id || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n    this.boolean = new _xfa_object.XFAObjectArray();\n    this.date = new _xfa_object.XFAObjectArray();\n    this.dateTime = new _xfa_object.XFAObjectArray();\n    this.decimal = new _xfa_object.XFAObjectArray();\n    this.exData = new _xfa_object.XFAObjectArray();\n    this.float = new _xfa_object.XFAObjectArray();\n    this.image = new _xfa_object.XFAObjectArray();\n    this.integer = new _xfa_object.XFAObjectArray();\n    this.manifest = new _xfa_object.XFAObjectArray();\n    this.script = new _xfa_object.XFAObjectArray();\n    this.text = new _xfa_object.XFAObjectArray();\n    this.time = new _xfa_object.XFAObjectArray();\n  }\n\n  [_xfa_object.$isTransparent]() {\n    return true;\n  }\n\n}\n\nclass TemplateNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (TemplateNamespace.hasOwnProperty(name)) {\n      const node = TemplateNamespace[name](attributes);\n\n      node[_xfa_object.$setSetAttributes](attributes);\n\n      return node;\n    }\n\n    return undefined;\n  }\n\n  static appearanceFilter(attrs) {\n    return new AppearanceFilter(attrs);\n  }\n\n  static arc(attrs) {\n    return new Arc(attrs);\n  }\n\n  static area(attrs) {\n    return new Area(attrs);\n  }\n\n  static assist(attrs) {\n    return new Assist(attrs);\n  }\n\n  static barcode(attrs) {\n    return new Barcode(attrs);\n  }\n\n  static bind(attrs) {\n    return new Bind(attrs);\n  }\n\n  static bindItems(attrs) {\n    return new BindItems(attrs);\n  }\n\n  static bookend(attrs) {\n    return new Bookend(attrs);\n  }\n\n  static boolean(attrs) {\n    return new BooleanElement(attrs);\n  }\n\n  static border(attrs) {\n    return new Border(attrs);\n  }\n\n  static break(attrs) {\n    return new Break(attrs);\n  }\n\n  static breakAfter(attrs) {\n    return new BreakAfter(attrs);\n  }\n\n  static breakBefore(attrs) {\n    return new BreakBefore(attrs);\n  }\n\n  static button(attrs) {\n    return new Button(attrs);\n  }\n\n  static calculate(attrs) {\n    return new Calculate(attrs);\n  }\n\n  static caption(attrs) {\n    return new Caption(attrs);\n  }\n\n  static certificate(attrs) {\n    return new Certificate(attrs);\n  }\n\n  static certificates(attrs) {\n    return new Certificates(attrs);\n  }\n\n  static checkButton(attrs) {\n    return new CheckButton(attrs);\n  }\n\n  static choiceList(attrs) {\n    return new ChoiceList(attrs);\n  }\n\n  static color(attrs) {\n    return new Color(attrs);\n  }\n\n  static comb(attrs) {\n    return new Comb(attrs);\n  }\n\n  static connect(attrs) {\n    return new Connect(attrs);\n  }\n\n  static contentArea(attrs) {\n    return new ContentArea(attrs);\n  }\n\n  static corner(attrs) {\n    return new Corner(attrs);\n  }\n\n  static date(attrs) {\n    return new DateElement(attrs);\n  }\n\n  static dateTime(attrs) {\n    return new DateTime(attrs);\n  }\n\n  static dateTimeEdit(attrs) {\n    return new DateTimeEdit(attrs);\n  }\n\n  static decimal(attrs) {\n    return new Decimal(attrs);\n  }\n\n  static defaultUi(attrs) {\n    return new DefaultUi(attrs);\n  }\n\n  static desc(attrs) {\n    return new Desc(attrs);\n  }\n\n  static digestMethod(attrs) {\n    return new DigestMethod(attrs);\n  }\n\n  static digestMethods(attrs) {\n    return new DigestMethods(attrs);\n  }\n\n  static draw(attrs) {\n    return new Draw(attrs);\n  }\n\n  static edge(attrs) {\n    return new Edge(attrs);\n  }\n\n  static encoding(attrs) {\n    return new Encoding(attrs);\n  }\n\n  static encodings(attrs) {\n    return new Encodings(attrs);\n  }\n\n  static encrypt(attrs) {\n    return new Encrypt(attrs);\n  }\n\n  static encryptData(attrs) {\n    return new EncryptData(attrs);\n  }\n\n  static encryption(attrs) {\n    return new Encryption(attrs);\n  }\n\n  static encryptionMethod(attrs) {\n    return new EncryptionMethod(attrs);\n  }\n\n  static encryptionMethods(attrs) {\n    return new EncryptionMethods(attrs);\n  }\n\n  static event(attrs) {\n    return new Event(attrs);\n  }\n\n  static exData(attrs) {\n    return new ExData(attrs);\n  }\n\n  static exObject(attrs) {\n    return new ExObject(attrs);\n  }\n\n  static exclGroup(attrs) {\n    return new ExclGroup(attrs);\n  }\n\n  static execute(attrs) {\n    return new Execute(attrs);\n  }\n\n  static extras(attrs) {\n    return new Extras(attrs);\n  }\n\n  static field(attrs) {\n    return new Field(attrs);\n  }\n\n  static fill(attrs) {\n    return new Fill(attrs);\n  }\n\n  static filter(attrs) {\n    return new Filter(attrs);\n  }\n\n  static float(attrs) {\n    return new Float(attrs);\n  }\n\n  static font(attrs) {\n    return new Font(attrs);\n  }\n\n  static format(attrs) {\n    return new Format(attrs);\n  }\n\n  static handler(attrs) {\n    return new Handler(attrs);\n  }\n\n  static hyphenation(attrs) {\n    return new Hyphenation(attrs);\n  }\n\n  static image(attrs) {\n    return new Image(attrs);\n  }\n\n  static imageEdit(attrs) {\n    return new ImageEdit(attrs);\n  }\n\n  static integer(attrs) {\n    return new Integer(attrs);\n  }\n\n  static issuers(attrs) {\n    return new Issuers(attrs);\n  }\n\n  static items(attrs) {\n    return new Items(attrs);\n  }\n\n  static keep(attrs) {\n    return new Keep(attrs);\n  }\n\n  static keyUsage(attrs) {\n    return new KeyUsage(attrs);\n  }\n\n  static line(attrs) {\n    return new Line(attrs);\n  }\n\n  static linear(attrs) {\n    return new Linear(attrs);\n  }\n\n  static lockDocument(attrs) {\n    return new LockDocument(attrs);\n  }\n\n  static manifest(attrs) {\n    return new Manifest(attrs);\n  }\n\n  static margin(attrs) {\n    return new Margin(attrs);\n  }\n\n  static mdp(attrs) {\n    return new Mdp(attrs);\n  }\n\n  static medium(attrs) {\n    return new Medium(attrs);\n  }\n\n  static message(attrs) {\n    return new Message(attrs);\n  }\n\n  static numericEdit(attrs) {\n    return new NumericEdit(attrs);\n  }\n\n  static occur(attrs) {\n    return new Occur(attrs);\n  }\n\n  static oid(attrs) {\n    return new Oid(attrs);\n  }\n\n  static oids(attrs) {\n    return new Oids(attrs);\n  }\n\n  static overflow(attrs) {\n    return new Overflow(attrs);\n  }\n\n  static pageArea(attrs) {\n    return new PageArea(attrs);\n  }\n\n  static pageSet(attrs) {\n    return new PageSet(attrs);\n  }\n\n  static para(attrs) {\n    return new Para(attrs);\n  }\n\n  static passwordEdit(attrs) {\n    return new PasswordEdit(attrs);\n  }\n\n  static pattern(attrs) {\n    return new Pattern(attrs);\n  }\n\n  static picture(attrs) {\n    return new Picture(attrs);\n  }\n\n  static proto(attrs) {\n    return new Proto(attrs);\n  }\n\n  static radial(attrs) {\n    return new Radial(attrs);\n  }\n\n  static reason(attrs) {\n    return new Reason(attrs);\n  }\n\n  static reasons(attrs) {\n    return new Reasons(attrs);\n  }\n\n  static rectangle(attrs) {\n    return new Rectangle(attrs);\n  }\n\n  static ref(attrs) {\n    return new RefElement(attrs);\n  }\n\n  static script(attrs) {\n    return new Script(attrs);\n  }\n\n  static setProperty(attrs) {\n    return new SetProperty(attrs);\n  }\n\n  static signData(attrs) {\n    return new SignData(attrs);\n  }\n\n  static signature(attrs) {\n    return new Signature(attrs);\n  }\n\n  static signing(attrs) {\n    return new Signing(attrs);\n  }\n\n  static solid(attrs) {\n    return new Solid(attrs);\n  }\n\n  static speak(attrs) {\n    return new Speak(attrs);\n  }\n\n  static stipple(attrs) {\n    return new Stipple(attrs);\n  }\n\n  static subform(attrs) {\n    return new Subform(attrs);\n  }\n\n  static subformSet(attrs) {\n    return new SubformSet(attrs);\n  }\n\n  static subjectDN(attrs) {\n    return new SubjectDN(attrs);\n  }\n\n  static subjectDNs(attrs) {\n    return new SubjectDNs(attrs);\n  }\n\n  static submit(attrs) {\n    return new Submit(attrs);\n  }\n\n  static template(attrs) {\n    return new Template(attrs);\n  }\n\n  static text(attrs) {\n    return new Text(attrs);\n  }\n\n  static textEdit(attrs) {\n    return new TextEdit(attrs);\n  }\n\n  static time(attrs) {\n    return new Time(attrs);\n  }\n\n  static timeStamp(attrs) {\n    return new TimeStamp(attrs);\n  }\n\n  static toolTip(attrs) {\n    return new ToolTip(attrs);\n  }\n\n  static traversal(attrs) {\n    return new Traversal(attrs);\n  }\n\n  static traverse(attrs) {\n    return new Traverse(attrs);\n  }\n\n  static ui(attrs) {\n    return new Ui(attrs);\n  }\n\n  static validate(attrs) {\n    return new Validate(attrs);\n  }\n\n  static value(attrs) {\n    return new Value(attrs);\n  }\n\n  static variables(attrs) {\n    return new Variables(attrs);\n  }\n\n}\n\nexports.TemplateNamespace = TemplateNamespace;\n\n/***/ }),\n/* 83 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.addHTML = addHTML;\nexports.checkDimensions = checkDimensions;\nexports.flushHTML = flushHTML;\nexports.getAvailableSpace = getAvailableSpace;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _html_utils = __w_pdfjs_require__(84);\n\nfunction createLine(node, children) {\n  return {\n    name: \"div\",\n    attributes: {\n      class: [node.layout === \"lr-tb\" ? \"xfaLr\" : \"xfaRl\"]\n    },\n    children\n  };\n}\n\nfunction flushHTML(node) {\n  if (!node[_xfa_object.$extra]) {\n    return null;\n  }\n\n  const attributes = node[_xfa_object.$extra].attributes;\n  const html = {\n    name: \"div\",\n    attributes,\n    children: node[_xfa_object.$extra].children\n  };\n\n  if (node[_xfa_object.$extra].failingNode) {\n    const htmlFromFailing = node[_xfa_object.$extra].failingNode[_xfa_object.$flushHTML]();\n\n    if (htmlFromFailing) {\n      if (node.layout.endsWith(\"-tb\")) {\n        html.children.push(createLine(node, [htmlFromFailing]));\n      } else {\n        html.children.push(htmlFromFailing);\n      }\n    }\n  }\n\n  if (html.children.length === 0) {\n    return null;\n  }\n\n  return html;\n}\n\nfunction addHTML(node, html, bbox) {\n  const extra = node[_xfa_object.$extra];\n  const availableSpace = extra.availableSpace;\n  const [x, y, w, h] = bbox;\n\n  switch (node.layout) {\n    case \"position\":\n      {\n        extra.width = Math.max(extra.width, x + w);\n        extra.height = Math.max(extra.height, y + h);\n        extra.children.push(html);\n        break;\n      }\n\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (!extra.line || extra.attempt === 1) {\n        extra.line = createLine(node, []);\n        extra.children.push(extra.line);\n        extra.numberInLine = 0;\n      }\n\n      extra.numberInLine += 1;\n      extra.line.children.push(html);\n\n      if (extra.attempt === 0) {\n        extra.currentWidth += w;\n        extra.height = Math.max(extra.height, extra.prevHeight + h);\n      } else {\n        extra.currentWidth = w;\n        extra.prevHeight = extra.height;\n        extra.height += h;\n        extra.attempt = 0;\n      }\n\n      extra.width = Math.max(extra.width, extra.currentWidth);\n      break;\n\n    case \"rl-row\":\n    case \"row\":\n      {\n        extra.children.push(html);\n        extra.width += w;\n        extra.height = Math.max(extra.height, h);\n        const height = (0, _html_utils.measureToString)(extra.height);\n\n        for (const child of extra.children) {\n          child.attributes.style.height = height;\n        }\n\n        break;\n      }\n\n    case \"table\":\n      {\n        extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n        extra.height += h;\n        extra.children.push(html);\n        break;\n      }\n\n    case \"tb\":\n      {\n        extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n        extra.height += h;\n        extra.children.push(html);\n        break;\n      }\n  }\n}\n\nfunction getAvailableSpace(node) {\n  const availableSpace = node[_xfa_object.$extra].availableSpace;\n  const marginV = node.margin ? node.margin.topInset + node.margin.bottomInset : 0;\n  const marginH = node.margin ? node.margin.leftInset + node.margin.rightInset : 0;\n\n  switch (node.layout) {\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (node[_xfa_object.$extra].attempt === 0) {\n        return {\n          width: availableSpace.width - marginH - node[_xfa_object.$extra].currentWidth,\n          height: availableSpace.height - marginV - node[_xfa_object.$extra].prevHeight\n        };\n      }\n\n      return {\n        width: availableSpace.width - marginH,\n        height: availableSpace.height - marginV - node[_xfa_object.$extra].height\n      };\n\n    case \"rl-row\":\n    case \"row\":\n      const width = node[_xfa_object.$extra].columnWidths.slice(node[_xfa_object.$extra].currentColumn).reduce((a, x) => a + x);\n\n      return {\n        width,\n        height: availableSpace.height - marginH\n      };\n\n    case \"table\":\n    case \"tb\":\n      return {\n        width: availableSpace.width - marginH,\n        height: availableSpace.height - marginV - node[_xfa_object.$extra].height\n      };\n\n    case \"position\":\n    default:\n      return availableSpace;\n  }\n}\n\nfunction getTransformedBBox(node) {\n  let w = node.w === \"\" ? NaN : node.w;\n  let h = node.h === \"\" ? NaN : node.h;\n  let [centerX, centerY] = [0, 0];\n\n  switch (node.anchorType || \"\") {\n    case \"bottomCenter\":\n      [centerX, centerY] = [w / 2, h];\n      break;\n\n    case \"bottomLeft\":\n      [centerX, centerY] = [0, h];\n      break;\n\n    case \"bottomRight\":\n      [centerX, centerY] = [w, h];\n      break;\n\n    case \"middleCenter\":\n      [centerX, centerY] = [w / 2, h / 2];\n      break;\n\n    case \"middleLeft\":\n      [centerX, centerY] = [0, h / 2];\n      break;\n\n    case \"middleRight\":\n      [centerX, centerY] = [w, h / 2];\n      break;\n\n    case \"topCenter\":\n      [centerX, centerY] = [w / 2, 0];\n      break;\n\n    case \"topRight\":\n      [centerX, centerY] = [w, 0];\n      break;\n  }\n\n  let x, y;\n\n  switch (node.rotate || 0) {\n    case 0:\n      [x, y] = [-centerX, -centerY];\n      break;\n\n    case 90:\n      [x, y] = [-centerY, centerX];\n      [w, h] = [h, -w];\n      break;\n\n    case 180:\n      [x, y] = [centerX, centerY];\n      [w, h] = [-w, -h];\n      break;\n\n    case 270:\n      [x, y] = [centerY, -centerX];\n      [w, h] = [-h, w];\n      break;\n  }\n\n  return [node.x + x + Math.min(0, w), node.y + y + Math.min(0, h), Math.abs(w), Math.abs(h)];\n}\n\nfunction checkDimensions(node, space) {\n  if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].firstUnsplittable === null) {\n    return true;\n  }\n\n  if (node.w === 0 || node.h === 0) {\n    return true;\n  }\n\n  const ERROR = 2;\n\n  const parent = node[_xfa_object.$getSubformParent]();\n\n  const attempt = parent[_xfa_object.$extra] && parent[_xfa_object.$extra].attempt || 0;\n  const [, y, w, h] = getTransformedBBox(node);\n\n  switch (parent.layout) {\n    case \"lr-tb\":\n    case \"rl-tb\":\n      if (attempt === 0) {\n        if (!node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n          if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n            return false;\n          }\n\n          if (node.w !== \"\") {\n            if (Math.round(w - space.width) <= ERROR) {\n              return true;\n            }\n\n            if (parent[_xfa_object.$extra].numberInLine === 0) {\n              return space.height > ERROR;\n            }\n\n            return false;\n          }\n\n          return space.width > ERROR;\n        }\n\n        if (node.w !== \"\") {\n          return Math.round(w - space.width) <= ERROR;\n        }\n\n        return space.width > ERROR;\n      }\n\n      if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n        return false;\n      }\n\n      if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n        return space.height > ERROR;\n      }\n\n      if (parent[_xfa_object.$isThereMoreWidth]()) {\n        return false;\n      }\n\n      return space.height > ERROR;\n\n    case \"table\":\n    case \"tb\":\n      if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h !== \"\" && !node[_xfa_object.$isSplittable]()) {\n        return Math.round(h - space.height) <= ERROR;\n      }\n\n      if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n        return space.height > ERROR;\n      }\n\n      if (parent[_xfa_object.$isThereMoreWidth]()) {\n        return false;\n      }\n\n      return space.height > ERROR;\n\n    case \"position\":\n      if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h === \"\" || Math.round(h + y - space.height) <= ERROR) {\n        return true;\n      }\n\n      const area = node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].currentContentArea;\n\n      return h + y > area.h;\n\n    case \"rl-row\":\n    case \"row\":\n      if (node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].noLayoutFailure) {\n        return true;\n      }\n\n      if (node.h !== \"\") {\n        return Math.round(h - space.height) <= ERROR;\n      }\n\n      return true;\n\n    default:\n      return true;\n  }\n}\n\n/***/ }),\n/* 84 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.computeBbox = computeBbox;\nexports.createWrapper = createWrapper;\nexports.fixDimensions = fixDimensions;\nexports.fixTextIndent = fixTextIndent;\nexports.fixURL = fixURL;\nexports.isPrintOnly = isPrintOnly;\nexports.layoutClass = layoutClass;\nexports.layoutNode = layoutNode;\nexports.measureToString = measureToString;\nexports.setAccess = setAccess;\nexports.setFontFamily = setFontFamily;\nexports.setMinMaxDimensions = setMinMaxDimensions;\nexports.setPara = setPara;\nexports.toStyle = toStyle;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _utils = __w_pdfjs_require__(78);\n\nvar _fonts = __w_pdfjs_require__(85);\n\nvar _text = __w_pdfjs_require__(86);\n\nfunction measureToString(m) {\n  if (typeof m === \"string\") {\n    return \"0px\";\n  }\n\n  return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\n\nconst converters = {\n  anchorType(node, style) {\n    const parent = node[_xfa_object.$getSubformParent]();\n\n    if (!parent || parent.layout && parent.layout !== \"position\") {\n      return;\n    }\n\n    if (!(\"transform\" in style)) {\n      style.transform = \"\";\n    }\n\n    switch (node.anchorType) {\n      case \"bottomCenter\":\n        style.transform += \"translate(-50%, -100%)\";\n        break;\n\n      case \"bottomLeft\":\n        style.transform += \"translate(0,-100%)\";\n        break;\n\n      case \"bottomRight\":\n        style.transform += \"translate(-100%,-100%)\";\n        break;\n\n      case \"middleCenter\":\n        style.transform += \"translate(-50%,-50%)\";\n        break;\n\n      case \"middleLeft\":\n        style.transform += \"translate(0,-50%)\";\n        break;\n\n      case \"middleRight\":\n        style.transform += \"translate(-100%,-50%)\";\n        break;\n\n      case \"topCenter\":\n        style.transform += \"translate(-50%,0)\";\n        break;\n\n      case \"topRight\":\n        style.transform += \"translate(-100%,0)\";\n        break;\n    }\n  },\n\n  dimensions(node, style) {\n    const parent = node[_xfa_object.$getSubformParent]();\n\n    let width = node.w;\n    const height = node.h;\n\n    if (parent.layout && parent.layout.includes(\"row\")) {\n      const extra = parent[_xfa_object.$extra];\n      const colSpan = node.colSpan;\n      let w;\n\n      if (colSpan === -1) {\n        w = extra.columnWidths.slice(extra.currentColumn).reduce((a, x) => a + x, 0);\n        extra.currentColumn = 0;\n      } else {\n        w = extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan).reduce((a, x) => a + x, 0);\n        extra.currentColumn = (extra.currentColumn + node.colSpan) % extra.columnWidths.length;\n      }\n\n      if (!isNaN(w)) {\n        width = node.w = w;\n      }\n    }\n\n    if (width !== \"\") {\n      style.width = measureToString(width);\n    } else {\n      style.width = \"auto\";\n    }\n\n    if (height !== \"\") {\n      style.height = measureToString(height);\n    } else {\n      style.height = \"auto\";\n    }\n  },\n\n  position(node, style) {\n    const parent = node[_xfa_object.$getSubformParent]();\n\n    if (parent && parent.layout && parent.layout !== \"position\") {\n      return;\n    }\n\n    style.position = \"absolute\";\n    style.left = measureToString(node.x);\n    style.top = measureToString(node.y);\n  },\n\n  rotate(node, style) {\n    if (node.rotate) {\n      if (!(\"transform\" in style)) {\n        style.transform = \"\";\n      }\n\n      style.transform += `rotate(-${node.rotate}deg)`;\n      style.transformOrigin = \"top left\";\n    }\n  },\n\n  presence(node, style) {\n    switch (node.presence) {\n      case \"invisible\":\n        style.visibility = \"hidden\";\n        break;\n\n      case \"hidden\":\n      case \"inactive\":\n        style.display = \"none\";\n        break;\n    }\n  },\n\n  hAlign(node, style) {\n    if (node[_xfa_object.$nodeName] === \"para\") {\n      switch (node.hAlign) {\n        case \"justifyAll\":\n          style.textAlign = \"justify-all\";\n          break;\n\n        case \"radix\":\n          style.textAlign = \"left\";\n          break;\n\n        default:\n          style.textAlign = node.hAlign;\n      }\n    } else {\n      switch (node.hAlign) {\n        case \"left\":\n          style.alignSelf = \"start\";\n          break;\n\n        case \"center\":\n          style.alignSelf = \"center\";\n          break;\n\n        case \"right\":\n          style.alignSelf = \"end\";\n          break;\n      }\n    }\n  },\n\n  margin(node, style) {\n    if (node.margin) {\n      style.margin = node.margin[_xfa_object.$toStyle]().margin;\n    }\n  }\n\n};\n\nfunction setMinMaxDimensions(node, style) {\n  const parent = node[_xfa_object.$getSubformParent]();\n\n  if (parent.layout === \"position\") {\n    if (node.minW > 0) {\n      style.minWidth = measureToString(node.minW);\n    }\n\n    if (node.maxW > 0) {\n      style.maxWidth = measureToString(node.maxW);\n    }\n\n    if (node.minH > 0) {\n      style.minHeight = measureToString(node.minH);\n    }\n\n    if (node.maxH > 0) {\n      style.maxHeight = measureToString(node.maxH);\n    }\n  }\n}\n\nfunction layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) {\n  const measure = new _text.TextMeasure(xfaFont, margin, lineHeight, fontFinder);\n\n  if (typeof text === \"string\") {\n    measure.addString(text);\n  } else {\n    text[_xfa_object.$pushGlyphs](measure);\n  }\n\n  return measure.compute(width);\n}\n\nfunction layoutNode(node, availableSpace) {\n  let height = null;\n  let width = null;\n  let isBroken = false;\n\n  if ((!node.w || !node.h) && node.value) {\n    let marginH = 0;\n    let marginV = 0;\n\n    if (node.margin) {\n      marginH = node.margin.leftInset + node.margin.rightInset;\n      marginV = node.margin.topInset + node.margin.bottomInset;\n    }\n\n    let lineHeight = null;\n    let margin = null;\n\n    if (node.para) {\n      margin = Object.create(null);\n      lineHeight = node.para.lineHeight === \"\" ? null : node.para.lineHeight;\n      margin.top = node.para.spaceAbove === \"\" ? 0 : node.para.spaceAbove;\n      margin.bottom = node.para.spaceBelow === \"\" ? 0 : node.para.spaceBelow;\n      margin.left = node.para.marginLeft === \"\" ? 0 : node.para.marginLeft;\n      margin.right = node.para.marginRight === \"\" ? 0 : node.para.marginRight;\n    }\n\n    let font = node.font;\n\n    if (!font) {\n      const root = node[_xfa_object.$getTemplateRoot]();\n\n      let parent = node[_xfa_object.$getParent]();\n\n      while (parent && parent !== root) {\n        if (parent.font) {\n          font = parent.font;\n          break;\n        }\n\n        parent = parent[_xfa_object.$getParent]();\n      }\n    }\n\n    const maxWidth = (node.w || availableSpace.width) - marginH;\n    const fontFinder = node[_xfa_object.$globalData].fontFinder;\n\n    if (node.value.exData && node.value.exData[_xfa_object.$content] && node.value.exData.contentType === \"text/html\") {\n      const res = layoutText(node.value.exData[_xfa_object.$content], font, margin, lineHeight, fontFinder, maxWidth);\n      width = res.width;\n      height = res.height;\n      isBroken = res.isBroken;\n    } else {\n      const text = node.value[_xfa_object.$text]();\n\n      if (text) {\n        const res = layoutText(text, font, margin, lineHeight, fontFinder, maxWidth);\n        width = res.width;\n        height = res.height;\n        isBroken = res.isBroken;\n      }\n    }\n\n    if (width !== null && !node.w) {\n      width += marginH;\n    }\n\n    if (height !== null && !node.h) {\n      height += marginV;\n    }\n  }\n\n  return {\n    w: width,\n    h: height,\n    isBroken\n  };\n}\n\nfunction computeBbox(node, html, availableSpace) {\n  let bbox;\n\n  if (node.w !== \"\" && node.h !== \"\") {\n    bbox = [node.x, node.y, node.w, node.h];\n  } else {\n    if (!availableSpace) {\n      return null;\n    }\n\n    let width = node.w;\n\n    if (width === \"\") {\n      if (node.maxW === 0) {\n        const parent = node[_xfa_object.$getSubformParent]();\n\n        if (parent.layout === \"position\" && parent.w !== \"\") {\n          width = 0;\n        } else {\n          width = node.minW;\n        }\n      } else {\n        width = Math.min(node.maxW, availableSpace.width);\n      }\n\n      html.attributes.style.width = measureToString(width);\n    }\n\n    let height = node.h;\n\n    if (height === \"\") {\n      if (node.maxH === 0) {\n        const parent = node[_xfa_object.$getSubformParent]();\n\n        if (parent.layout === \"position\" && parent.h !== \"\") {\n          height = 0;\n        } else {\n          height = node.minH;\n        }\n      } else {\n        height = Math.min(node.maxH, availableSpace.height);\n      }\n\n      html.attributes.style.height = measureToString(height);\n    }\n\n    bbox = [node.x, node.y, width, height];\n  }\n\n  return bbox;\n}\n\nfunction fixDimensions(node) {\n  const parent = node[_xfa_object.$getSubformParent]();\n\n  if (parent.layout && parent.layout.includes(\"row\")) {\n    const extra = parent[_xfa_object.$extra];\n    const colSpan = node.colSpan;\n    let width;\n\n    if (colSpan === -1) {\n      width = extra.columnWidths.slice(extra.currentColumn).reduce((a, w) => a + w, 0);\n    } else {\n      width = extra.columnWidths.slice(extra.currentColumn, extra.currentColumn + colSpan).reduce((a, w) => a + w, 0);\n    }\n\n    if (!isNaN(width)) {\n      node.w = width;\n    }\n  }\n\n  if (parent.layout && parent.layout !== \"position\") {\n    node.x = node.y = 0;\n  }\n\n  if (node.layout === \"table\") {\n    if (node.w === \"\" && Array.isArray(node.columnWidths)) {\n      node.w = node.columnWidths.reduce((a, x) => a + x, 0);\n    }\n  }\n}\n\nfunction layoutClass(node) {\n  switch (node.layout) {\n    case \"position\":\n      return \"xfaPosition\";\n\n    case \"lr-tb\":\n      return \"xfaLrTb\";\n\n    case \"rl-row\":\n      return \"xfaRlRow\";\n\n    case \"rl-tb\":\n      return \"xfaRlTb\";\n\n    case \"row\":\n      return \"xfaRow\";\n\n    case \"table\":\n      return \"xfaTable\";\n\n    case \"tb\":\n      return \"xfaTb\";\n\n    default:\n      return \"xfaPosition\";\n  }\n}\n\nfunction toStyle(node, ...names) {\n  const style = Object.create(null);\n\n  for (const name of names) {\n    const value = node[name];\n\n    if (value === null) {\n      continue;\n    }\n\n    if (converters.hasOwnProperty(name)) {\n      converters[name](node, style);\n      continue;\n    }\n\n    if (value instanceof _xfa_object.XFAObject) {\n      const newStyle = value[_xfa_object.$toStyle]();\n\n      if (newStyle) {\n        Object.assign(style, newStyle);\n      } else {\n        (0, _util.warn)(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n      }\n    }\n  }\n\n  return style;\n}\n\nfunction createWrapper(node, html) {\n  const {\n    attributes\n  } = html;\n  const {\n    style\n  } = attributes;\n  const wrapper = {\n    name: \"div\",\n    attributes: {\n      class: [\"xfaWrapper\"],\n      style: Object.create(null)\n    },\n    children: []\n  };\n  attributes.class.push(\"xfaWrapped\");\n\n  if (node.border) {\n    const {\n      widths,\n      insets\n    } = node.border[_xfa_object.$extra];\n    let width, height;\n    let top = insets[0];\n    let left = insets[3];\n    const insetsH = insets[0] + insets[2];\n    const insetsW = insets[1] + insets[3];\n\n    switch (node.border.hand) {\n      case \"even\":\n        top -= widths[0] / 2;\n        left -= widths[3] / 2;\n        width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;\n        height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;\n        break;\n\n      case \"left\":\n        top -= widths[0];\n        left -= widths[3];\n        width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`;\n        height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`;\n        break;\n\n      case \"right\":\n        width = insetsW ? `calc(100% - ${insetsW}px)` : \"100%\";\n        height = insetsH ? `calc(100% - ${insetsH}px)` : \"100%\";\n        break;\n    }\n\n    const classNames = [\"xfaBorder\"];\n\n    if (isPrintOnly(node.border)) {\n      classNames.push(\"xfaPrintOnly\");\n    }\n\n    const border = {\n      name: \"div\",\n      attributes: {\n        class: classNames,\n        style: {\n          top: `${top}px`,\n          left: `${left}px`,\n          width,\n          height\n        }\n      },\n      children: []\n    };\n\n    for (const key of [\"border\", \"borderWidth\", \"borderColor\", \"borderRadius\", \"borderStyle\"]) {\n      if (style[key] !== undefined) {\n        border.attributes.style[key] = style[key];\n        delete style[key];\n      }\n    }\n\n    wrapper.children.push(border, html);\n  } else {\n    wrapper.children.push(html);\n  }\n\n  for (const key of [\"background\", \"backgroundClip\", \"top\", \"left\", \"width\", \"height\", \"minWidth\", \"minHeight\", \"maxWidth\", \"maxHeight\", \"transform\", \"transformOrigin\", \"visibility\"]) {\n    if (style[key] !== undefined) {\n      wrapper.attributes.style[key] = style[key];\n      delete style[key];\n    }\n  }\n\n  if (style.position === \"absolute\") {\n    wrapper.attributes.style.position = \"absolute\";\n  } else {\n    wrapper.attributes.style.position = \"relative\";\n  }\n\n  delete style.position;\n\n  if (style.alignSelf) {\n    wrapper.attributes.style.alignSelf = style.alignSelf;\n    delete style.alignSelf;\n  }\n\n  return wrapper;\n}\n\nfunction fixTextIndent(styles) {\n  const indent = (0, _utils.getMeasurement)(styles.textIndent, \"0px\");\n\n  if (indent >= 0) {\n    return;\n  }\n\n  const align = styles.textAlign === \"right\" ? \"right\" : \"left\";\n  const name = \"padding\" + (align === \"left\" ? \"Left\" : \"Right\");\n  const padding = (0, _utils.getMeasurement)(styles[name], \"0px\");\n  styles[name] = `${padding - indent}px`;\n}\n\nfunction setAccess(node, classNames) {\n  switch (node.access) {\n    case \"nonInteractive\":\n      classNames.push(\"xfaNonInteractive\");\n      break;\n\n    case \"readOnly\":\n      classNames.push(\"xfaReadOnly\");\n      break;\n\n    case \"protected\":\n      classNames.push(\"xfaDisabled\");\n      break;\n  }\n}\n\nfunction isPrintOnly(node) {\n  return node.relevant.length > 0 && !node.relevant[0].excluded && node.relevant[0].viewname === \"print\";\n}\n\nfunction getCurrentPara(node) {\n  const stack = node[_xfa_object.$getTemplateRoot]()[_xfa_object.$extra].paraStack;\n\n  return stack.length ? stack.at(-1) : null;\n}\n\nfunction setPara(node, nodeStyle, value) {\n  if (value.attributes.class && value.attributes.class.includes(\"xfaRich\")) {\n    if (nodeStyle) {\n      if (node.h === \"\") {\n        nodeStyle.height = \"auto\";\n      }\n\n      if (node.w === \"\") {\n        nodeStyle.width = \"auto\";\n      }\n    }\n\n    const para = getCurrentPara(node);\n\n    if (para) {\n      const valueStyle = value.attributes.style;\n      valueStyle.display = \"flex\";\n      valueStyle.flexDirection = \"column\";\n\n      switch (para.vAlign) {\n        case \"top\":\n          valueStyle.justifyContent = \"start\";\n          break;\n\n        case \"bottom\":\n          valueStyle.justifyContent = \"end\";\n          break;\n\n        case \"middle\":\n          valueStyle.justifyContent = \"center\";\n          break;\n      }\n\n      const paraStyle = para[_xfa_object.$toStyle]();\n\n      for (const [key, val] of Object.entries(paraStyle)) {\n        if (!(key in valueStyle)) {\n          valueStyle[key] = val;\n        }\n      }\n    }\n  }\n}\n\nfunction setFontFamily(xfaFont, node, fontFinder, style) {\n  if (!fontFinder) {\n    delete style.fontFamily;\n    return;\n  }\n\n  const name = (0, _utils.stripQuotes)(xfaFont.typeface);\n  style.fontFamily = `\"${name}\"`;\n  const typeface = fontFinder.find(name);\n\n  if (typeface) {\n    const {\n      fontFamily\n    } = typeface.regular.cssFontInfo;\n\n    if (fontFamily !== name) {\n      style.fontFamily = `\"${fontFamily}\"`;\n    }\n\n    const para = getCurrentPara(node);\n\n    if (para && para.lineHeight !== \"\") {\n      return;\n    }\n\n    if (style.lineHeight) {\n      return;\n    }\n\n    const pdfFont = (0, _fonts.selectFont)(xfaFont, typeface);\n\n    if (pdfFont) {\n      style.lineHeight = Math.max(1.2, pdfFont.lineHeight);\n    }\n  }\n}\n\nfunction fixURL(str) {\n  const absoluteUrl = (0, _util.createValidAbsoluteUrl)(str, null, {\n    addDefaultProtocol: true,\n    tryConvertEncoding: true\n  });\n  return absoluteUrl ? absoluteUrl.href : null;\n}\n\n/***/ }),\n/* 85 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FontFinder = void 0;\nexports.getMetrics = getMetrics;\nexports.selectFont = selectFont;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _utils = __w_pdfjs_require__(78);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass FontFinder {\n  constructor(pdfFonts) {\n    this.fonts = new Map();\n    this.cache = new Map();\n    this.warned = new Set();\n    this.defaultFont = null;\n    this.add(pdfFonts);\n  }\n\n  add(pdfFonts, reallyMissingFonts = null) {\n    for (const pdfFont of pdfFonts) {\n      this.addPdfFont(pdfFont);\n    }\n\n    for (const pdfFont of this.fonts.values()) {\n      if (!pdfFont.regular) {\n        pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic;\n      }\n    }\n\n    if (!reallyMissingFonts || reallyMissingFonts.size === 0) {\n      return;\n    }\n\n    const myriad = this.fonts.get(\"PdfJS-Fallback-PdfJS-XFA\");\n\n    for (const missing of reallyMissingFonts) {\n      this.fonts.set(missing, myriad);\n    }\n  }\n\n  addPdfFont(pdfFont) {\n    const cssFontInfo = pdfFont.cssFontInfo;\n    const name = cssFontInfo.fontFamily;\n    let font = this.fonts.get(name);\n\n    if (!font) {\n      font = Object.create(null);\n      this.fonts.set(name, font);\n\n      if (!this.defaultFont) {\n        this.defaultFont = font;\n      }\n    }\n\n    let property = \"\";\n    const fontWeight = parseFloat(cssFontInfo.fontWeight);\n\n    if (parseFloat(cssFontInfo.italicAngle) !== 0) {\n      property = fontWeight >= 700 ? \"bolditalic\" : \"italic\";\n    } else if (fontWeight >= 700) {\n      property = \"bold\";\n    }\n\n    if (!property) {\n      if (pdfFont.name.includes(\"Bold\") || pdfFont.psName && pdfFont.psName.includes(\"Bold\")) {\n        property = \"bold\";\n      }\n\n      if (pdfFont.name.includes(\"Italic\") || pdfFont.name.endsWith(\"It\") || pdfFont.psName && (pdfFont.psName.includes(\"Italic\") || pdfFont.psName.endsWith(\"It\"))) {\n        property += \"italic\";\n      }\n    }\n\n    if (!property) {\n      property = \"regular\";\n    }\n\n    font[property] = pdfFont;\n  }\n\n  getDefault() {\n    return this.defaultFont;\n  }\n\n  find(fontName, mustWarn = true) {\n    let font = this.fonts.get(fontName) || this.cache.get(fontName);\n\n    if (font) {\n      return font;\n    }\n\n    const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi;\n    let name = fontName.replace(pattern, \"\");\n    font = this.fonts.get(name);\n\n    if (font) {\n      this.cache.set(fontName, font);\n      return font;\n    }\n\n    name = name.toLowerCase();\n    const maybe = [];\n\n    for (const [family, pdfFont] of this.fonts.entries()) {\n      if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n        maybe.push(pdfFont);\n      }\n    }\n\n    if (maybe.length === 0) {\n      for (const [, pdfFont] of this.fonts.entries()) {\n        if (pdfFont.regular.name && pdfFont.regular.name.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n\n    if (maybe.length === 0) {\n      name = name.replace(/psmt|mt/gi, \"\");\n\n      for (const [family, pdfFont] of this.fonts.entries()) {\n        if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n\n    if (maybe.length === 0) {\n      for (const pdfFont of this.fonts.values()) {\n        if (pdfFont.regular.name && pdfFont.regular.name.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n          maybe.push(pdfFont);\n        }\n      }\n    }\n\n    if (maybe.length >= 1) {\n      if (maybe.length !== 1 && mustWarn) {\n        (0, _util.warn)(`XFA - Too many choices to guess the correct font: ${fontName}`);\n      }\n\n      this.cache.set(fontName, maybe[0]);\n      return maybe[0];\n    }\n\n    if (mustWarn && !this.warned.has(fontName)) {\n      this.warned.add(fontName);\n      (0, _util.warn)(`XFA - Cannot find the font: ${fontName}`);\n    }\n\n    return null;\n  }\n\n}\n\nexports.FontFinder = FontFinder;\n\nfunction selectFont(xfaFont, typeface) {\n  if (xfaFont.posture === \"italic\") {\n    if (xfaFont.weight === \"bold\") {\n      return typeface.bolditalic;\n    }\n\n    return typeface.italic;\n  } else if (xfaFont.weight === \"bold\") {\n    return typeface.bold;\n  }\n\n  return typeface.regular;\n}\n\nfunction getMetrics(xfaFont, real = false) {\n  let pdfFont = null;\n\n  if (xfaFont) {\n    const name = (0, _utils.stripQuotes)(xfaFont.typeface);\n\n    const typeface = xfaFont[_xfa_object.$globalData].fontFinder.find(name);\n\n    pdfFont = selectFont(xfaFont, typeface);\n  }\n\n  if (!pdfFont) {\n    return {\n      lineHeight: 12,\n      lineGap: 2,\n      lineNoGap: 10\n    };\n  }\n\n  const size = xfaFont.size || 10;\n  const lineHeight = pdfFont.lineHeight ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight) : 1.2;\n  const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n  return {\n    lineHeight: lineHeight * size,\n    lineGap: lineGap * size,\n    lineNoGap: Math.max(1, lineHeight - lineGap) * size\n  };\n}\n\n/***/ }),\n/* 86 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.TextMeasure = void 0;\n\nvar _fonts = __w_pdfjs_require__(85);\n\nconst WIDTH_FACTOR = 1.02;\n\nclass FontInfo {\n  constructor(xfaFont, margin, lineHeight, fontFinder) {\n    this.lineHeight = lineHeight;\n    this.paraMargin = margin || {\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0\n    };\n\n    if (!xfaFont) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n      return;\n    }\n\n    this.xfaFont = {\n      typeface: xfaFont.typeface,\n      posture: xfaFont.posture,\n      weight: xfaFont.weight,\n      size: xfaFont.size,\n      letterSpacing: xfaFont.letterSpacing\n    };\n    const typeface = fontFinder.find(xfaFont.typeface);\n\n    if (!typeface) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n      return;\n    }\n\n    this.pdfFont = (0, _fonts.selectFont)(xfaFont, typeface);\n\n    if (!this.pdfFont) {\n      [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n    }\n  }\n\n  defaultFont(fontFinder) {\n    const font = fontFinder.find(\"Helvetica\", false) || fontFinder.find(\"Myriad Pro\", false) || fontFinder.find(\"Arial\", false) || fontFinder.getDefault();\n\n    if (font && font.regular) {\n      const pdfFont = font.regular;\n      const info = pdfFont.cssFontInfo;\n      const xfaFont = {\n        typeface: info.fontFamily,\n        posture: \"normal\",\n        weight: \"normal\",\n        size: 10,\n        letterSpacing: 0\n      };\n      return [pdfFont, xfaFont];\n    }\n\n    const xfaFont = {\n      typeface: \"Courier\",\n      posture: \"normal\",\n      weight: \"normal\",\n      size: 10,\n      letterSpacing: 0\n    };\n    return [null, xfaFont];\n  }\n\n}\n\nclass FontSelector {\n  constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder) {\n    this.fontFinder = fontFinder;\n    this.stack = [new FontInfo(defaultXfaFont, defaultParaMargin, defaultLineHeight, fontFinder)];\n  }\n\n  pushData(xfaFont, margin, lineHeight) {\n    const lastFont = this.stack.at(-1);\n\n    for (const name of [\"typeface\", \"posture\", \"weight\", \"size\", \"letterSpacing\"]) {\n      if (!xfaFont[name]) {\n        xfaFont[name] = lastFont.xfaFont[name];\n      }\n    }\n\n    for (const name of [\"top\", \"bottom\", \"left\", \"right\"]) {\n      if (isNaN(margin[name])) {\n        margin[name] = lastFont.paraMargin[name];\n      }\n    }\n\n    const fontInfo = new FontInfo(xfaFont, margin, lineHeight || lastFont.lineHeight, this.fontFinder);\n\n    if (!fontInfo.pdfFont) {\n      fontInfo.pdfFont = lastFont.pdfFont;\n    }\n\n    this.stack.push(fontInfo);\n  }\n\n  popFont() {\n    this.stack.pop();\n  }\n\n  topFont() {\n    return this.stack.at(-1);\n  }\n\n}\n\nclass TextMeasure {\n  constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) {\n    this.glyphs = [];\n    this.fontSelector = new FontSelector(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts);\n    this.extraHeight = 0;\n  }\n\n  pushData(xfaFont, margin, lineHeight) {\n    this.fontSelector.pushData(xfaFont, margin, lineHeight);\n  }\n\n  popFont(xfaFont) {\n    return this.fontSelector.popFont();\n  }\n\n  addPara() {\n    const lastFont = this.fontSelector.topFont();\n    this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom;\n  }\n\n  addString(str) {\n    if (!str) {\n      return;\n    }\n\n    const lastFont = this.fontSelector.topFont();\n    const fontSize = lastFont.xfaFont.size;\n\n    if (lastFont.pdfFont) {\n      const letterSpacing = lastFont.xfaFont.letterSpacing;\n      const pdfFont = lastFont.pdfFont;\n      const fontLineHeight = pdfFont.lineHeight || 1.2;\n      const lineHeight = lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize;\n      const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n      const noGap = fontLineHeight - lineGap;\n      const firstLineHeight = Math.max(1, noGap) * fontSize;\n      const scale = fontSize / 1000;\n      const fallbackWidth = pdfFont.defaultWidth || pdfFont.charsToGlyphs(\" \")[0].width;\n\n      for (const line of str.split(/[\\u2029\\n]/)) {\n        const encodedLine = pdfFont.encodeString(line).join(\"\");\n        const glyphs = pdfFont.charsToGlyphs(encodedLine);\n\n        for (const glyph of glyphs) {\n          const width = glyph.width || fallbackWidth;\n          this.glyphs.push([width * scale + letterSpacing, lineHeight, firstLineHeight, glyph.unicode, false]);\n        }\n\n        this.glyphs.push([0, 0, 0, \"\\n\", true]);\n      }\n\n      this.glyphs.pop();\n      return;\n    }\n\n    for (const line of str.split(/[\\u2029\\n]/)) {\n      for (const char of line.split(\"\")) {\n        this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]);\n      }\n\n      this.glyphs.push([0, 0, 0, \"\\n\", true]);\n    }\n\n    this.glyphs.pop();\n  }\n\n  compute(maxWidth) {\n    let lastSpacePos = -1,\n        lastSpaceWidth = 0,\n        width = 0,\n        height = 0,\n        currentLineWidth = 0,\n        currentLineHeight = 0;\n    let isBroken = false;\n    let isFirstLine = true;\n\n    for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n      const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] = this.glyphs[i];\n      const isSpace = char === \" \";\n      const glyphHeight = isFirstLine ? firstLineHeight : lineHeight;\n\n      if (isEOL) {\n        width = Math.max(width, currentLineWidth);\n        currentLineWidth = 0;\n        height += currentLineHeight;\n        currentLineHeight = glyphHeight;\n        lastSpacePos = -1;\n        lastSpaceWidth = 0;\n        isFirstLine = false;\n        continue;\n      }\n\n      if (isSpace) {\n        if (currentLineWidth + glyphWidth > maxWidth) {\n          width = Math.max(width, currentLineWidth);\n          currentLineWidth = 0;\n          height += currentLineHeight;\n          currentLineHeight = glyphHeight;\n          lastSpacePos = -1;\n          lastSpaceWidth = 0;\n          isBroken = true;\n          isFirstLine = false;\n        } else {\n          currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n          lastSpaceWidth = currentLineWidth;\n          currentLineWidth += glyphWidth;\n          lastSpacePos = i;\n        }\n\n        continue;\n      }\n\n      if (currentLineWidth + glyphWidth > maxWidth) {\n        height += currentLineHeight;\n        currentLineHeight = glyphHeight;\n\n        if (lastSpacePos !== -1) {\n          i = lastSpacePos;\n          width = Math.max(width, lastSpaceWidth);\n          currentLineWidth = 0;\n          lastSpacePos = -1;\n          lastSpaceWidth = 0;\n        } else {\n          width = Math.max(width, currentLineWidth);\n          currentLineWidth = glyphWidth;\n        }\n\n        isBroken = true;\n        isFirstLine = false;\n        continue;\n      }\n\n      currentLineWidth += glyphWidth;\n      currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n    }\n\n    width = Math.max(width, currentLineWidth);\n    height += currentLineHeight + this.extraHeight;\n    return {\n      width: WIDTH_FACTOR * width,\n      height,\n      isBroken\n    };\n  }\n\n}\n\nexports.TextMeasure = TextMeasure;\n\n/***/ }),\n/* 87 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DataHandler = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nclass DataHandler {\n  constructor(root, data) {\n    this.data = data;\n    this.dataset = root.datasets || null;\n  }\n\n  serialize(storage) {\n    const stack = [[-1, this.data[_xfa_object.$getChildren]()]];\n\n    while (stack.length > 0) {\n      const last = stack.at(-1);\n      const [i, children] = last;\n\n      if (i + 1 === children.length) {\n        stack.pop();\n        continue;\n      }\n\n      const child = children[++last[0]];\n      const storageEntry = storage.get(child[_xfa_object.$uid]);\n\n      if (storageEntry) {\n        child[_xfa_object.$setValue](storageEntry);\n      } else {\n        const attributes = child[_xfa_object.$getAttributes]();\n\n        for (const value of attributes.values()) {\n          const entry = storage.get(value[_xfa_object.$uid]);\n\n          if (entry) {\n            value[_xfa_object.$setValue](entry);\n\n            break;\n          }\n        }\n      }\n\n      const nodes = child[_xfa_object.$getChildren]();\n\n      if (nodes.length > 0) {\n        stack.push([-1, nodes]);\n      }\n    }\n\n    const buf = [`<xfa:datasets xmlns:xfa=\"http://www.xfa.org/schema/xfa-data/1.0/\">`];\n\n    if (this.dataset) {\n      for (const child of this.dataset[_xfa_object.$getChildren]()) {\n        if (child[_xfa_object.$nodeName] !== \"data\") {\n          child[_xfa_object.$toString](buf);\n        }\n      }\n    }\n\n    this.data[_xfa_object.$toString](buf);\n\n    buf.push(\"</xfa:datasets>\");\n    return buf.join(\"\");\n  }\n\n}\n\nexports.DataHandler = DataHandler;\n\n/***/ }),\n/* 88 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XFAParser = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _xml_parser = __w_pdfjs_require__(66);\n\nvar _builder = __w_pdfjs_require__(89);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass XFAParser extends _xml_parser.XMLParserBase {\n  constructor(rootNameSpace = null, richText = false) {\n    super();\n    this._builder = new _builder.Builder(rootNameSpace);\n    this._stack = [];\n    this._globalData = {\n      usedTypefaces: new Set()\n    };\n    this._ids = new Map();\n    this._current = this._builder.buildRoot(this._ids);\n    this._errorCode = _xml_parser.XMLParserErrorCode.NoError;\n    this._whiteRegex = /^\\s+$/;\n    this._nbsps = /\\xa0+/g;\n    this._richText = richText;\n  }\n\n  parse(data) {\n    this.parseXml(data);\n\n    if (this._errorCode !== _xml_parser.XMLParserErrorCode.NoError) {\n      return undefined;\n    }\n\n    this._current[_xfa_object.$finalize]();\n\n    return this._current.element;\n  }\n\n  onText(text) {\n    text = text.replace(this._nbsps, match => match.slice(1) + \" \");\n\n    if (this._richText || this._current[_xfa_object.$acceptWhitespace]()) {\n      this._current[_xfa_object.$onText](text, this._richText);\n\n      return;\n    }\n\n    if (this._whiteRegex.test(text)) {\n      return;\n    }\n\n    this._current[_xfa_object.$onText](text.trim());\n  }\n\n  onCdata(text) {\n    this._current[_xfa_object.$onText](text);\n  }\n\n  _mkAttributes(attributes, tagName) {\n    let namespace = null;\n    let prefixes = null;\n    const attributeObj = Object.create({});\n\n    for (const {\n      name,\n      value\n    } of attributes) {\n      if (name === \"xmlns\") {\n        if (!namespace) {\n          namespace = value;\n        } else {\n          (0, _util.warn)(`XFA - multiple namespace definition in <${tagName}>`);\n        }\n      } else if (name.startsWith(\"xmlns:\")) {\n        const prefix = name.substring(\"xmlns:\".length);\n\n        if (!prefixes) {\n          prefixes = [];\n        }\n\n        prefixes.push({\n          prefix,\n          value\n        });\n      } else {\n        const i = name.indexOf(\":\");\n\n        if (i === -1) {\n          attributeObj[name] = value;\n        } else {\n          let nsAttrs = attributeObj[_xfa_object.$nsAttributes];\n\n          if (!nsAttrs) {\n            nsAttrs = attributeObj[_xfa_object.$nsAttributes] = Object.create(null);\n          }\n\n          const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n          let attrs = nsAttrs[ns];\n\n          if (!attrs) {\n            attrs = nsAttrs[ns] = Object.create(null);\n          }\n\n          attrs[attrName] = value;\n        }\n      }\n    }\n\n    return [namespace, prefixes, attributeObj];\n  }\n\n  _getNameAndPrefix(name, nsAgnostic) {\n    const i = name.indexOf(\":\");\n\n    if (i === -1) {\n      return [name, null];\n    }\n\n    return [name.substring(i + 1), nsAgnostic ? \"\" : name.substring(0, i)];\n  }\n\n  onBeginElement(tagName, attributes, isEmpty) {\n    const [namespace, prefixes, attributesObj] = this._mkAttributes(attributes, tagName);\n\n    const [name, nsPrefix] = this._getNameAndPrefix(tagName, this._builder.isNsAgnostic());\n\n    const node = this._builder.build({\n      nsPrefix,\n      name,\n      attributes: attributesObj,\n      namespace,\n      prefixes\n    });\n\n    node[_xfa_object.$globalData] = this._globalData;\n\n    if (isEmpty) {\n      node[_xfa_object.$finalize]();\n\n      if (this._current[_xfa_object.$onChild](node)) {\n        node[_xfa_object.$setId](this._ids);\n      }\n\n      node[_xfa_object.$clean](this._builder);\n\n      return;\n    }\n\n    this._stack.push(this._current);\n\n    this._current = node;\n  }\n\n  onEndElement(name) {\n    const node = this._current;\n\n    if (node[_xfa_object.$isCDATAXml]() && typeof node[_xfa_object.$content] === \"string\") {\n      const parser = new XFAParser();\n      parser._globalData = this._globalData;\n      const root = parser.parse(node[_xfa_object.$content]);\n      node[_xfa_object.$content] = null;\n\n      node[_xfa_object.$onChild](root);\n    }\n\n    node[_xfa_object.$finalize]();\n\n    this._current = this._stack.pop();\n\n    if (this._current[_xfa_object.$onChild](node)) {\n      node[_xfa_object.$setId](this._ids);\n    }\n\n    node[_xfa_object.$clean](this._builder);\n  }\n\n  onError(code) {\n    this._errorCode = code;\n  }\n\n}\n\nexports.XFAParser = XFAParser;\n\n/***/ }),\n/* 89 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Builder = void 0;\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _setup = __w_pdfjs_require__(90);\n\nvar _template = __w_pdfjs_require__(82);\n\nvar _unknown = __w_pdfjs_require__(99);\n\nvar _util = __w_pdfjs_require__(2);\n\nclass Root extends _xfa_object.XFAObject {\n  constructor(ids) {\n    super(-1, \"root\", Object.create(null));\n    this.element = null;\n    this[_xfa_object.$ids] = ids;\n  }\n\n  [_xfa_object.$onChild](child) {\n    this.element = child;\n    return true;\n  }\n\n  [_xfa_object.$finalize]() {\n    super[_xfa_object.$finalize]();\n\n    if (this.element.template instanceof _template.Template) {\n      this[_xfa_object.$ids].set(_xfa_object.$root, this.element);\n\n      this.element.template[_xfa_object.$resolvePrototypes](this[_xfa_object.$ids]);\n\n      this.element.template[_xfa_object.$ids] = this[_xfa_object.$ids];\n    }\n  }\n\n}\n\nclass Empty extends _xfa_object.XFAObject {\n  constructor() {\n    super(-1, \"\", Object.create(null));\n  }\n\n  [_xfa_object.$onChild](_) {\n    return false;\n  }\n\n}\n\nclass Builder {\n  constructor(rootNameSpace = null) {\n    this._namespaceStack = [];\n    this._nsAgnosticLevel = 0;\n    this._namespacePrefixes = new Map();\n    this._namespaces = new Map();\n    this._nextNsId = Math.max(...Object.values(_namespaces.NamespaceIds).map(({\n      id\n    }) => id));\n    this._currentNamespace = rootNameSpace || new _unknown.UnknownNamespace(++this._nextNsId);\n  }\n\n  buildRoot(ids) {\n    return new Root(ids);\n  }\n\n  build({\n    nsPrefix,\n    name,\n    attributes,\n    namespace,\n    prefixes\n  }) {\n    const hasNamespaceDef = namespace !== null;\n\n    if (hasNamespaceDef) {\n      this._namespaceStack.push(this._currentNamespace);\n\n      this._currentNamespace = this._searchNamespace(namespace);\n    }\n\n    if (prefixes) {\n      this._addNamespacePrefix(prefixes);\n    }\n\n    if (attributes.hasOwnProperty(_xfa_object.$nsAttributes)) {\n      const dataTemplate = _setup.NamespaceSetUp.datasets;\n      const nsAttrs = attributes[_xfa_object.$nsAttributes];\n      let xfaAttrs = null;\n\n      for (const [ns, attrs] of Object.entries(nsAttrs)) {\n        const nsToUse = this._getNamespaceToUse(ns);\n\n        if (nsToUse === dataTemplate) {\n          xfaAttrs = {\n            xfa: attrs\n          };\n          break;\n        }\n      }\n\n      if (xfaAttrs) {\n        attributes[_xfa_object.$nsAttributes] = xfaAttrs;\n      } else {\n        delete attributes[_xfa_object.$nsAttributes];\n      }\n    }\n\n    const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n\n    const node = namespaceToUse && namespaceToUse[_namespaces.$buildXFAObject](name, attributes) || new Empty();\n\n    if (node[_xfa_object.$isNsAgnostic]()) {\n      this._nsAgnosticLevel++;\n    }\n\n    if (hasNamespaceDef || prefixes || node[_xfa_object.$isNsAgnostic]()) {\n      node[_xfa_object.$cleanup] = {\n        hasNamespace: hasNamespaceDef,\n        prefixes,\n        nsAgnostic: node[_xfa_object.$isNsAgnostic]()\n      };\n    }\n\n    return node;\n  }\n\n  isNsAgnostic() {\n    return this._nsAgnosticLevel > 0;\n  }\n\n  _searchNamespace(nsName) {\n    let ns = this._namespaces.get(nsName);\n\n    if (ns) {\n      return ns;\n    }\n\n    for (const [name, {\n      check\n    }] of Object.entries(_namespaces.NamespaceIds)) {\n      if (check(nsName)) {\n        ns = _setup.NamespaceSetUp[name];\n\n        if (ns) {\n          this._namespaces.set(nsName, ns);\n\n          return ns;\n        }\n\n        break;\n      }\n    }\n\n    ns = new _unknown.UnknownNamespace(++this._nextNsId);\n\n    this._namespaces.set(nsName, ns);\n\n    return ns;\n  }\n\n  _addNamespacePrefix(prefixes) {\n    for (const {\n      prefix,\n      value\n    } of prefixes) {\n      const namespace = this._searchNamespace(value);\n\n      let prefixStack = this._namespacePrefixes.get(prefix);\n\n      if (!prefixStack) {\n        prefixStack = [];\n\n        this._namespacePrefixes.set(prefix, prefixStack);\n      }\n\n      prefixStack.push(namespace);\n    }\n  }\n\n  _getNamespaceToUse(prefix) {\n    if (!prefix) {\n      return this._currentNamespace;\n    }\n\n    const prefixStack = this._namespacePrefixes.get(prefix);\n\n    if (prefixStack && prefixStack.length > 0) {\n      return prefixStack.at(-1);\n    }\n\n    (0, _util.warn)(`Unknown namespace prefix: ${prefix}.`);\n    return null;\n  }\n\n  clean(data) {\n    const {\n      hasNamespace,\n      prefixes,\n      nsAgnostic\n    } = data;\n\n    if (hasNamespace) {\n      this._currentNamespace = this._namespaceStack.pop();\n    }\n\n    if (prefixes) {\n      prefixes.forEach(({\n        prefix\n      }) => {\n        this._namespacePrefixes.get(prefix).pop();\n      });\n    }\n\n    if (nsAgnostic) {\n      this._nsAgnosticLevel--;\n    }\n  }\n\n}\n\nexports.Builder = Builder;\n\n/***/ }),\n/* 90 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.NamespaceSetUp = void 0;\n\nvar _config = __w_pdfjs_require__(91);\n\nvar _connection_set = __w_pdfjs_require__(92);\n\nvar _datasets = __w_pdfjs_require__(93);\n\nvar _locale_set = __w_pdfjs_require__(94);\n\nvar _signature = __w_pdfjs_require__(95);\n\nvar _stylesheet = __w_pdfjs_require__(96);\n\nvar _template = __w_pdfjs_require__(82);\n\nvar _xdp = __w_pdfjs_require__(97);\n\nvar _xhtml = __w_pdfjs_require__(98);\n\nconst NamespaceSetUp = {\n  config: _config.ConfigNamespace,\n  connection: _connection_set.ConnectionSetNamespace,\n  datasets: _datasets.DatasetsNamespace,\n  localeSet: _locale_set.LocaleSetNamespace,\n  signature: _signature.SignatureNamespace,\n  stylesheet: _stylesheet.StylesheetNamespace,\n  template: _template.TemplateNamespace,\n  xdp: _xdp.XdpNamespace,\n  xhtml: _xhtml.XhtmlNamespace\n};\nexports.NamespaceSetUp = NamespaceSetUp;\n\n/***/ }),\n/* 91 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ConfigNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _utils = __w_pdfjs_require__(78);\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CONFIG_NS_ID = _namespaces.NamespaceIds.config.id;\n\nclass Acrobat extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"acrobat\", true);\n    this.acrobat7 = null;\n    this.autoSave = null;\n    this.common = null;\n    this.validate = null;\n    this.validateApprovalSignatures = null;\n    this.submitUrl = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Acrobat7 extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"acrobat7\", true);\n    this.dynamicRender = null;\n  }\n\n}\n\nclass ADBE_JSConsole extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n  }\n\n}\n\nclass ADBE_JSDebugger extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n  }\n\n}\n\nclass AddSilentPrint extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"addSilentPrint\");\n  }\n\n}\n\nclass AddViewerPreferences extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"addViewerPreferences\");\n  }\n\n}\n\nclass AdjustData extends _xfa_object.Option10 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"adjustData\");\n  }\n\n}\n\nclass AdobeExtensionLevel extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n  }\n\n}\n\nclass Agent extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"agent\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.common = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass AlwaysEmbed extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"alwaysEmbed\");\n  }\n\n}\n\nclass Amd extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"amd\");\n  }\n\n}\n\nclass Area extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"area\");\n    this.level = (0, _utils.getInteger)({\n      data: attributes.level,\n      defaultValue: 0,\n      validate: n => n >= 1 && n <= 3\n    });\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"\", \"barcode\", \"coreinit\", \"deviceDriver\", \"font\", \"general\", \"layout\", \"merge\", \"script\", \"signature\", \"sourceSet\", \"templateCache\"]);\n  }\n\n}\n\nclass Attributes extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n  }\n\n}\n\nclass AutoSave extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n  }\n\n}\n\nclass Base extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"base\");\n  }\n\n}\n\nclass BatchOutput extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"batchOutput\");\n    this.format = (0, _utils.getStringOption)(attributes.format, [\"none\", \"concat\", \"zip\", \"zipCompress\"]);\n  }\n\n}\n\nclass BehaviorOverride extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"behaviorOverride\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = new Map(this[_xfa_object.$content].trim().split(/\\s+/).filter(x => x.includes(\":\")).map(x => x.split(\":\", 2)));\n  }\n\n}\n\nclass Cache extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"cache\", true);\n    this.templateCache = null;\n  }\n\n}\n\nclass Change extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"change\");\n  }\n\n}\n\nclass Common extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"common\", true);\n    this.data = null;\n    this.locale = null;\n    this.localeSet = null;\n    this.messaging = null;\n    this.suppressBanner = null;\n    this.template = null;\n    this.validationMessaging = null;\n    this.versionControl = null;\n    this.log = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Compress extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compress\");\n    this.scope = (0, _utils.getStringOption)(attributes.scope, [\"imageOnly\", \"document\"]);\n  }\n\n}\n\nclass CompressLogicalStructure extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compressLogicalStructure\");\n  }\n\n}\n\nclass CompressObjectStream extends _xfa_object.Option10 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compressObjectStream\");\n  }\n\n}\n\nclass Compression extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"compression\", true);\n    this.compressLogicalStructure = null;\n    this.compressObjectStream = null;\n    this.level = null;\n    this.type = null;\n  }\n\n}\n\nclass Config extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"config\", true);\n    this.acrobat = null;\n    this.present = null;\n    this.trace = null;\n    this.agent = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Conformance extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n  }\n\n}\n\nclass ContentCopy extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"contentCopy\");\n  }\n\n}\n\nclass Copies extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n  }\n\n}\n\nclass Creator extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"creator\");\n  }\n\n}\n\nclass CurrentPage extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n  }\n\n}\n\nclass Data extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"data\", true);\n    this.adjustData = null;\n    this.attributes = null;\n    this.incrementalLoad = null;\n    this.outputXSL = null;\n    this.range = null;\n    this.record = null;\n    this.startNode = null;\n    this.uri = null;\n    this.window = null;\n    this.xsl = null;\n    this.excludeNS = new _xfa_object.XFAObjectArray();\n    this.transform = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Debug extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"debug\", true);\n    this.uri = null;\n  }\n\n}\n\nclass DefaultTypeface extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"defaultTypeface\");\n    this.writingScript = (0, _utils.getStringOption)(attributes.writingScript, [\"*\", \"Arabic\", \"Cyrillic\", \"EastEuropeanRoman\", \"Greek\", \"Hebrew\", \"Japanese\", \"Korean\", \"Roman\", \"SimplifiedChinese\", \"Thai\", \"TraditionalChinese\", \"Vietnamese\"]);\n  }\n\n}\n\nclass Destination extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"destination\", [\"pdf\", \"pcl\", \"ps\", \"webClient\", \"zpl\"]);\n  }\n\n}\n\nclass DocumentAssembly extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"documentAssembly\");\n  }\n\n}\n\nclass Driver extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"driver\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n\n}\n\nclass DuplexOption extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"duplexOption\", [\"simplex\", \"duplexFlipLongEdge\", \"duplexFlipShortEdge\"]);\n  }\n\n}\n\nclass DynamicRender extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n  }\n\n}\n\nclass Embed extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"embed\");\n  }\n\n}\n\nclass Encrypt extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encrypt\");\n  }\n\n}\n\nclass Encryption extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encryption\", true);\n    this.encrypt = null;\n    this.encryptionLevel = null;\n    this.permissions = null;\n  }\n\n}\n\nclass EncryptionLevel extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n  }\n\n}\n\nclass Enforce extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"enforce\");\n  }\n\n}\n\nclass Equate extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"equate\");\n    this.force = (0, _utils.getInteger)({\n      data: attributes.force,\n      defaultValue: 1,\n      validate: n => n === 0\n    });\n    this.from = attributes.from || \"\";\n    this.to = attributes.to || \"\";\n  }\n\n}\n\nclass EquateRange extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"equateRange\");\n    this.from = attributes.from || \"\";\n    this.to = attributes.to || \"\";\n    this._unicodeRange = attributes.unicodeRange || \"\";\n  }\n\n  get unicodeRange() {\n    const ranges = [];\n    const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n    const unicodeRange = this._unicodeRange;\n\n    for (let range of unicodeRange.split(\",\").map(x => x.trim()).filter(x => !!x)) {\n      range = range.split(\"-\", 2).map(x => {\n        const found = x.match(unicodeRegex);\n\n        if (!found) {\n          return 0;\n        }\n\n        return parseInt(found[1], 16);\n      });\n\n      if (range.length === 1) {\n        range.push(range[0]);\n      }\n\n      ranges.push(range);\n    }\n\n    return (0, _util.shadow)(this, \"unicodeRange\", ranges);\n  }\n\n}\n\nclass Exclude extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"exclude\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/).filter(x => x && [\"calculate\", \"close\", \"enter\", \"exit\", \"initialize\", \"ready\", \"validate\"].includes(x));\n  }\n\n}\n\nclass ExcludeNS extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"excludeNS\");\n  }\n\n}\n\nclass FlipLabel extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n  }\n\n}\n\nclass FontInfo extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"fontInfo\", true);\n    this.embed = null;\n    this.map = null;\n    this.subsetBelow = null;\n    this.alwaysEmbed = new _xfa_object.XFAObjectArray();\n    this.defaultTypeface = new _xfa_object.XFAObjectArray();\n    this.neverEmbed = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass FormFieldFilling extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"formFieldFilling\");\n  }\n\n}\n\nclass GroupParent extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"groupParent\");\n  }\n\n}\n\nclass IfEmpty extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ifEmpty\", [\"dataValue\", \"dataGroup\", \"ignore\", \"remove\"]);\n  }\n\n}\n\nclass IncludeXDPContent extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"includeXDPContent\");\n  }\n\n}\n\nclass IncrementalLoad extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n  }\n\n}\n\nclass IncrementalMerge extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"incrementalMerge\");\n  }\n\n}\n\nclass Interactive extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"interactive\");\n  }\n\n}\n\nclass Jog extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n  }\n\n}\n\nclass LabelPrinter extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"labelPrinter\", true);\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n    this.batchOutput = null;\n    this.flipLabel = null;\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Layout extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n  }\n\n}\n\nclass Level extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n  }\n\n}\n\nclass Linearized extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"linearized\");\n  }\n\n}\n\nclass Locale extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"locale\");\n  }\n\n}\n\nclass LocaleSet extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"localeSet\");\n  }\n\n}\n\nclass Log extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"log\", true);\n    this.mode = null;\n    this.threshold = null;\n    this.to = null;\n    this.uri = null;\n  }\n\n}\n\nclass MapElement extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"map\", true);\n    this.equate = new _xfa_object.XFAObjectArray();\n    this.equateRange = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass MediumInfo extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"mediumInfo\", true);\n    this.map = null;\n  }\n\n}\n\nclass Message extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"message\", true);\n    this.msgId = null;\n    this.severity = null;\n  }\n\n}\n\nclass Messaging extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"messaging\", true);\n    this.message = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Mode extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n  }\n\n}\n\nclass ModifyAnnots extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"modifyAnnots\");\n  }\n\n}\n\nclass MsgId extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n  }\n\n}\n\nclass NameAttr extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"nameAttr\");\n  }\n\n}\n\nclass NeverEmbed extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"neverEmbed\");\n  }\n\n}\n\nclass NumberOfCopies extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n  }\n\n}\n\nclass OpenAction extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"openAction\", true);\n    this.destination = null;\n  }\n\n}\n\nclass Output extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"output\", true);\n    this.to = null;\n    this.type = null;\n    this.uri = null;\n  }\n\n}\n\nclass OutputBin extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"outputBin\");\n  }\n\n}\n\nclass OutputXSL extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"outputXSL\", true);\n    this.uri = null;\n  }\n\n}\n\nclass Overprint extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n  }\n\n}\n\nclass Packets extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"packets\");\n  }\n\n  [_xfa_object.$finalize]() {\n    if (this[_xfa_object.$content] === \"*\") {\n      return;\n    }\n\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/).filter(x => [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x));\n  }\n\n}\n\nclass PageOffset extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pageOffset\");\n    this.x = (0, _utils.getInteger)({\n      data: attributes.x,\n      defaultValue: \"useXDCSetting\",\n      validate: n => true\n    });\n    this.y = (0, _utils.getInteger)({\n      data: attributes.y,\n      defaultValue: \"useXDCSetting\",\n      validate: n => true\n    });\n  }\n\n}\n\nclass PageRange extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pageRange\");\n  }\n\n  [_xfa_object.$finalize]() {\n    const numbers = this[_xfa_object.$content].trim().split(/\\s+/).map(x => parseInt(x, 10));\n\n    const ranges = [];\n\n    for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n      ranges.push(numbers.slice(i, i + 2));\n    }\n\n    this[_xfa_object.$content] = ranges;\n  }\n\n}\n\nclass Pagination extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pagination\", [\"simplex\", \"duplexShortEdge\", \"duplexLongEdge\"]);\n  }\n\n}\n\nclass PaginationOverride extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"paginationOverride\", [\"none\", \"forceDuplex\", \"forceDuplexLongEdge\", \"forceDuplexShortEdge\", \"forceSimplex\"]);\n  }\n\n}\n\nclass Part extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"part\", 1, n => false);\n  }\n\n}\n\nclass Pcl extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pcl\", true);\n    this.name = attributes.name || \"\";\n    this.batchOutput = null;\n    this.fontInfo = null;\n    this.jog = null;\n    this.mediumInfo = null;\n    this.outputBin = null;\n    this.pageOffset = null;\n    this.staple = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Pdf extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pdf\", true);\n    this.name = attributes.name || \"\";\n    this.adobeExtensionLevel = null;\n    this.batchOutput = null;\n    this.compression = null;\n    this.creator = null;\n    this.encryption = null;\n    this.fontInfo = null;\n    this.interactive = null;\n    this.linearized = null;\n    this.openAction = null;\n    this.pdfa = null;\n    this.producer = null;\n    this.renderPolicy = null;\n    this.scriptModel = null;\n    this.silentPrint = null;\n    this.submitFormat = null;\n    this.tagged = null;\n    this.version = null;\n    this.viewerPreferences = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Pdfa extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pdfa\", true);\n    this.amd = null;\n    this.conformance = null;\n    this.includeXDPContent = null;\n    this.part = null;\n  }\n\n}\n\nclass Permissions extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"permissions\", true);\n    this.accessibleContent = null;\n    this.change = null;\n    this.contentCopy = null;\n    this.documentAssembly = null;\n    this.formFieldFilling = null;\n    this.modifyAnnots = null;\n    this.plaintextMetadata = null;\n    this.print = null;\n    this.printHighQuality = null;\n  }\n\n}\n\nclass PickTrayByPDFSize extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n  }\n\n}\n\nclass Picture extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"picture\");\n  }\n\n}\n\nclass PlaintextMetadata extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"plaintextMetadata\");\n  }\n\n}\n\nclass Presence extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"presence\", [\"preserve\", \"dissolve\", \"dissolveStructure\", \"ignore\", \"remove\"]);\n  }\n\n}\n\nclass Present extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"present\", true);\n    this.behaviorOverride = null;\n    this.cache = null;\n    this.common = null;\n    this.copies = null;\n    this.destination = null;\n    this.incrementalMerge = null;\n    this.layout = null;\n    this.output = null;\n    this.overprint = null;\n    this.pagination = null;\n    this.paginationOverride = null;\n    this.script = null;\n    this.validate = null;\n    this.xdp = null;\n    this.driver = new _xfa_object.XFAObjectArray();\n    this.labelPrinter = new _xfa_object.XFAObjectArray();\n    this.pcl = new _xfa_object.XFAObjectArray();\n    this.pdf = new _xfa_object.XFAObjectArray();\n    this.ps = new _xfa_object.XFAObjectArray();\n    this.submitUrl = new _xfa_object.XFAObjectArray();\n    this.webClient = new _xfa_object.XFAObjectArray();\n    this.zpl = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Print extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"print\");\n  }\n\n}\n\nclass PrintHighQuality extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printHighQuality\");\n  }\n\n}\n\nclass PrintScaling extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n  }\n\n}\n\nclass PrinterName extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"printerName\");\n  }\n\n}\n\nclass Producer extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"producer\");\n  }\n\n}\n\nclass Ps extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"ps\", true);\n    this.name = attributes.name || \"\";\n    this.batchOutput = null;\n    this.fontInfo = null;\n    this.jog = null;\n    this.mediumInfo = null;\n    this.outputBin = null;\n    this.staple = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Range extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"range\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s*,\\s*/, 2).map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10))).filter(range => range.every(x => !isNaN(x))).map(range => {\n      if (range.length === 1) {\n        range.push(range[0]);\n      }\n\n      return range;\n    });\n  }\n\n}\n\nclass Record extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"record\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim();\n    const n = parseInt(this[_xfa_object.$content], 10);\n\n    if (!isNaN(n) && n >= 0) {\n      this[_xfa_object.$content] = n;\n    }\n  }\n\n}\n\nclass Relevant extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"relevant\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/);\n  }\n\n}\n\nclass Rename extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"rename\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim();\n\n    if (this[_xfa_object.$content].toLowerCase().startsWith(\"xml\") || this[_xfa_object.$content].match(new RegExp(\"[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*\", \"u\"))) {\n      (0, _util.warn)(\"XFA - Rename: invalid XFA name\");\n    }\n  }\n\n}\n\nclass RenderPolicy extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n  }\n\n}\n\nclass RunScripts extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n  }\n\n}\n\nclass Script extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"script\", true);\n    this.currentPage = null;\n    this.exclude = null;\n    this.runScripts = null;\n  }\n\n}\n\nclass ScriptModel extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n  }\n\n}\n\nclass Severity extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"severity\", [\"ignore\", \"error\", \"information\", \"trace\", \"warning\"]);\n  }\n\n}\n\nclass SilentPrint extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"silentPrint\", true);\n    this.addSilentPrint = null;\n    this.printerName = null;\n  }\n\n}\n\nclass Staple extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"staple\");\n    this.mode = (0, _utils.getStringOption)(attributes.mode, [\"usePrinterSetting\", \"on\", \"off\"]);\n  }\n\n}\n\nclass StartNode extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"startNode\");\n  }\n\n}\n\nclass StartPage extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n  }\n\n}\n\nclass SubmitFormat extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"submitFormat\", [\"html\", \"delegate\", \"fdf\", \"xml\", \"pdf\"]);\n  }\n\n}\n\nclass SubmitUrl extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"submitUrl\");\n  }\n\n}\n\nclass SubsetBelow extends _xfa_object.IntegerObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n  }\n\n}\n\nclass SuppressBanner extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"suppressBanner\");\n  }\n\n}\n\nclass Tagged extends _xfa_object.Option01 {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"tagged\");\n  }\n\n}\n\nclass Template extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"template\", true);\n    this.base = null;\n    this.relevant = null;\n    this.startPage = null;\n    this.uri = null;\n    this.xsl = null;\n  }\n\n}\n\nclass Threshold extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"threshold\", [\"trace\", \"error\", \"information\", \"warning\"]);\n  }\n\n}\n\nclass To extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"to\", [\"null\", \"memory\", \"stderr\", \"stdout\", \"system\", \"uri\"]);\n  }\n\n}\n\nclass TemplateCache extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"templateCache\");\n    this.maxEntries = (0, _utils.getInteger)({\n      data: attributes.maxEntries,\n      defaultValue: 5,\n      validate: n => n >= 0\n    });\n  }\n\n}\n\nclass Trace extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"trace\", true);\n    this.area = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Transform extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"transform\", true);\n    this.groupParent = null;\n    this.ifEmpty = null;\n    this.nameAttr = null;\n    this.picture = null;\n    this.presence = null;\n    this.rename = null;\n    this.whitespace = null;\n  }\n\n}\n\nclass Type extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"type\", [\"none\", \"ascii85\", \"asciiHex\", \"ccittfax\", \"flate\", \"lzw\", \"runLength\", \"native\", \"xdp\", \"mergedXDP\"]);\n  }\n\n}\n\nclass Uri extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"uri\");\n  }\n\n}\n\nclass Validate extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validate\", [\"preSubmit\", \"prePrint\", \"preExecute\", \"preSave\"]);\n  }\n\n}\n\nclass ValidateApprovalSignatures extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n  }\n\n  [_xfa_object.$finalize]() {\n    this[_xfa_object.$content] = this[_xfa_object.$content].trim().split(/\\s+/).filter(x => [\"docReady\", \"postSign\"].includes(x));\n  }\n\n}\n\nclass ValidationMessaging extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"validationMessaging\", [\"allMessagesIndividually\", \"allMessagesTogether\", \"firstMessageOnly\", \"noMessages\"]);\n  }\n\n}\n\nclass Version extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n  }\n\n}\n\nclass VersionControl extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"VersionControl\");\n    this.outputBelow = (0, _utils.getStringOption)(attributes.outputBelow, [\"warn\", \"error\", \"update\"]);\n    this.sourceAbove = (0, _utils.getStringOption)(attributes.sourceAbove, [\"warn\", \"error\"]);\n    this.sourceBelow = (0, _utils.getStringOption)(attributes.sourceBelow, [\"update\", \"maintain\"]);\n  }\n\n}\n\nclass ViewerPreferences extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"viewerPreferences\", true);\n    this.ADBE_JSConsole = null;\n    this.ADBE_JSDebugger = null;\n    this.addViewerPreferences = null;\n    this.duplexOption = null;\n    this.enforce = null;\n    this.numberOfCopies = null;\n    this.pageRange = null;\n    this.pickTrayByPDFSize = null;\n    this.printScaling = null;\n  }\n\n}\n\nclass WebClient extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"webClient\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n\n}\n\nclass Whitespace extends _xfa_object.OptionObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"whitespace\", [\"preserve\", \"ltrim\", \"normalize\", \"rtrim\", \"trim\"]);\n  }\n\n}\n\nclass Window extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"window\");\n  }\n\n  [_xfa_object.$finalize]() {\n    const pair = this[_xfa_object.$content].trim().split(/\\s*,\\s*/, 2).map(x => parseInt(x, 10));\n\n    if (pair.some(x => isNaN(x))) {\n      this[_xfa_object.$content] = [0, 0];\n      return;\n    }\n\n    if (pair.length === 1) {\n      pair.push(pair[0]);\n    }\n\n    this[_xfa_object.$content] = pair;\n  }\n\n}\n\nclass Xdc extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xdc\", true);\n    this.uri = new _xfa_object.XFAObjectArray();\n    this.xsl = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Xdp extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xdp\", true);\n    this.packets = null;\n  }\n\n}\n\nclass Xsl extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"xsl\", true);\n    this.debug = null;\n    this.uri = null;\n  }\n\n}\n\nclass Zpl extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONFIG_NS_ID, \"zpl\", true);\n    this.name = attributes.name ? attributes.name.trim() : \"\";\n    this.batchOutput = null;\n    this.flipLabel = null;\n    this.fontInfo = null;\n    this.xdc = null;\n  }\n\n}\n\nclass ConfigNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (ConfigNamespace.hasOwnProperty(name)) {\n      return ConfigNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static acrobat(attrs) {\n    return new Acrobat(attrs);\n  }\n\n  static acrobat7(attrs) {\n    return new Acrobat7(attrs);\n  }\n\n  static ADBE_JSConsole(attrs) {\n    return new ADBE_JSConsole(attrs);\n  }\n\n  static ADBE_JSDebugger(attrs) {\n    return new ADBE_JSDebugger(attrs);\n  }\n\n  static addSilentPrint(attrs) {\n    return new AddSilentPrint(attrs);\n  }\n\n  static addViewerPreferences(attrs) {\n    return new AddViewerPreferences(attrs);\n  }\n\n  static adjustData(attrs) {\n    return new AdjustData(attrs);\n  }\n\n  static adobeExtensionLevel(attrs) {\n    return new AdobeExtensionLevel(attrs);\n  }\n\n  static agent(attrs) {\n    return new Agent(attrs);\n  }\n\n  static alwaysEmbed(attrs) {\n    return new AlwaysEmbed(attrs);\n  }\n\n  static amd(attrs) {\n    return new Amd(attrs);\n  }\n\n  static area(attrs) {\n    return new Area(attrs);\n  }\n\n  static attributes(attrs) {\n    return new Attributes(attrs);\n  }\n\n  static autoSave(attrs) {\n    return new AutoSave(attrs);\n  }\n\n  static base(attrs) {\n    return new Base(attrs);\n  }\n\n  static batchOutput(attrs) {\n    return new BatchOutput(attrs);\n  }\n\n  static behaviorOverride(attrs) {\n    return new BehaviorOverride(attrs);\n  }\n\n  static cache(attrs) {\n    return new Cache(attrs);\n  }\n\n  static change(attrs) {\n    return new Change(attrs);\n  }\n\n  static common(attrs) {\n    return new Common(attrs);\n  }\n\n  static compress(attrs) {\n    return new Compress(attrs);\n  }\n\n  static compressLogicalStructure(attrs) {\n    return new CompressLogicalStructure(attrs);\n  }\n\n  static compressObjectStream(attrs) {\n    return new CompressObjectStream(attrs);\n  }\n\n  static compression(attrs) {\n    return new Compression(attrs);\n  }\n\n  static config(attrs) {\n    return new Config(attrs);\n  }\n\n  static conformance(attrs) {\n    return new Conformance(attrs);\n  }\n\n  static contentCopy(attrs) {\n    return new ContentCopy(attrs);\n  }\n\n  static copies(attrs) {\n    return new Copies(attrs);\n  }\n\n  static creator(attrs) {\n    return new Creator(attrs);\n  }\n\n  static currentPage(attrs) {\n    return new CurrentPage(attrs);\n  }\n\n  static data(attrs) {\n    return new Data(attrs);\n  }\n\n  static debug(attrs) {\n    return new Debug(attrs);\n  }\n\n  static defaultTypeface(attrs) {\n    return new DefaultTypeface(attrs);\n  }\n\n  static destination(attrs) {\n    return new Destination(attrs);\n  }\n\n  static documentAssembly(attrs) {\n    return new DocumentAssembly(attrs);\n  }\n\n  static driver(attrs) {\n    return new Driver(attrs);\n  }\n\n  static duplexOption(attrs) {\n    return new DuplexOption(attrs);\n  }\n\n  static dynamicRender(attrs) {\n    return new DynamicRender(attrs);\n  }\n\n  static embed(attrs) {\n    return new Embed(attrs);\n  }\n\n  static encrypt(attrs) {\n    return new Encrypt(attrs);\n  }\n\n  static encryption(attrs) {\n    return new Encryption(attrs);\n  }\n\n  static encryptionLevel(attrs) {\n    return new EncryptionLevel(attrs);\n  }\n\n  static enforce(attrs) {\n    return new Enforce(attrs);\n  }\n\n  static equate(attrs) {\n    return new Equate(attrs);\n  }\n\n  static equateRange(attrs) {\n    return new EquateRange(attrs);\n  }\n\n  static exclude(attrs) {\n    return new Exclude(attrs);\n  }\n\n  static excludeNS(attrs) {\n    return new ExcludeNS(attrs);\n  }\n\n  static flipLabel(attrs) {\n    return new FlipLabel(attrs);\n  }\n\n  static fontInfo(attrs) {\n    return new FontInfo(attrs);\n  }\n\n  static formFieldFilling(attrs) {\n    return new FormFieldFilling(attrs);\n  }\n\n  static groupParent(attrs) {\n    return new GroupParent(attrs);\n  }\n\n  static ifEmpty(attrs) {\n    return new IfEmpty(attrs);\n  }\n\n  static includeXDPContent(attrs) {\n    return new IncludeXDPContent(attrs);\n  }\n\n  static incrementalLoad(attrs) {\n    return new IncrementalLoad(attrs);\n  }\n\n  static incrementalMerge(attrs) {\n    return new IncrementalMerge(attrs);\n  }\n\n  static interactive(attrs) {\n    return new Interactive(attrs);\n  }\n\n  static jog(attrs) {\n    return new Jog(attrs);\n  }\n\n  static labelPrinter(attrs) {\n    return new LabelPrinter(attrs);\n  }\n\n  static layout(attrs) {\n    return new Layout(attrs);\n  }\n\n  static level(attrs) {\n    return new Level(attrs);\n  }\n\n  static linearized(attrs) {\n    return new Linearized(attrs);\n  }\n\n  static locale(attrs) {\n    return new Locale(attrs);\n  }\n\n  static localeSet(attrs) {\n    return new LocaleSet(attrs);\n  }\n\n  static log(attrs) {\n    return new Log(attrs);\n  }\n\n  static map(attrs) {\n    return new MapElement(attrs);\n  }\n\n  static mediumInfo(attrs) {\n    return new MediumInfo(attrs);\n  }\n\n  static message(attrs) {\n    return new Message(attrs);\n  }\n\n  static messaging(attrs) {\n    return new Messaging(attrs);\n  }\n\n  static mode(attrs) {\n    return new Mode(attrs);\n  }\n\n  static modifyAnnots(attrs) {\n    return new ModifyAnnots(attrs);\n  }\n\n  static msgId(attrs) {\n    return new MsgId(attrs);\n  }\n\n  static nameAttr(attrs) {\n    return new NameAttr(attrs);\n  }\n\n  static neverEmbed(attrs) {\n    return new NeverEmbed(attrs);\n  }\n\n  static numberOfCopies(attrs) {\n    return new NumberOfCopies(attrs);\n  }\n\n  static openAction(attrs) {\n    return new OpenAction(attrs);\n  }\n\n  static output(attrs) {\n    return new Output(attrs);\n  }\n\n  static outputBin(attrs) {\n    return new OutputBin(attrs);\n  }\n\n  static outputXSL(attrs) {\n    return new OutputXSL(attrs);\n  }\n\n  static overprint(attrs) {\n    return new Overprint(attrs);\n  }\n\n  static packets(attrs) {\n    return new Packets(attrs);\n  }\n\n  static pageOffset(attrs) {\n    return new PageOffset(attrs);\n  }\n\n  static pageRange(attrs) {\n    return new PageRange(attrs);\n  }\n\n  static pagination(attrs) {\n    return new Pagination(attrs);\n  }\n\n  static paginationOverride(attrs) {\n    return new PaginationOverride(attrs);\n  }\n\n  static part(attrs) {\n    return new Part(attrs);\n  }\n\n  static pcl(attrs) {\n    return new Pcl(attrs);\n  }\n\n  static pdf(attrs) {\n    return new Pdf(attrs);\n  }\n\n  static pdfa(attrs) {\n    return new Pdfa(attrs);\n  }\n\n  static permissions(attrs) {\n    return new Permissions(attrs);\n  }\n\n  static pickTrayByPDFSize(attrs) {\n    return new PickTrayByPDFSize(attrs);\n  }\n\n  static picture(attrs) {\n    return new Picture(attrs);\n  }\n\n  static plaintextMetadata(attrs) {\n    return new PlaintextMetadata(attrs);\n  }\n\n  static presence(attrs) {\n    return new Presence(attrs);\n  }\n\n  static present(attrs) {\n    return new Present(attrs);\n  }\n\n  static print(attrs) {\n    return new Print(attrs);\n  }\n\n  static printHighQuality(attrs) {\n    return new PrintHighQuality(attrs);\n  }\n\n  static printScaling(attrs) {\n    return new PrintScaling(attrs);\n  }\n\n  static printerName(attrs) {\n    return new PrinterName(attrs);\n  }\n\n  static producer(attrs) {\n    return new Producer(attrs);\n  }\n\n  static ps(attrs) {\n    return new Ps(attrs);\n  }\n\n  static range(attrs) {\n    return new Range(attrs);\n  }\n\n  static record(attrs) {\n    return new Record(attrs);\n  }\n\n  static relevant(attrs) {\n    return new Relevant(attrs);\n  }\n\n  static rename(attrs) {\n    return new Rename(attrs);\n  }\n\n  static renderPolicy(attrs) {\n    return new RenderPolicy(attrs);\n  }\n\n  static runScripts(attrs) {\n    return new RunScripts(attrs);\n  }\n\n  static script(attrs) {\n    return new Script(attrs);\n  }\n\n  static scriptModel(attrs) {\n    return new ScriptModel(attrs);\n  }\n\n  static severity(attrs) {\n    return new Severity(attrs);\n  }\n\n  static silentPrint(attrs) {\n    return new SilentPrint(attrs);\n  }\n\n  static staple(attrs) {\n    return new Staple(attrs);\n  }\n\n  static startNode(attrs) {\n    return new StartNode(attrs);\n  }\n\n  static startPage(attrs) {\n    return new StartPage(attrs);\n  }\n\n  static submitFormat(attrs) {\n    return new SubmitFormat(attrs);\n  }\n\n  static submitUrl(attrs) {\n    return new SubmitUrl(attrs);\n  }\n\n  static subsetBelow(attrs) {\n    return new SubsetBelow(attrs);\n  }\n\n  static suppressBanner(attrs) {\n    return new SuppressBanner(attrs);\n  }\n\n  static tagged(attrs) {\n    return new Tagged(attrs);\n  }\n\n  static template(attrs) {\n    return new Template(attrs);\n  }\n\n  static templateCache(attrs) {\n    return new TemplateCache(attrs);\n  }\n\n  static threshold(attrs) {\n    return new Threshold(attrs);\n  }\n\n  static to(attrs) {\n    return new To(attrs);\n  }\n\n  static trace(attrs) {\n    return new Trace(attrs);\n  }\n\n  static transform(attrs) {\n    return new Transform(attrs);\n  }\n\n  static type(attrs) {\n    return new Type(attrs);\n  }\n\n  static uri(attrs) {\n    return new Uri(attrs);\n  }\n\n  static validate(attrs) {\n    return new Validate(attrs);\n  }\n\n  static validateApprovalSignatures(attrs) {\n    return new ValidateApprovalSignatures(attrs);\n  }\n\n  static validationMessaging(attrs) {\n    return new ValidationMessaging(attrs);\n  }\n\n  static version(attrs) {\n    return new Version(attrs);\n  }\n\n  static versionControl(attrs) {\n    return new VersionControl(attrs);\n  }\n\n  static viewerPreferences(attrs) {\n    return new ViewerPreferences(attrs);\n  }\n\n  static webClient(attrs) {\n    return new WebClient(attrs);\n  }\n\n  static whitespace(attrs) {\n    return new Whitespace(attrs);\n  }\n\n  static window(attrs) {\n    return new Window(attrs);\n  }\n\n  static xdc(attrs) {\n    return new Xdc(attrs);\n  }\n\n  static xdp(attrs) {\n    return new Xdp(attrs);\n  }\n\n  static xsl(attrs) {\n    return new Xsl(attrs);\n  }\n\n  static zpl(attrs) {\n    return new Zpl(attrs);\n  }\n\n}\n\nexports.ConfigNamespace = ConfigNamespace;\n\n/***/ }),\n/* 92 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ConnectionSetNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nconst CONNECTION_SET_NS_ID = _namespaces.NamespaceIds.connectionSet.id;\n\nclass ConnectionSet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"connectionSet\", true);\n    this.wsdlConnection = new _xfa_object.XFAObjectArray();\n    this.xmlConnection = new _xfa_object.XFAObjectArray();\n    this.xsdConnection = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass EffectiveInputPolicy extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass EffectiveOutputPolicy extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Operation extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"operation\");\n    this.id = attributes.id || \"\";\n    this.input = attributes.input || \"\";\n    this.name = attributes.name || \"\";\n    this.output = attributes.output || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass RootElement extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"rootElement\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass SoapAction extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"soapAction\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass SoapAddress extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"soapAddress\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass Uri extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"uri\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass WsdlAddress extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n    this.id = attributes.id || \"\";\n    this.name = attributes.name || \"\";\n    this.use = attributes.use || \"\";\n    this.usehref = attributes.usehref || \"\";\n  }\n\n}\n\nclass WsdlConnection extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"wsdlConnection\", true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.effectiveInputPolicy = null;\n    this.effectiveOutputPolicy = null;\n    this.operation = null;\n    this.soapAction = null;\n    this.soapAddress = null;\n    this.wsdlAddress = null;\n  }\n\n}\n\nclass XmlConnection extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"xmlConnection\", true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.uri = null;\n  }\n\n}\n\nclass XsdConnection extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(CONNECTION_SET_NS_ID, \"xsdConnection\", true);\n    this.dataDescription = attributes.dataDescription || \"\";\n    this.name = attributes.name || \"\";\n    this.rootElement = null;\n    this.uri = null;\n  }\n\n}\n\nclass ConnectionSetNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (ConnectionSetNamespace.hasOwnProperty(name)) {\n      return ConnectionSetNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static connectionSet(attrs) {\n    return new ConnectionSet(attrs);\n  }\n\n  static effectiveInputPolicy(attrs) {\n    return new EffectiveInputPolicy(attrs);\n  }\n\n  static effectiveOutputPolicy(attrs) {\n    return new EffectiveOutputPolicy(attrs);\n  }\n\n  static operation(attrs) {\n    return new Operation(attrs);\n  }\n\n  static rootElement(attrs) {\n    return new RootElement(attrs);\n  }\n\n  static soapAction(attrs) {\n    return new SoapAction(attrs);\n  }\n\n  static soapAddress(attrs) {\n    return new SoapAddress(attrs);\n  }\n\n  static uri(attrs) {\n    return new Uri(attrs);\n  }\n\n  static wsdlAddress(attrs) {\n    return new WsdlAddress(attrs);\n  }\n\n  static wsdlConnection(attrs) {\n    return new WsdlConnection(attrs);\n  }\n\n  static xmlConnection(attrs) {\n    return new XmlConnection(attrs);\n  }\n\n  static xsdConnection(attrs) {\n    return new XsdConnection(attrs);\n  }\n\n}\n\nexports.ConnectionSetNamespace = ConnectionSetNamespace;\n\n/***/ }),\n/* 93 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DatasetsNamespace = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nconst DATASETS_NS_ID = _namespaces.NamespaceIds.datasets.id;\n\nclass Data extends _xfa_object.XmlObject {\n  constructor(attributes) {\n    super(DATASETS_NS_ID, \"data\", attributes);\n  }\n\n  [_xfa_object.$isNsAgnostic]() {\n    return true;\n  }\n\n}\n\nclass Datasets extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(DATASETS_NS_ID, \"datasets\", true);\n    this.data = null;\n    this.Signature = null;\n  }\n\n  [_xfa_object.$onChild](child) {\n    const name = child[_xfa_object.$nodeName];\n\n    if (name === \"data\" && child[_xfa_object.$namespaceId] === DATASETS_NS_ID || name === \"Signature\" && child[_xfa_object.$namespaceId] === _namespaces.NamespaceIds.signature.id) {\n      this[name] = child;\n    }\n\n    this[_xfa_object.$appendChild](child);\n  }\n\n}\n\nclass DatasetsNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (DatasetsNamespace.hasOwnProperty(name)) {\n      return DatasetsNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static datasets(attributes) {\n    return new Datasets(attributes);\n  }\n\n  static data(attributes) {\n    return new Data(attributes);\n  }\n\n}\n\nexports.DatasetsNamespace = DatasetsNamespace;\n\n/***/ }),\n/* 94 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.LocaleSetNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _utils = __w_pdfjs_require__(78);\n\nconst LOCALE_SET_NS_ID = _namespaces.NamespaceIds.localeSet.id;\n\nclass CalendarSymbols extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"calendarSymbols\", true);\n    this.name = \"gregorian\";\n    this.dayNames = new _xfa_object.XFAObjectArray(2);\n    this.eraNames = null;\n    this.meridiemNames = null;\n    this.monthNames = new _xfa_object.XFAObjectArray(2);\n  }\n\n}\n\nclass CurrencySymbol extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"currencySymbol\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"symbol\", \"isoname\", \"decimal\"]);\n  }\n\n}\n\nclass CurrencySymbols extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"currencySymbols\", true);\n    this.currencySymbol = new _xfa_object.XFAObjectArray(3);\n  }\n\n}\n\nclass DatePattern extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"datePattern\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n  }\n\n}\n\nclass DatePatterns extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"datePatterns\", true);\n    this.datePattern = new _xfa_object.XFAObjectArray(4);\n  }\n\n}\n\nclass DateTimeSymbols extends _xfa_object.ContentObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n  }\n\n}\n\nclass Day extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"day\");\n  }\n\n}\n\nclass DayNames extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"dayNames\", true);\n    this.abbr = (0, _utils.getInteger)({\n      data: attributes.abbr,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.day = new _xfa_object.XFAObjectArray(7);\n  }\n\n}\n\nclass Era extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"era\");\n  }\n\n}\n\nclass EraNames extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"eraNames\", true);\n    this.era = new _xfa_object.XFAObjectArray(2);\n  }\n\n}\n\nclass Locale extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"locale\", true);\n    this.desc = attributes.desc || \"\";\n    this.name = \"isoname\";\n    this.calendarSymbols = null;\n    this.currencySymbols = null;\n    this.datePatterns = null;\n    this.dateTimeSymbols = null;\n    this.numberPatterns = null;\n    this.numberSymbols = null;\n    this.timePatterns = null;\n    this.typeFaces = null;\n  }\n\n}\n\nclass LocaleSet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"localeSet\", true);\n    this.locale = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass Meridiem extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"meridiem\");\n  }\n\n}\n\nclass MeridiemNames extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"meridiemNames\", true);\n    this.meridiem = new _xfa_object.XFAObjectArray(2);\n  }\n\n}\n\nclass Month extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"month\");\n  }\n\n}\n\nclass MonthNames extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"monthNames\", true);\n    this.abbr = (0, _utils.getInteger)({\n      data: attributes.abbr,\n      defaultValue: 0,\n      validate: x => x === 1\n    });\n    this.month = new _xfa_object.XFAObjectArray(12);\n  }\n\n}\n\nclass NumberPattern extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberPattern\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n  }\n\n}\n\nclass NumberPatterns extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberPatterns\", true);\n    this.numberPattern = new _xfa_object.XFAObjectArray(4);\n  }\n\n}\n\nclass NumberSymbol extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberSymbol\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"decimal\", \"grouping\", \"percent\", \"minus\", \"zero\"]);\n  }\n\n}\n\nclass NumberSymbols extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"numberSymbols\", true);\n    this.numberSymbol = new _xfa_object.XFAObjectArray(5);\n  }\n\n}\n\nclass TimePattern extends _xfa_object.StringObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"timePattern\");\n    this.name = (0, _utils.getStringOption)(attributes.name, [\"full\", \"long\", \"med\", \"short\"]);\n  }\n\n}\n\nclass TimePatterns extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"timePatterns\", true);\n    this.timePattern = new _xfa_object.XFAObjectArray(4);\n  }\n\n}\n\nclass TypeFace extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"typeFace\", true);\n    this.name = attributes.name | \"\";\n  }\n\n}\n\nclass TypeFaces extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(LOCALE_SET_NS_ID, \"typeFaces\", true);\n    this.typeFace = new _xfa_object.XFAObjectArray();\n  }\n\n}\n\nclass LocaleSetNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (LocaleSetNamespace.hasOwnProperty(name)) {\n      return LocaleSetNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static calendarSymbols(attrs) {\n    return new CalendarSymbols(attrs);\n  }\n\n  static currencySymbol(attrs) {\n    return new CurrencySymbol(attrs);\n  }\n\n  static currencySymbols(attrs) {\n    return new CurrencySymbols(attrs);\n  }\n\n  static datePattern(attrs) {\n    return new DatePattern(attrs);\n  }\n\n  static datePatterns(attrs) {\n    return new DatePatterns(attrs);\n  }\n\n  static dateTimeSymbols(attrs) {\n    return new DateTimeSymbols(attrs);\n  }\n\n  static day(attrs) {\n    return new Day(attrs);\n  }\n\n  static dayNames(attrs) {\n    return new DayNames(attrs);\n  }\n\n  static era(attrs) {\n    return new Era(attrs);\n  }\n\n  static eraNames(attrs) {\n    return new EraNames(attrs);\n  }\n\n  static locale(attrs) {\n    return new Locale(attrs);\n  }\n\n  static localeSet(attrs) {\n    return new LocaleSet(attrs);\n  }\n\n  static meridiem(attrs) {\n    return new Meridiem(attrs);\n  }\n\n  static meridiemNames(attrs) {\n    return new MeridiemNames(attrs);\n  }\n\n  static month(attrs) {\n    return new Month(attrs);\n  }\n\n  static monthNames(attrs) {\n    return new MonthNames(attrs);\n  }\n\n  static numberPattern(attrs) {\n    return new NumberPattern(attrs);\n  }\n\n  static numberPatterns(attrs) {\n    return new NumberPatterns(attrs);\n  }\n\n  static numberSymbol(attrs) {\n    return new NumberSymbol(attrs);\n  }\n\n  static numberSymbols(attrs) {\n    return new NumberSymbols(attrs);\n  }\n\n  static timePattern(attrs) {\n    return new TimePattern(attrs);\n  }\n\n  static timePatterns(attrs) {\n    return new TimePatterns(attrs);\n  }\n\n  static typeFace(attrs) {\n    return new TypeFace(attrs);\n  }\n\n  static typeFaces(attrs) {\n    return new TypeFaces(attrs);\n  }\n\n}\n\nexports.LocaleSetNamespace = LocaleSetNamespace;\n\n/***/ }),\n/* 95 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.SignatureNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nconst SIGNATURE_NS_ID = _namespaces.NamespaceIds.signature.id;\n\nclass Signature extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(SIGNATURE_NS_ID, \"signature\", true);\n  }\n\n}\n\nclass SignatureNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (SignatureNamespace.hasOwnProperty(name)) {\n      return SignatureNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static signature(attributes) {\n    return new Signature(attributes);\n  }\n\n}\n\nexports.SignatureNamespace = SignatureNamespace;\n\n/***/ }),\n/* 96 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.StylesheetNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nconst STYLESHEET_NS_ID = _namespaces.NamespaceIds.stylesheet.id;\n\nclass Stylesheet extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(STYLESHEET_NS_ID, \"stylesheet\", true);\n  }\n\n}\n\nclass StylesheetNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (StylesheetNamespace.hasOwnProperty(name)) {\n      return StylesheetNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static stylesheet(attributes) {\n    return new Stylesheet(attributes);\n  }\n\n}\n\nexports.StylesheetNamespace = StylesheetNamespace;\n\n/***/ }),\n/* 97 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XdpNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nconst XDP_NS_ID = _namespaces.NamespaceIds.xdp.id;\n\nclass Xdp extends _xfa_object.XFAObject {\n  constructor(attributes) {\n    super(XDP_NS_ID, \"xdp\", true);\n    this.uuid = attributes.uuid || \"\";\n    this.timeStamp = attributes.timeStamp || \"\";\n    this.config = null;\n    this.connectionSet = null;\n    this.datasets = null;\n    this.localeSet = null;\n    this.stylesheet = new _xfa_object.XFAObjectArray();\n    this.template = null;\n  }\n\n  [_xfa_object.$onChildCheck](child) {\n    const ns = _namespaces.NamespaceIds[child[_xfa_object.$nodeName]];\n    return ns && child[_xfa_object.$namespaceId] === ns.id;\n  }\n\n}\n\nclass XdpNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (XdpNamespace.hasOwnProperty(name)) {\n      return XdpNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static xdp(attributes) {\n    return new Xdp(attributes);\n  }\n\n}\n\nexports.XdpNamespace = XdpNamespace;\n\n/***/ }),\n/* 98 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XhtmlNamespace = void 0;\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _html_utils = __w_pdfjs_require__(84);\n\nvar _utils = __w_pdfjs_require__(78);\n\nconst XHTML_NS_ID = _namespaces.NamespaceIds.xhtml.id;\nconst $richText = Symbol();\nconst VALID_STYLES = new Set([\"color\", \"font\", \"font-family\", \"font-size\", \"font-stretch\", \"font-style\", \"font-weight\", \"margin\", \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"letter-spacing\", \"line-height\", \"orphans\", \"page-break-after\", \"page-break-before\", \"page-break-inside\", \"tab-interval\", \"tab-stop\", \"text-align\", \"text-decoration\", \"text-indent\", \"vertical-align\", \"widows\", \"kerning-mode\", \"xfa-font-horizontal-scale\", \"xfa-font-vertical-scale\", \"xfa-spacerun\", \"xfa-tab-stops\"]);\nconst StyleMapping = new Map([[\"page-break-after\", \"breakAfter\"], [\"page-break-before\", \"breakBefore\"], [\"page-break-inside\", \"breakInside\"], [\"kerning-mode\", value => value === \"none\" ? \"none\" : \"normal\"], [\"xfa-font-horizontal-scale\", value => `scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`], [\"xfa-font-vertical-scale\", value => `scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`], [\"xfa-spacerun\", \"\"], [\"xfa-tab-stops\", \"\"], [\"font-size\", (value, original) => {\n  value = original.fontSize = (0, _utils.getMeasurement)(value);\n  return (0, _html_utils.measureToString)(0.99 * value);\n}], [\"letter-spacing\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"line-height\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin-bottom\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin-left\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin-right\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"margin-top\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"text-indent\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))], [\"font-family\", value => value], [\"vertical-align\", value => (0, _html_utils.measureToString)((0, _utils.getMeasurement)(value))]]);\nconst spacesRegExp = /\\s+/g;\nconst crlfRegExp = /[\\r\\n]+/g;\nconst crlfForRichTextRegExp = /\\r\\n?/g;\n\nfunction mapStyle(styleStr, node, richText) {\n  const style = Object.create(null);\n\n  if (!styleStr) {\n    return style;\n  }\n\n  const original = Object.create(null);\n\n  for (const [key, value] of styleStr.split(\";\").map(s => s.split(\":\", 2))) {\n    const mapping = StyleMapping.get(key);\n\n    if (mapping === \"\") {\n      continue;\n    }\n\n    let newValue = value;\n\n    if (mapping) {\n      if (typeof mapping === \"string\") {\n        newValue = mapping;\n      } else {\n        newValue = mapping(value, original);\n      }\n    }\n\n    if (key.endsWith(\"scale\")) {\n      if (style.transform) {\n        style.transform = `${style[key]} ${newValue}`;\n      } else {\n        style.transform = newValue;\n      }\n    } else {\n      style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] = newValue;\n    }\n  }\n\n  if (style.fontFamily) {\n    (0, _html_utils.setFontFamily)({\n      typeface: style.fontFamily,\n      weight: style.fontWeight || \"normal\",\n      posture: style.fontStyle || \"normal\",\n      size: original.fontSize || 0\n    }, node, node[_xfa_object.$globalData].fontFinder, style);\n  }\n\n  if (richText && style.verticalAlign && style.verticalAlign !== \"0px\" && style.fontSize) {\n    const SUB_SUPER_SCRIPT_FACTOR = 0.583;\n    const VERTICAL_FACTOR = 0.333;\n    const fontSize = (0, _utils.getMeasurement)(style.fontSize);\n    style.fontSize = (0, _html_utils.measureToString)(fontSize * SUB_SUPER_SCRIPT_FACTOR);\n    style.verticalAlign = (0, _html_utils.measureToString)(Math.sign((0, _utils.getMeasurement)(style.verticalAlign)) * fontSize * VERTICAL_FACTOR);\n  }\n\n  if (richText && style.fontSize) {\n    style.fontSize = `calc(${style.fontSize} * var(--scale-factor))`;\n  }\n\n  (0, _html_utils.fixTextIndent)(style);\n  return style;\n}\n\nfunction checkStyle(node) {\n  if (!node.style) {\n    return \"\";\n  }\n\n  return node.style.trim().split(/\\s*;\\s*/).filter(s => !!s).map(s => s.split(/\\s*:\\s*/, 2)).filter(([key, value]) => {\n    if (key === \"font-family\") {\n      node[_xfa_object.$globalData].usedTypefaces.add(value);\n    }\n\n    return VALID_STYLES.has(key);\n  }).map(kv => kv.join(\":\")).join(\";\");\n}\n\nconst NoWhites = new Set([\"body\", \"html\"]);\n\nclass XhtmlObject extends _xfa_object.XmlObject {\n  constructor(attributes, name) {\n    super(XHTML_NS_ID, name);\n    this[$richText] = false;\n    this.style = attributes.style || \"\";\n  }\n\n  [_xfa_object.$clean](builder) {\n    super[_xfa_object.$clean](builder);\n\n    this.style = checkStyle(this);\n  }\n\n  [_xfa_object.$acceptWhitespace]() {\n    return !NoWhites.has(this[_xfa_object.$nodeName]);\n  }\n\n  [_xfa_object.$onText](str, richText = false) {\n    if (!richText) {\n      str = str.replace(crlfRegExp, \"\");\n\n      if (!this.style.includes(\"xfa-spacerun:yes\")) {\n        str = str.replace(spacesRegExp, \" \");\n      }\n    } else {\n      this[$richText] = true;\n    }\n\n    if (str) {\n      this[_xfa_object.$content] += str;\n    }\n  }\n\n  [_xfa_object.$pushGlyphs](measure, mustPop = true) {\n    const xfaFont = Object.create(null);\n    const margin = {\n      top: NaN,\n      bottom: NaN,\n      left: NaN,\n      right: NaN\n    };\n    let lineHeight = null;\n\n    for (const [key, value] of this.style.split(\";\").map(s => s.split(\":\", 2))) {\n      switch (key) {\n        case \"font-family\":\n          xfaFont.typeface = (0, _utils.stripQuotes)(value);\n          break;\n\n        case \"font-size\":\n          xfaFont.size = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"font-weight\":\n          xfaFont.weight = value;\n          break;\n\n        case \"font-style\":\n          xfaFont.posture = value;\n          break;\n\n        case \"letter-spacing\":\n          xfaFont.letterSpacing = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"margin\":\n          const values = value.split(/ \\t/).map(x => (0, _utils.getMeasurement)(x));\n\n          switch (values.length) {\n            case 1:\n              margin.top = margin.bottom = margin.left = margin.right = values[0];\n              break;\n\n            case 2:\n              margin.top = margin.bottom = values[0];\n              margin.left = margin.right = values[1];\n              break;\n\n            case 3:\n              margin.top = values[0];\n              margin.bottom = values[2];\n              margin.left = margin.right = values[1];\n              break;\n\n            case 4:\n              margin.top = values[0];\n              margin.left = values[1];\n              margin.bottom = values[2];\n              margin.right = values[3];\n              break;\n          }\n\n          break;\n\n        case \"margin-top\":\n          margin.top = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"margin-bottom\":\n          margin.bottom = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"margin-left\":\n          margin.left = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"margin-right\":\n          margin.right = (0, _utils.getMeasurement)(value);\n          break;\n\n        case \"line-height\":\n          lineHeight = (0, _utils.getMeasurement)(value);\n          break;\n      }\n    }\n\n    measure.pushData(xfaFont, margin, lineHeight);\n\n    if (this[_xfa_object.$content]) {\n      measure.addString(this[_xfa_object.$content]);\n    } else {\n      for (const child of this[_xfa_object.$getChildren]()) {\n        if (child[_xfa_object.$nodeName] === \"#text\") {\n          measure.addString(child[_xfa_object.$content]);\n          continue;\n        }\n\n        child[_xfa_object.$pushGlyphs](measure);\n      }\n    }\n\n    if (mustPop) {\n      measure.popFont();\n    }\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const children = [];\n    this[_xfa_object.$extra] = {\n      children\n    };\n\n    this[_xfa_object.$childrenToHTML]({});\n\n    if (children.length === 0 && !this[_xfa_object.$content]) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    let value;\n\n    if (this[$richText]) {\n      value = this[_xfa_object.$content] ? this[_xfa_object.$content].replace(crlfForRichTextRegExp, \"\\n\") : undefined;\n    } else {\n      value = this[_xfa_object.$content] || undefined;\n    }\n\n    return _utils.HTMLResult.success({\n      name: this[_xfa_object.$nodeName],\n      attributes: {\n        href: this.href,\n        style: mapStyle(this.style, this, this[$richText])\n      },\n      children,\n      value\n    });\n  }\n\n}\n\nclass A extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"a\");\n    this.href = (0, _html_utils.fixURL)(attributes.href) || \"\";\n  }\n\n}\n\nclass B extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"b\");\n  }\n\n  [_xfa_object.$pushGlyphs](measure) {\n    measure.pushFont({\n      weight: \"bold\"\n    });\n\n    super[_xfa_object.$pushGlyphs](measure);\n\n    measure.popFont();\n  }\n\n}\n\nclass Body extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"body\");\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const res = super[_xfa_object.$toHTML](availableSpace);\n\n    const {\n      html\n    } = res;\n\n    if (!html) {\n      return _utils.HTMLResult.EMPTY;\n    }\n\n    html.name = \"div\";\n    html.attributes.class = [\"xfaRich\"];\n    return res;\n  }\n\n}\n\nclass Br extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"br\");\n  }\n\n  [_xfa_object.$text]() {\n    return \"\\n\";\n  }\n\n  [_xfa_object.$pushGlyphs](measure) {\n    measure.addString(\"\\n\");\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    return _utils.HTMLResult.success({\n      name: \"br\"\n    });\n  }\n\n}\n\nclass Html extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"html\");\n  }\n\n  [_xfa_object.$toHTML](availableSpace) {\n    const children = [];\n    this[_xfa_object.$extra] = {\n      children\n    };\n\n    this[_xfa_object.$childrenToHTML]({});\n\n    if (children.length === 0) {\n      return _utils.HTMLResult.success({\n        name: \"div\",\n        attributes: {\n          class: [\"xfaRich\"],\n          style: {}\n        },\n        value: this[_xfa_object.$content] || \"\"\n      });\n    }\n\n    if (children.length === 1) {\n      const child = children[0];\n\n      if (child.attributes && child.attributes.class.includes(\"xfaRich\")) {\n        return _utils.HTMLResult.success(child);\n      }\n    }\n\n    return _utils.HTMLResult.success({\n      name: \"div\",\n      attributes: {\n        class: [\"xfaRich\"],\n        style: {}\n      },\n      children\n    });\n  }\n\n}\n\nclass I extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"i\");\n  }\n\n  [_xfa_object.$pushGlyphs](measure) {\n    measure.pushFont({\n      posture: \"italic\"\n    });\n\n    super[_xfa_object.$pushGlyphs](measure);\n\n    measure.popFont();\n  }\n\n}\n\nclass Li extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"li\");\n  }\n\n}\n\nclass Ol extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"ol\");\n  }\n\n}\n\nclass P extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"p\");\n  }\n\n  [_xfa_object.$pushGlyphs](measure) {\n    super[_xfa_object.$pushGlyphs](measure, false);\n\n    measure.addString(\"\\n\");\n    measure.addPara();\n    measure.popFont();\n  }\n\n  [_xfa_object.$text]() {\n    const siblings = this[_xfa_object.$getParent]()[_xfa_object.$getChildren]();\n\n    if (siblings.at(-1) === this) {\n      return super[_xfa_object.$text]();\n    }\n\n    return super[_xfa_object.$text]() + \"\\n\";\n  }\n\n}\n\nclass Span extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"span\");\n  }\n\n}\n\nclass Sub extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"sub\");\n  }\n\n}\n\nclass Sup extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"sup\");\n  }\n\n}\n\nclass Ul extends XhtmlObject {\n  constructor(attributes) {\n    super(attributes, \"ul\");\n  }\n\n}\n\nclass XhtmlNamespace {\n  static [_namespaces.$buildXFAObject](name, attributes) {\n    if (XhtmlNamespace.hasOwnProperty(name)) {\n      return XhtmlNamespace[name](attributes);\n    }\n\n    return undefined;\n  }\n\n  static a(attributes) {\n    return new A(attributes);\n  }\n\n  static b(attributes) {\n    return new B(attributes);\n  }\n\n  static body(attributes) {\n    return new Body(attributes);\n  }\n\n  static br(attributes) {\n    return new Br(attributes);\n  }\n\n  static html(attributes) {\n    return new Html(attributes);\n  }\n\n  static i(attributes) {\n    return new I(attributes);\n  }\n\n  static li(attributes) {\n    return new Li(attributes);\n  }\n\n  static ol(attributes) {\n    return new Ol(attributes);\n  }\n\n  static p(attributes) {\n    return new P(attributes);\n  }\n\n  static span(attributes) {\n    return new Span(attributes);\n  }\n\n  static sub(attributes) {\n    return new Sub(attributes);\n  }\n\n  static sup(attributes) {\n    return new Sup(attributes);\n  }\n\n  static ul(attributes) {\n    return new Ul(attributes);\n  }\n\n}\n\nexports.XhtmlNamespace = XhtmlNamespace;\n\n/***/ }),\n/* 99 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.UnknownNamespace = void 0;\n\nvar _namespaces = __w_pdfjs_require__(79);\n\nvar _xfa_object = __w_pdfjs_require__(77);\n\nclass UnknownNamespace {\n  constructor(nsId) {\n    this.namespaceId = nsId;\n  }\n\n  [_namespaces.$buildXFAObject](name, attributes) {\n    return new _xfa_object.XmlObject(this.namespaceId, name, attributes);\n  }\n\n}\n\nexports.UnknownNamespace = UnknownNamespace;\n\n/***/ }),\n/* 100 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DatasetReader = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _xml_parser = __w_pdfjs_require__(66);\n\nfunction decodeString(str) {\n  try {\n    return (0, _util.stringToUTF8String)(str);\n  } catch (ex) {\n    (0, _util.warn)(`UTF-8 decoding failed: \"${ex}\".`);\n    return str;\n  }\n}\n\nclass DatasetXMLParser extends _xml_parser.SimpleXMLParser {\n  constructor(options) {\n    super(options);\n    this.node = null;\n  }\n\n  onEndElement(name) {\n    const node = super.onEndElement(name);\n\n    if (node && name === \"xfa:datasets\") {\n      this.node = node;\n      throw new Error(\"Aborting DatasetXMLParser.\");\n    }\n  }\n\n}\n\nclass DatasetReader {\n  constructor(data) {\n    if (data.datasets) {\n      this.node = new _xml_parser.SimpleXMLParser({\n        hasAttributes: true\n      }).parseFromString(data.datasets).documentElement;\n    } else {\n      const parser = new DatasetXMLParser({\n        hasAttributes: true\n      });\n\n      try {\n        parser.parseFromString(data[\"xdp:xdp\"]);\n      } catch (_) {}\n\n      this.node = parser.node;\n    }\n  }\n\n  getValue(path) {\n    if (!this.node || !path) {\n      return \"\";\n    }\n\n    const node = this.node.searchNode((0, _core_utils.parseXFAPath)(path), 0);\n\n    if (!node) {\n      return \"\";\n    }\n\n    const first = node.firstChild;\n\n    if (first && first.nodeName === \"value\") {\n      return node.children.map(child => decodeString(child.textContent));\n    }\n\n    return decodeString(node.textContent);\n  }\n\n}\n\nexports.DatasetReader = DatasetReader;\n\n/***/ }),\n/* 101 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.XRef = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nvar _primitives = __w_pdfjs_require__(5);\n\nvar _core_utils = __w_pdfjs_require__(6);\n\nvar _parser = __w_pdfjs_require__(17);\n\nvar _base_stream = __w_pdfjs_require__(7);\n\nvar _crypto = __w_pdfjs_require__(67);\n\nclass XRef {\n  constructor(stream, pdfManager) {\n    this.stream = stream;\n    this.pdfManager = pdfManager;\n    this.entries = [];\n    this.xrefstms = Object.create(null);\n    this._cacheMap = new Map();\n    this._pendingRefs = new _primitives.RefSet();\n    this.stats = new _core_utils.DocStats(pdfManager.msgHandler);\n    this._newRefNum = null;\n  }\n\n  getNewRef() {\n    if (this._newRefNum === null) {\n      this._newRefNum = this.entries.length || 1;\n    }\n\n    return _primitives.Ref.get(this._newRefNum++, 0);\n  }\n\n  resetNewRef() {\n    this._newRefNum = null;\n  }\n\n  setStartXRef(startXRef) {\n    this.startXRefQueue = [startXRef];\n  }\n\n  parse(recoveryMode = false) {\n    let trailerDict;\n\n    if (!recoveryMode) {\n      trailerDict = this.readXRef();\n    } else {\n      (0, _util.warn)(\"Indexing all PDF objects\");\n      trailerDict = this.indexObjects();\n    }\n\n    trailerDict.assignXref(this);\n    this.trailer = trailerDict;\n    let encrypt;\n\n    try {\n      encrypt = trailerDict.get(\"Encrypt\");\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n    }\n\n    if (encrypt instanceof _primitives.Dict) {\n      const ids = trailerDict.get(\"ID\");\n      const fileId = ids && ids.length ? ids[0] : \"\";\n      encrypt.suppressEncryption = true;\n      this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n    }\n\n    let root;\n\n    try {\n      root = trailerDict.get(\"Root\");\n    } catch (ex) {\n      if (ex instanceof _core_utils.MissingDataException) {\n        throw ex;\n      }\n\n      (0, _util.warn)(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n    }\n\n    if (root instanceof _primitives.Dict) {\n      try {\n        const pages = root.get(\"Pages\");\n\n        if (pages instanceof _primitives.Dict) {\n          this.root = root;\n          return;\n        }\n      } catch (ex) {\n        if (ex instanceof _core_utils.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)(`XRef.parse - Invalid \"Pages\" reference: \"${ex}\".`);\n      }\n    }\n\n    if (!recoveryMode) {\n      throw new _core_utils.XRefParseException();\n    }\n\n    throw new _util.InvalidPDFException(\"Invalid Root reference.\");\n  }\n\n  processXRefTable(parser) {\n    if (!(\"tableState\" in this)) {\n      this.tableState = {\n        entryNum: 0,\n        streamPos: parser.lexer.stream.pos,\n        parserBuf1: parser.buf1,\n        parserBuf2: parser.buf2\n      };\n    }\n\n    const obj = this.readXRefTable(parser);\n\n    if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n      throw new _util.FormatError(\"Invalid XRef table: could not find trailer dictionary\");\n    }\n\n    let dict = parser.getObj();\n\n    if (!(dict instanceof _primitives.Dict) && dict.dict) {\n      dict = dict.dict;\n    }\n\n    if (!(dict instanceof _primitives.Dict)) {\n      throw new _util.FormatError(\"Invalid XRef table: could not parse trailer dictionary\");\n    }\n\n    delete this.tableState;\n    return dict;\n  }\n\n  readXRefTable(parser) {\n    const stream = parser.lexer.stream;\n    const tableState = this.tableState;\n    stream.pos = tableState.streamPos;\n    parser.buf1 = tableState.parserBuf1;\n    parser.buf2 = tableState.parserBuf2;\n    let obj;\n\n    while (true) {\n      if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n        if ((0, _primitives.isCmd)(obj = parser.getObj(), \"trailer\")) {\n          break;\n        }\n\n        tableState.firstEntryNum = obj;\n        tableState.entryCount = parser.getObj();\n      }\n\n      let first = tableState.firstEntryNum;\n      const count = tableState.entryCount;\n\n      if (!Number.isInteger(first) || !Number.isInteger(count)) {\n        throw new _util.FormatError(\"Invalid XRef table: wrong types in subsection header\");\n      }\n\n      for (let i = tableState.entryNum; i < count; i++) {\n        tableState.streamPos = stream.pos;\n        tableState.entryNum = i;\n        tableState.parserBuf1 = parser.buf1;\n        tableState.parserBuf2 = parser.buf2;\n        const entry = {};\n        entry.offset = parser.getObj();\n        entry.gen = parser.getObj();\n        const type = parser.getObj();\n\n        if (type instanceof _primitives.Cmd) {\n          switch (type.cmd) {\n            case \"f\":\n              entry.free = true;\n              break;\n\n            case \"n\":\n              entry.uncompressed = true;\n              break;\n          }\n        }\n\n        if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) {\n          throw new _util.FormatError(`Invalid entry in XRef subsection: ${first}, ${count}`);\n        }\n\n        if (i === 0 && entry.free && first === 1) {\n          first = 0;\n        }\n\n        if (!this.entries[i + first]) {\n          this.entries[i + first] = entry;\n        }\n      }\n\n      tableState.entryNum = 0;\n      tableState.streamPos = stream.pos;\n      tableState.parserBuf1 = parser.buf1;\n      tableState.parserBuf2 = parser.buf2;\n      delete tableState.firstEntryNum;\n      delete tableState.entryCount;\n    }\n\n    if (this.entries[0] && !this.entries[0].free) {\n      throw new _util.FormatError(\"Invalid XRef table: unexpected first object\");\n    }\n\n    return obj;\n  }\n\n  processXRefStream(stream) {\n    if (!(\"streamState\" in this)) {\n      const streamParameters = stream.dict;\n      const byteWidths = streamParameters.get(\"W\");\n      let range = streamParameters.get(\"Index\");\n\n      if (!range) {\n        range = [0, streamParameters.get(\"Size\")];\n      }\n\n      this.streamState = {\n        entryRanges: range,\n        byteWidths,\n        entryNum: 0,\n        streamPos: stream.pos\n      };\n    }\n\n    this.readXRefStream(stream);\n    delete this.streamState;\n    return stream.dict;\n  }\n\n  readXRefStream(stream) {\n    const streamState = this.streamState;\n    stream.pos = streamState.streamPos;\n    const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] = streamState.byteWidths;\n    const entryRanges = streamState.entryRanges;\n\n    while (entryRanges.length > 0) {\n      const [first, n] = entryRanges;\n\n      if (!Number.isInteger(first) || !Number.isInteger(n)) {\n        throw new _util.FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n      }\n\n      if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) {\n        throw new _util.FormatError(`Invalid XRef entry fields length: ${first}, ${n}`);\n      }\n\n      for (let i = streamState.entryNum; i < n; ++i) {\n        streamState.entryNum = i;\n        streamState.streamPos = stream.pos;\n        let type = 0,\n            offset = 0,\n            generation = 0;\n\n        for (let j = 0; j < typeFieldWidth; ++j) {\n          const typeByte = stream.getByte();\n\n          if (typeByte === -1) {\n            throw new _util.FormatError(\"Invalid XRef byteWidths 'type'.\");\n          }\n\n          type = type << 8 | typeByte;\n        }\n\n        if (typeFieldWidth === 0) {\n          type = 1;\n        }\n\n        for (let j = 0; j < offsetFieldWidth; ++j) {\n          const offsetByte = stream.getByte();\n\n          if (offsetByte === -1) {\n            throw new _util.FormatError(\"Invalid XRef byteWidths 'offset'.\");\n          }\n\n          offset = offset << 8 | offsetByte;\n        }\n\n        for (let j = 0; j < generationFieldWidth; ++j) {\n          const generationByte = stream.getByte();\n\n          if (generationByte === -1) {\n            throw new _util.FormatError(\"Invalid XRef byteWidths 'generation'.\");\n          }\n\n          generation = generation << 8 | generationByte;\n        }\n\n        const entry = {};\n        entry.offset = offset;\n        entry.gen = generation;\n\n        switch (type) {\n          case 0:\n            entry.free = true;\n            break;\n\n          case 1:\n            entry.uncompressed = true;\n            break;\n\n          case 2:\n            break;\n\n          default:\n            throw new _util.FormatError(`Invalid XRef entry type: ${type}`);\n        }\n\n        if (!this.entries[first + i]) {\n          this.entries[first + i] = entry;\n        }\n      }\n\n      streamState.entryNum = 0;\n      streamState.streamPos = stream.pos;\n      entryRanges.splice(0, 2);\n    }\n  }\n\n  indexObjects() {\n    const TAB = 0x9,\n          LF = 0xa,\n          CR = 0xd,\n          SPACE = 0x20;\n    const PERCENT = 0x25,\n          LT = 0x3c;\n\n    function readToken(data, offset) {\n      let token = \"\",\n          ch = data[offset];\n\n      while (ch !== LF && ch !== CR && ch !== LT) {\n        if (++offset >= data.length) {\n          break;\n        }\n\n        token += String.fromCharCode(ch);\n        ch = data[offset];\n      }\n\n      return token;\n    }\n\n    function skipUntil(data, offset, what) {\n      const length = what.length,\n            dataLength = data.length;\n      let skipped = 0;\n\n      while (offset < dataLength) {\n        let i = 0;\n\n        while (i < length && data[offset + i] === what[i]) {\n          ++i;\n        }\n\n        if (i >= length) {\n          break;\n        }\n\n        offset++;\n        skipped++;\n      }\n\n      return skipped;\n    }\n\n    const objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n    const endobjRegExp = /\\bendobj[\\b\\s]$/;\n    const nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n    const CHECK_CONTENT_LENGTH = 25;\n    const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n    const startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n    const objBytes = new Uint8Array([111, 98, 106]);\n    const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n    this.entries.length = 0;\n\n    this._cacheMap.clear();\n\n    const stream = this.stream;\n    stream.pos = 0;\n    const buffer = stream.getBytes(),\n          length = buffer.length;\n    let position = stream.start;\n    const trailers = [],\n          xrefStms = [];\n\n    while (position < length) {\n      let ch = buffer[position];\n\n      if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n        ++position;\n        continue;\n      }\n\n      if (ch === PERCENT) {\n        do {\n          ++position;\n\n          if (position >= length) {\n            break;\n          }\n\n          ch = buffer[position];\n        } while (ch !== LF && ch !== CR);\n\n        continue;\n      }\n\n      const token = readToken(buffer, position);\n      let m;\n\n      if (token.startsWith(\"xref\") && (token.length === 4 || /\\s/.test(token[4]))) {\n        position += skipUntil(buffer, position, trailerBytes);\n        trailers.push(position);\n        position += skipUntil(buffer, position, startxrefBytes);\n      } else if (m = objRegExp.exec(token)) {\n        const num = m[1] | 0,\n              gen = m[2] | 0;\n        let contentLength,\n            startPos = position + token.length,\n            updateEntries = false;\n\n        if (!this.entries[num]) {\n          updateEntries = true;\n        } else if (this.entries[num].gen === gen) {\n          try {\n            const parser = new _parser.Parser({\n              lexer: new _parser.Lexer(stream.makeSubStream(startPos))\n            });\n            parser.getObj();\n            updateEntries = true;\n          } catch (ex) {\n            if (ex instanceof _core_utils.ParserEOFException) {\n              (0, _util.warn)(`indexObjects -- checking object (${token}): \"${ex}\".`);\n            } else {\n              updateEntries = true;\n            }\n          }\n        }\n\n        if (updateEntries) {\n          this.entries[num] = {\n            offset: position - stream.start,\n            gen,\n            uncompressed: true\n          };\n        }\n\n        while (startPos < buffer.length) {\n          const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n          contentLength = endPos - position;\n          const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n          const tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos));\n\n          if (endobjRegExp.test(tokenStr)) {\n            break;\n          } else {\n            const objToken = nestedObjRegExp.exec(tokenStr);\n\n            if (objToken && objToken[1]) {\n              (0, _util.warn)('indexObjects: Found new \"obj\" inside of another \"obj\", ' + 'caused by missing \"endobj\" -- trying to recover.');\n              contentLength -= objToken[1].length;\n              break;\n            }\n          }\n\n          startPos = endPos;\n        }\n\n        const content = buffer.subarray(position, position + contentLength);\n        const xrefTagOffset = skipUntil(content, 0, xrefBytes);\n\n        if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n          xrefStms.push(position - stream.start);\n          this.xrefstms[position - stream.start] = 1;\n        }\n\n        position += contentLength;\n      } else if (token.startsWith(\"trailer\") && (token.length === 7 || /\\s/.test(token[7]))) {\n        trailers.push(position);\n        position += skipUntil(buffer, position, startxrefBytes);\n      } else {\n        position += token.length + 1;\n      }\n    }\n\n    for (let i = 0, ii = xrefStms.length; i < ii; ++i) {\n      this.startXRefQueue.push(xrefStms[i]);\n      this.readXRef(true);\n    }\n\n    let trailerDict;\n\n    for (let i = 0, ii = trailers.length; i < ii; ++i) {\n      stream.pos = trailers[i];\n      const parser = new _parser.Parser({\n        lexer: new _parser.Lexer(stream),\n        xref: this,\n        allowStreams: true,\n        recoveryMode: true\n      });\n      const obj = parser.getObj();\n\n      if (!(0, _primitives.isCmd)(obj, \"trailer\")) {\n        continue;\n      }\n\n      const dict = parser.getObj();\n\n      if (!(dict instanceof _primitives.Dict)) {\n        continue;\n      }\n\n      try {\n        const rootDict = dict.get(\"Root\");\n\n        if (!(rootDict instanceof _primitives.Dict)) {\n          continue;\n        }\n\n        const pagesDict = rootDict.get(\"Pages\");\n\n        if (!(pagesDict instanceof _primitives.Dict)) {\n          continue;\n        }\n\n        const pagesCount = pagesDict.get(\"Count\");\n\n        if (!Number.isInteger(pagesCount)) {\n          continue;\n        }\n      } catch (ex) {\n        continue;\n      }\n\n      if (dict.has(\"ID\")) {\n        return dict;\n      }\n\n      trailerDict = dict;\n    }\n\n    if (trailerDict) {\n      return trailerDict;\n    }\n\n    if (this.topDict) {\n      return this.topDict;\n    }\n\n    throw new _util.InvalidPDFException(\"Invalid PDF structure.\");\n  }\n\n  readXRef(recoveryMode = false) {\n    const stream = this.stream;\n    const startXRefParsedCache = new Set();\n\n    try {\n      while (this.startXRefQueue.length) {\n        const startXRef = this.startXRefQueue[0];\n\n        if (startXRefParsedCache.has(startXRef)) {\n          (0, _util.warn)(\"readXRef - skipping XRef table since it was already parsed.\");\n          this.startXRefQueue.shift();\n          continue;\n        }\n\n        startXRefParsedCache.add(startXRef);\n        stream.pos = startXRef + stream.start;\n        const parser = new _parser.Parser({\n          lexer: new _parser.Lexer(stream),\n          xref: this,\n          allowStreams: true\n        });\n        let obj = parser.getObj();\n        let dict;\n\n        if ((0, _primitives.isCmd)(obj, \"xref\")) {\n          dict = this.processXRefTable(parser);\n\n          if (!this.topDict) {\n            this.topDict = dict;\n          }\n\n          obj = dict.get(\"XRefStm\");\n\n          if (Number.isInteger(obj)) {\n            const pos = obj;\n\n            if (!(pos in this.xrefstms)) {\n              this.xrefstms[pos] = 1;\n              this.startXRefQueue.push(pos);\n            }\n          }\n        } else if (Number.isInteger(obj)) {\n          if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), \"obj\") || !((obj = parser.getObj()) instanceof _base_stream.BaseStream)) {\n            throw new _util.FormatError(\"Invalid XRef stream\");\n          }\n\n          dict = this.processXRefStream(obj);\n\n          if (!this.topDict) {\n            this.topDict = dict;\n          }\n\n          if (!dict) {\n            throw new _util.FormatError(\"Failed to read XRef stream\");\n          }\n        } else {\n          throw new _util.FormatError(\"Invalid XRef stream header\");\n        }\n\n        obj = dict.get(\"Prev\");\n\n        if (Number.isInteger(obj)) {\n          this.startXRefQueue.push(obj);\n        } else if (obj instanceof _primitives.Ref) {\n          this.startXRefQueue.push(obj.num);\n        }\n\n        this.startXRefQueue.shift();\n      }\n\n      return this.topDict;\n    } catch (e) {\n      if (e instanceof _core_utils.MissingDataException) {\n        throw e;\n      }\n\n      (0, _util.info)(\"(while reading XRef): \" + e);\n      this.startXRefQueue.shift();\n    }\n\n    if (recoveryMode) {\n      return undefined;\n    }\n\n    throw new _core_utils.XRefParseException();\n  }\n\n  getEntry(i) {\n    const xrefEntry = this.entries[i];\n\n    if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n      return xrefEntry;\n    }\n\n    return null;\n  }\n\n  fetchIfRef(obj, suppressEncryption = false) {\n    if (obj instanceof _primitives.Ref) {\n      return this.fetch(obj, suppressEncryption);\n    }\n\n    return obj;\n  }\n\n  fetch(ref, suppressEncryption = false) {\n    if (!(ref instanceof _primitives.Ref)) {\n      throw new Error(\"ref object is not a reference\");\n    }\n\n    const num = ref.num;\n\n    const cacheEntry = this._cacheMap.get(num);\n\n    if (cacheEntry !== undefined) {\n      if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n        cacheEntry.objId = ref.toString();\n      }\n\n      return cacheEntry;\n    }\n\n    let xrefEntry = this.getEntry(num);\n\n    if (xrefEntry === null) {\n      this._cacheMap.set(num, xrefEntry);\n\n      return xrefEntry;\n    }\n\n    if (this._pendingRefs.has(ref)) {\n      this._pendingRefs.remove(ref);\n\n      (0, _util.warn)(`Ignoring circular reference: ${ref}.`);\n      return _primitives.CIRCULAR_REF;\n    }\n\n    this._pendingRefs.put(ref);\n\n    try {\n      if (xrefEntry.uncompressed) {\n        xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n      } else {\n        xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n      }\n\n      this._pendingRefs.remove(ref);\n    } catch (ex) {\n      this._pendingRefs.remove(ref);\n\n      throw ex;\n    }\n\n    if (xrefEntry instanceof _primitives.Dict) {\n      xrefEntry.objId = ref.toString();\n    } else if (xrefEntry instanceof _base_stream.BaseStream) {\n      xrefEntry.dict.objId = ref.toString();\n    }\n\n    return xrefEntry;\n  }\n\n  fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n    const gen = ref.gen;\n    let num = ref.num;\n\n    if (xrefEntry.gen !== gen) {\n      throw new _core_utils.XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n    }\n\n    const stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n    const parser = new _parser.Parser({\n      lexer: new _parser.Lexer(stream),\n      xref: this,\n      allowStreams: true\n    });\n    const obj1 = parser.getObj();\n    const obj2 = parser.getObj();\n    const obj3 = parser.getObj();\n\n    if (obj1 !== num || obj2 !== gen || !(obj3 instanceof _primitives.Cmd)) {\n      throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n    }\n\n    if (obj3.cmd !== \"obj\") {\n      if (obj3.cmd.startsWith(\"obj\")) {\n        num = parseInt(obj3.cmd.substring(3), 10);\n\n        if (!Number.isNaN(num)) {\n          return num;\n        }\n      }\n\n      throw new _core_utils.XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n    }\n\n    if (this.encrypt && !suppressEncryption) {\n      xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n    } else {\n      xrefEntry = parser.getObj();\n    }\n\n    if (!(xrefEntry instanceof _base_stream.BaseStream)) {\n      this._cacheMap.set(num, xrefEntry);\n    }\n\n    return xrefEntry;\n  }\n\n  fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n    const tableOffset = xrefEntry.offset;\n    const stream = this.fetch(_primitives.Ref.get(tableOffset, 0));\n\n    if (!(stream instanceof _base_stream.BaseStream)) {\n      throw new _util.FormatError(\"bad ObjStm stream\");\n    }\n\n    const first = stream.dict.get(\"First\");\n    const n = stream.dict.get(\"N\");\n\n    if (!Number.isInteger(first) || !Number.isInteger(n)) {\n      throw new _util.FormatError(\"invalid first and n parameters for ObjStm stream\");\n    }\n\n    let parser = new _parser.Parser({\n      lexer: new _parser.Lexer(stream),\n      xref: this,\n      allowStreams: true\n    });\n    const nums = new Array(n);\n    const offsets = new Array(n);\n\n    for (let i = 0; i < n; ++i) {\n      const num = parser.getObj();\n\n      if (!Number.isInteger(num)) {\n        throw new _util.FormatError(`invalid object number in the ObjStm stream: ${num}`);\n      }\n\n      const offset = parser.getObj();\n\n      if (!Number.isInteger(offset)) {\n        throw new _util.FormatError(`invalid object offset in the ObjStm stream: ${offset}`);\n      }\n\n      nums[i] = num;\n      offsets[i] = offset;\n    }\n\n    const start = (stream.start || 0) + first;\n    const entries = new Array(n);\n\n    for (let i = 0; i < n; ++i) {\n      const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n\n      if (length < 0) {\n        throw new _util.FormatError(\"Invalid offset in the ObjStm stream.\");\n      }\n\n      parser = new _parser.Parser({\n        lexer: new _parser.Lexer(stream.makeSubStream(start + offsets[i], length, stream.dict)),\n        xref: this,\n        allowStreams: true\n      });\n      const obj = parser.getObj();\n      entries[i] = obj;\n\n      if (obj instanceof _base_stream.BaseStream) {\n        continue;\n      }\n\n      const num = nums[i],\n            entry = this.entries[num];\n\n      if (entry && entry.offset === tableOffset && entry.gen === i) {\n        this._cacheMap.set(num, obj);\n      }\n    }\n\n    xrefEntry = entries[xrefEntry.gen];\n\n    if (xrefEntry === undefined) {\n      throw new _core_utils.XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n    }\n\n    return xrefEntry;\n  }\n\n  async fetchIfRefAsync(obj, suppressEncryption) {\n    if (obj instanceof _primitives.Ref) {\n      return this.fetchAsync(obj, suppressEncryption);\n    }\n\n    return obj;\n  }\n\n  async fetchAsync(ref, suppressEncryption) {\n    try {\n      return this.fetch(ref, suppressEncryption);\n    } catch (ex) {\n      if (!(ex instanceof _core_utils.MissingDataException)) {\n        throw ex;\n      }\n\n      await this.pdfManager.requestRange(ex.begin, ex.end);\n      return this.fetchAsync(ref, suppressEncryption);\n    }\n  }\n\n  getCatalogObj() {\n    return this.root;\n  }\n\n}\n\nexports.XRef = XRef;\n\n/***/ }),\n/* 102 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nconst CallbackKind = {\n  UNKNOWN: 0,\n  DATA: 1,\n  ERROR: 2\n};\nconst StreamKind = {\n  UNKNOWN: 0,\n  CANCEL: 1,\n  CANCEL_COMPLETE: 2,\n  CLOSE: 3,\n  ENQUEUE: 4,\n  ERROR: 5,\n  PULL: 6,\n  PULL_COMPLETE: 7,\n  START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n  if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n    (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n  }\n\n  switch (reason.name) {\n    case \"AbortException\":\n      return new _util.AbortException(reason.message);\n\n    case \"MissingPDFException\":\n      return new _util.MissingPDFException(reason.message);\n\n    case \"PasswordException\":\n      return new _util.PasswordException(reason.message, reason.code);\n\n    case \"UnexpectedResponseException\":\n      return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n    case \"UnknownErrorException\":\n      return new _util.UnknownErrorException(reason.message, reason.details);\n\n    default:\n      return new _util.UnknownErrorException(reason.message, reason.toString());\n  }\n}\n\nclass MessageHandler {\n  constructor(sourceName, targetName, comObj) {\n    this.sourceName = sourceName;\n    this.targetName = targetName;\n    this.comObj = comObj;\n    this.callbackId = 1;\n    this.streamId = 1;\n    this.streamSinks = Object.create(null);\n    this.streamControllers = Object.create(null);\n    this.callbackCapabilities = Object.create(null);\n    this.actionHandler = Object.create(null);\n\n    this._onComObjOnMessage = event => {\n      const data = event.data;\n\n      if (data.targetName !== this.sourceName) {\n        return;\n      }\n\n      if (data.stream) {\n        this._processStreamMessage(data);\n\n        return;\n      }\n\n      if (data.callback) {\n        const callbackId = data.callbackId;\n        const capability = this.callbackCapabilities[callbackId];\n\n        if (!capability) {\n          throw new Error(`Cannot resolve callback ${callbackId}`);\n        }\n\n        delete this.callbackCapabilities[callbackId];\n\n        if (data.callback === CallbackKind.DATA) {\n          capability.resolve(data.data);\n        } else if (data.callback === CallbackKind.ERROR) {\n          capability.reject(wrapReason(data.reason));\n        } else {\n          throw new Error(\"Unexpected callback case\");\n        }\n\n        return;\n      }\n\n      const action = this.actionHandler[data.action];\n\n      if (!action) {\n        throw new Error(`Unknown action from worker: ${data.action}`);\n      }\n\n      if (data.callbackId) {\n        const cbSourceName = this.sourceName;\n        const cbTargetName = data.sourceName;\n        new Promise(function (resolve) {\n          resolve(action(data.data));\n        }).then(function (result) {\n          comObj.postMessage({\n            sourceName: cbSourceName,\n            targetName: cbTargetName,\n            callback: CallbackKind.DATA,\n            callbackId: data.callbackId,\n            data: result\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName: cbSourceName,\n            targetName: cbTargetName,\n            callback: CallbackKind.ERROR,\n            callbackId: data.callbackId,\n            reason: wrapReason(reason)\n          });\n        });\n        return;\n      }\n\n      if (data.streamId) {\n        this._createStreamSink(data);\n\n        return;\n      }\n\n      action(data.data);\n    };\n\n    comObj.addEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n  on(actionName, handler) {\n    const ah = this.actionHandler;\n\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n\n    ah[actionName] = handler;\n  }\n\n  send(actionName, data, transfers) {\n    this.comObj.postMessage({\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data\n    }, transfers);\n  }\n\n  sendWithPromise(actionName, data, transfers) {\n    const callbackId = this.callbackId++;\n    const capability = (0, _util.createPromiseCapability)();\n    this.callbackCapabilities[callbackId] = capability;\n\n    try {\n      this.comObj.postMessage({\n        sourceName: this.sourceName,\n        targetName: this.targetName,\n        action: actionName,\n        callbackId,\n        data\n      }, transfers);\n    } catch (ex) {\n      capability.reject(ex);\n    }\n\n    return capability.promise;\n  }\n\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    const streamId = this.streamId++,\n          sourceName = this.sourceName,\n          targetName = this.targetName,\n          comObj = this.comObj;\n    return new ReadableStream({\n      start: controller => {\n        const startCapability = (0, _util.createPromiseCapability)();\n        this.streamControllers[streamId] = {\n          controller,\n          startCall: startCapability,\n          pullCall: null,\n          cancelCall: null,\n          isClosed: false\n        };\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          action: actionName,\n          streamId,\n          data,\n          desiredSize: controller.desiredSize\n        }, transfers);\n        return startCapability.promise;\n      },\n      pull: controller => {\n        const pullCapability = (0, _util.createPromiseCapability)();\n        this.streamControllers[streamId].pullCall = pullCapability;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.PULL,\n          streamId,\n          desiredSize: controller.desiredSize\n        });\n        return pullCapability.promise;\n      },\n      cancel: reason => {\n        (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n        const cancelCapability = (0, _util.createPromiseCapability)();\n        this.streamControllers[streamId].cancelCall = cancelCapability;\n        this.streamControllers[streamId].isClosed = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CANCEL,\n          streamId,\n          reason: wrapReason(reason)\n        });\n        return cancelCapability.promise;\n      }\n    }, queueingStrategy);\n  }\n\n  _createStreamSink(data) {\n    const streamId = data.streamId,\n          sourceName = this.sourceName,\n          targetName = data.sourceName,\n          comObj = this.comObj;\n    const self = this,\n          action = this.actionHandler[data.action];\n    const streamSink = {\n      enqueue(chunk, size = 1, transfers) {\n        if (this.isCancelled) {\n          return;\n        }\n\n        const lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = (0, _util.createPromiseCapability)();\n          this.ready = this.sinkCapability.promise;\n        }\n\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ENQUEUE,\n          streamId,\n          chunk\n        }, transfers);\n      },\n\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CLOSE,\n          streamId\n        });\n        delete self.streamSinks[streamId];\n      },\n\n      error(reason) {\n        (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ERROR,\n          streamId,\n          reason: wrapReason(reason)\n        });\n      },\n\n      sinkCapability: (0, _util.createPromiseCapability)(),\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: data.desiredSize,\n      ready: null\n    };\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n    new Promise(function (resolve) {\n      resolve(action(data.data, streamSink));\n    }).then(function () {\n      comObj.postMessage({\n        sourceName,\n        targetName,\n        stream: StreamKind.START_COMPLETE,\n        streamId,\n        success: true\n      });\n    }, function (reason) {\n      comObj.postMessage({\n        sourceName,\n        targetName,\n        stream: StreamKind.START_COMPLETE,\n        streamId,\n        reason: wrapReason(reason)\n      });\n    });\n  }\n\n  _processStreamMessage(data) {\n    const streamId = data.streamId,\n          sourceName = this.sourceName,\n          targetName = data.sourceName,\n          comObj = this.comObj;\n    const streamController = this.streamControllers[streamId],\n          streamSink = this.streamSinks[streamId];\n\n    switch (data.stream) {\n      case StreamKind.START_COMPLETE:\n        if (data.success) {\n          streamController.startCall.resolve();\n        } else {\n          streamController.startCall.reject(wrapReason(data.reason));\n        }\n\n        break;\n\n      case StreamKind.PULL_COMPLETE:\n        if (data.success) {\n          streamController.pullCall.resolve();\n        } else {\n          streamController.pullCall.reject(wrapReason(data.reason));\n        }\n\n        break;\n\n      case StreamKind.PULL:\n        if (!streamSink) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true\n          });\n          break;\n        }\n\n        if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n          streamSink.sinkCapability.resolve();\n        }\n\n        streamSink.desiredSize = data.desiredSize;\n        new Promise(function (resolve) {\n          resolve(streamSink.onPull && streamSink.onPull());\n        }).then(function () {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            reason: wrapReason(reason)\n          });\n        });\n        break;\n\n      case StreamKind.ENQUEUE:\n        (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n\n        if (streamController.isClosed) {\n          break;\n        }\n\n        streamController.controller.enqueue(data.chunk);\n        break;\n\n      case StreamKind.CLOSE:\n        (0, _util.assert)(streamController, \"close should have stream controller\");\n\n        if (streamController.isClosed) {\n          break;\n        }\n\n        streamController.isClosed = true;\n        streamController.controller.close();\n\n        this._deleteStreamController(streamController, streamId);\n\n        break;\n\n      case StreamKind.ERROR:\n        (0, _util.assert)(streamController, \"error should have stream controller\");\n        streamController.controller.error(wrapReason(data.reason));\n\n        this._deleteStreamController(streamController, streamId);\n\n        break;\n\n      case StreamKind.CANCEL_COMPLETE:\n        if (data.success) {\n          streamController.cancelCall.resolve();\n        } else {\n          streamController.cancelCall.reject(wrapReason(data.reason));\n        }\n\n        this._deleteStreamController(streamController, streamId);\n\n        break;\n\n      case StreamKind.CANCEL:\n        if (!streamSink) {\n          break;\n        }\n\n        new Promise(function (resolve) {\n          resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason)));\n        }).then(function () {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL_COMPLETE,\n            streamId,\n            success: true\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL_COMPLETE,\n            streamId,\n            reason: wrapReason(reason)\n          });\n        });\n        streamSink.sinkCapability.reject(wrapReason(data.reason));\n        streamSink.isCancelled = true;\n        delete this.streamSinks[streamId];\n        break;\n\n      default:\n        throw new Error(\"Unexpected stream case\");\n    }\n  }\n\n  async _deleteStreamController(streamController, streamId) {\n    await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]);\n    delete this.streamControllers[streamId];\n  }\n\n  destroy() {\n    this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 103 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PDFWorkerStream = void 0;\n\nvar _util = __w_pdfjs_require__(2);\n\nclass PDFWorkerStream {\n  constructor(msgHandler) {\n    this._msgHandler = msgHandler;\n    this._contentLength = null;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  getFullReader() {\n    (0, _util.assert)(!this._fullRequestReader, \"PDFWorkerStream.getFullReader can only be called once.\");\n    this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n\n    this._rangeRequestReaders.push(reader);\n\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n\n}\n\nexports.PDFWorkerStream = PDFWorkerStream;\n\nclass PDFWorkerStreamReader {\n  constructor(msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n    this._contentLength = null;\n    this._isRangeSupported = false;\n    this._isStreamingSupported = false;\n\n    const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n\n    this._reader = readableStream.getReader();\n    this._headersReady = this._msgHandler.sendWithPromise(\"ReaderHeadersReady\").then(data => {\n      this._isStreamingSupported = data.isStreamingSupported;\n      this._isRangeSupported = data.isRangeSupported;\n      this._contentLength = data.contentLength;\n    });\n  }\n\n  get headersReady() {\n    return this._headersReady;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  async read() {\n    const {\n      value,\n      done\n    } = await this._reader.read();\n\n    if (done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    return {\n      value: value.buffer,\n      done: false\n    };\n  }\n\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n\n}\n\nclass PDFWorkerStreamRangeReader {\n  constructor(begin, end, msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n\n    const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n      begin,\n      end\n    });\n\n    this._reader = readableStream.getReader();\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    const {\n      value,\n      done\n    } = await this._reader.read();\n\n    if (done) {\n      return {\n        value: undefined,\n        done: true\n      };\n    }\n\n    return {\n      value: value.buffer,\n      done: false\n    };\n  }\n\n  cancel(reason) {\n    this._reader.cancel(reason);\n  }\n\n}\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__w_pdfjs_require__.d = (exports, definition) => {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__w_pdfjs_require__.o(definition, key) && !__w_pdfjs_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t(() => {\n/******/ \t\t__w_pdfjs_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))\n/******/ \t})();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t(() => {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__w_pdfjs_require__.r = (exports) => {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t})();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nObject.defineProperty(exports, \"WorkerMessageHandler\", ({\n  enumerable: true,\n  get: function () {\n    return _worker.WorkerMessageHandler;\n  }\n}));\n\nvar _worker = __w_pdfjs_require__(1);\n\nconst pdfjsVersion = '2.16.105';\nconst pdfjsBuild = '172ccdbe5';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.worker.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(typeof window !== \"undefined\"\n  ? window\n  : {}\n).pdfjsWorker = require(\"./pdf.worker.js\");\n"],"names":[],"sourceRoot":""}