UNPKG

pdfjs-dist

Version:

Generic build of Mozilla's PDF.js library.

1 lines • 794 kB
{"version":3,"file":"pdf.image_decoders.mjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAA4B;;AAEtD;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACVa;AACb,0BAA0B,mBAAO,CAAC,IAAoC;;AAEtE;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACTa;AACb,UAAU,+BAAuC;;AAEjD;AACA;AACA;AACA;AACA;;;;;;;;ACPa;AACb,oBAAoB,mBAAO,CAAC,IAAqC;;AAEjE;;AAEA;AACA;AACA;AACA;;;;;;;;ACRa;AACb,eAAe,mBAAO,CAAC,EAAwB;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACVa;AACb;AACA;;;;;;;;ACFa;AACb,0BAA0B,mBAAO,CAAC,IAA6C;AAC/E,cAAc,mBAAO,CAAC,IAA0B;;AAEhD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZa;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,4BAA4B,mBAAO,CAAC,IAAuC;;AAE3E;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;ACda;AACb,aAAa,mBAAO,CAAC,IAAqB;AAC1C,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,0BAA0B,mBAAO,CAAC,IAA6C;AAC/E,cAAc,mBAAO,CAAC,IAAuB;AAC7C,iBAAiB,mBAAO,CAAC,IAAuC;AAChE,4BAA4B,mBAAO,CAAC,IAAuC;AAC3E,yBAAyB,mBAAO,CAAC,IAAkC;AACnE,uCAAuC,mBAAO,CAAC,IAA+C;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA,IAAI;AACJ,4EAA4E,4CAA4C;AACxH;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;;;;;;;;AC7Ca;AACb,0BAA0B,mBAAO,CAAC,IAA2C;AAC7E,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,aAAa,mBAAO,CAAC,IAAqB;AAC1C,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,eAAe,mBAAO,CAAC,EAAwB;AAC/C,aAAa,mBAAO,CAAC,IAA+B;AACpD,cAAc,mBAAO,CAAC,IAAsB;AAC5C,kBAAkB,mBAAO,CAAC,IAA4B;AACtD,kCAAkC,mBAAO,CAAC,IAA6C;AACvF,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,4BAA4B,mBAAO,CAAC,IAAuC;AAC3E,oBAAoB,mBAAO,CAAC,IAAqC;AACjE,qBAAqB,mBAAO,CAAC,IAAsC;AACnE,qBAAqB,mBAAO,CAAC,IAAsC;AACnE,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,UAAU,mBAAO,CAAC,IAAkB;AACpC,0BAA0B,mBAAO,CAAC,IAA6B;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAC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CAAkC,mBAAO,CAAC,IAA6C;AACvF,aAAa,mBAAO,CAAC,IAA+B;AACpD,aAAa,mBAAO,CAAC,IAA2B;AAChD,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,iBAAiB,mBAAO,CAAC,GAA0B;;AAEnD;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtEa;AACb,cAAc,mBAAO,CAAC,IAA0B;;AAEhD;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRa;AACb,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;AACA;AACA;AACA;;;;;;;;ACNa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;ACXa;AACb,YAAY,mBAAO,CAAC,IAAoB;AACxC,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACtBa;AACb;AACA;AACA;AACA;AACA;;;;;;;;ACLa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;AACA;AACA;;;;;;;;ACLa;AACb,eAAe,mBAAO,CAAC,EAAwB;;AAE/C;AACA;AACA;;;;;;;;ACLa;AACb;;;;;;;;ACDa;AACb,iBAAiB,mBAAO,CAAC,IAA2B;AACpD,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,oBAAoB,mBAAO,CAAC,IAAqC;AACjE,wBAAwB,mBAAO,CAAC,IAAgC;;AAEhE;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;ACba;AACb,WAAW,mBAAO,CAAC,IAA4B;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXa;AACb,WAAW,mBAAO,CAAC,IAA4B;AAC/C,eAAe,mBAAO,CAAC,IAAwB;AAC/C,gBAAgB,mBAAO,CAAC,IAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBa;AACb,WAAW,mBAAO,CAAC,IAA4B;AAC/C,aAAa,mBAAO,CAAC,IAA4B;AACjD,kCAAkC,mBAAO,CAAC,IAA6C;AACvF,qBAAqB,mBAAO,CAAC,IAA+B;AAC5D,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,0BAA0B,mBAAO,CAAC,IAA6B;AAC/D,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,wBAAwB,6CAAwD;AAChF,6BAA6B,mBAAO,CAAC,IAAwC;AAC7E,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;AC3Ea;AACb,WAAW,mBAAO,CAAC,IAA4B;AAC/C,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,eAAe,mBAAO,CAAC,IAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;AAClE,0BAA0B,mBAAO,CAAC,IAAoC;AACtE,mCAAmC,mBAAO,CAAC,IAA+C;;AAE1F;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACvBa;AACb,YAAY,mBAAO,CAAC,IAAoB;AACxC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,eAAe,mBAAO,CAAC,EAAwB;AAC/C,aAAa,mBAAO,CAAC,IAA4B;AACjD,qBAAqB,mBAAO,CAAC,IAAsC;AACnE,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;;;;;;;AChDa;AACb,eAAe,mBAAO,CAAC,IAAwB;;AAE/C;AACA;AACA;AACA;AACA;;;;;;;;ACPa;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,YAAY,mBAAO,CAAC,IAAoB;AACxC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,aAAa,mBAAO,CAAC,IAA+B;AACpD,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,iCAAiC,uCAAkD;AACnF,oBAAoB,mBAAO,CAAC,IAA6B;AACzD,0BAA0B,mBAAO,CAAC,IAA6B;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,aAAa,cAAc,UAAU;AAC3E,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAiC;AACtF;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA,4DAA4D,iBAAiB;AAC7E;AACA,MAAM;AACN,IAAI,gBAAgB;AACpB;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACtDY;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVa;AACb;AACA,eAAe,mBAAO,CAAC,IAAwB;AAC/C,6BAA6B,mBAAO,CAAC,IAAuC;AAC5E,kBAAkB,mBAAO,CAAC,IAA4B;AACtD,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,WAAW,mBAAO,CAAC,GAAmB;AACtC,4BAA4B,mBAAO,CAAC,IAAsC;AAC1E,gBAAgB,mBAAO,CAAC,IAAyB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;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,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;ACnFa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,8BAA8B,mBAAO,CAAC,IAAsC;AAC5E,2BAA2B,mBAAO,CAAC,IAAqC;AACxE,eAAe,mBAAO,CAAC,IAAwB;AAC/C,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,qBAAqB,mBAAO,CAAC,IAA6B;AAC1D,8BAA8B,mBAAO,CAAC,IAAsC;AAC5E,eAAe,mBAAO,CAAC,IAAwB;AAC/C,oBAAoB,mBAAO,CAAC,IAA8B;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;;;;;;;;AC3Ca;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,WAAW,mBAAO,CAAC,IAA4B;AAC/C,iCAAiC,mBAAO,CAAC,IAA4C;AACrF,+BAA+B,mBAAO,CAAC,IAAyC;AAChF,s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EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE;AAAE,CAAC,EACjD;EAAEH,EAAE,EAAE,MAAM;EAAEC,IAAI,EAAE,EAAE;EAAEC,IAAI,EAAE,EAAE;EAAE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EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEG,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAED,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAEA,YAAY,CAAC,EAAE,CAAC,CAAC,EAAEA,YAAY,CAAC,EACpC,CAAC,CAAC,EAAED,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,CAAC,CAAC,EAAEA,WAAW,CAAC,EAClC,CAAC,CAAC,EAAEA,WAAW,CAAC,EAAE,C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AAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACd,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAChB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EACtC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EACtC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAC1C,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAC1C,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,EAAE,GAAG,CAAC,EACR,CAAC,CAAC,EAAE,GAAG,CAAC,EACR,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,EAAE,GAAG,CAAC,EACR,CAAC,CAAC,EAAE,GAAG,CAAC,EACR,CAAC,CAAC,EAAE,GAAG,CAAC,EACR,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,IAAI,CAAC,EACT,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EACtC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EACtC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EACtC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EACtC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EACtC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAC/B;AAGD,MAAMC,WAAW,GAAG,CAClB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAClB,CAAC,EAAE,EAAEd,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAEA,QAAQ,CAAC,EAC9B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAC9C,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAC9C,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAC9C,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EACtB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EACpB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EACpB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EACpB,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CACvC;AAGD,MAAMe,WAAW,GAAG,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,GAAG,CAAC,EACT,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAClB,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,EAAE,CAAC,EACR,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAClC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CACnC;AAGD,MAAMC,WAAW,GAAG,CAClB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAC/B;AAMD,MAAMC,eAAe,CAAC;EACpB3Z,WAAWA,CAAC4Z,MAAM,EAAgB;IAAA,IAAdnb,OAAO,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAC9B,IAAI,CAACsb,MAAM,IAAI,OAAOA,MAAM,CAACC,IAAI,KAAK,UAAU,EAAE;MAChD,MAAM,IAAI/b,KAAK,CAAC,+CAA+C,CAAC;IAClE;IACA,IAAI,CAAC8b,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACE,GAAG,GAAG,KAAK;IAEhB,IAAI,CAAC5R,QAAQ,GAAGzJ,OAAO,CAACrI,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC2jB,MAAM,GAAGtb,OAAO,CAACub,SAAS,IAAI,KAAK;IACxC,IAAI,CAACC,SAAS,GAAGxb,OAAO,CAACyb,gBAAgB,IAAI,KAAK;IAClD,IAAI,CAACC,OAAO,GAAG1b,OAAO,CAAC2b,OAAO,IAAI,IAAI;IACtC,IAAI,CAACC,IAAI,GAAG5b,OAAO,CAAC6b,IAAI,IAAI,CAAC;IAC7B,IAAI,CAACC,OAAO,GAAG9b,OAAO,CAAC+b,UAAU,IAAI,IAAI;IACzC,IAAI,CAACC,KAAK,GAAGhc,OAAO,CAACic,QAAQ,IAAI,KAAK;IAEtC,IAAI,CAACC,UAAU,GAAG,IAAIlY,WAAW,CAAC,IAAI,CAAC0X,OAAO,GAAG,CAAC,CAAC;IACnD,IAAI,CAACS,OAAO,GAAG,IAAInY,WAAW,CAAC,IAAI,CAAC0X,OAAO,GAAG,CAAC,CAAC;IAEhD,IAAI,CAACQ,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAACR,OAAO;IACjC,IAAI,CAACU,SAAS,GAAG,CAAC;IAElB,IAAI,CAACC,GAAG,GAAG,CAAC;IACZ,IAAI,CAACC,UAAU,GAAG,IAAI,CAAC7S,QAAQ,GAAG,CAAC;IACnC,IAAI,CAAC8S,SAAS,GAAG,CAAC;IAClB,IAAI,CAACC,QAAQ,GAAG,CAAC;IACjB,IAAI,CAACC,UAAU,GAAG,CAAC;IACnB,IAAI,CAACC,QAAQ,GAAG,KAAK;IAErB,IAAIC,KAAK;IACT,OAAO,CAACA,KAAK,GAAG,IAAI,CAACC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;MACzC,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAC;IAClB;IACA,IAAIF,KAAK,KAAK,CAAC,EAAE;MACf,IAAI,CAACE,QAAQ,CAAC,EAAE,CAAC;IACnB;IACA,IAAI,IAAI,CAACpT,QAAQ,GAAG,CAAC,EAAE;MACrB,IAAI,CAAC6S,UAAU,GAAG,CAAC,IAAI,CAACM,SAAS,CAAC,CAAC,CAAC;MACpC,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAC;IAClB;EACF;EAEAC,YAAYA,CAAA,EAAG;IACb,IAAI,IAAI,CAACzB,GAAG,EAAE;MACZ,OAAO,CAAC,CAAC;IACX;IACA,MAAMc,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,MAAMD,UAAU,GAAG,IAAI,CAACA,UAAU;IAClC,MAAMR,OAAO,GAAG,IAAI,CAACA,OAAO;IAE5B,IAAIqB,MAAM,EAAEC,WAAW,EAAEC,IAAI,EAAEva,CAAC;IAEhC,IAAI,IAAI,CAAC+Z,UAAU,KAAK,CAAC,EAAE;MACzB,IAAI,IAAI,CAACC,QAAQ,EAAE;QACjB,IAAI,CAACrB,GAAG,GAAG,IAAI;MACjB;MACA,IAAI,IAAI,CAACA,GAAG,EAAE;QACZ,OAAO,CAAC,CAAC;MACX;MACA,IAAI,CAAC6B,GAAG,GAAG,KAAK;MAEhB,IAAIP,KAAK,EAAEQ,KAAK,EAAEC,KAAK;MACvB,IAAI,IAAI,CAACd,UAAU,EAAE;QACnB,KAAK5Z,CAAC,GAAG,CAAC,EAAEwZ,UAAU,CAACxZ,CAAC,CAAC,GAAGgZ,OAAO,EAAE,EAAEhZ,CAAC,EAAE;UACxCyZ,OAAO,CAACzZ,CAAC,CAAC,GAAGwZ,UAAU,CAACxZ,CAAC,CAAC;QAC5B;QACAyZ,OAAO,CAACzZ,CAAC,EAAE,CAAC,GAAGgZ,OAAO;QACtBS,OAAO,CAACzZ,CAAC,CAAC,GAAGgZ,OAAO;QACpBQ,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;QACjB,IAAI,CAACE,SAAS,GAAG,CAAC;QAClBW,MAAM,GAAG,CAAC;QACVC,WAAW,GAAG,CAAC;QAEf,OAAOd,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;UAC3CiB,KAAK,GAAG,IAAI,CAACU,cAAc,CAAC,CAAC;UAC7B,QAAQV,KAAK;YACX,KAAKxC,UAAU;cACb,IAAI,CAACmD,UAAU,CAACnB,OAAO,CAACY,MAAM,GAAG,CAAC,CAAC,EAAEC,WAAW,CAAC;cACjD,IAAIb,OAAO,CAACY,MAAM,GAAG,CAAC,CAAC,GAAGrB,OAAO,EAAE;gBACjCqB,MAAM,IAAI,CAAC;cACb;cACA;YACF,KAAK3C,WAAW;cACduC,KAAK,GAAGQ,KAAK,GAAG,CAAC;cACjB,IAAIH,WAAW,EAAE;gBACf,GAAG;kBACDL,KAAK,IAAIS,KAAK,GAAG,IAAI,CAACG,aAAa,CAAC,CAAC;gBACvC,CAAC,QAAQH,KAAK,IAAI,EAAE;gBACpB,GAAG;kBACDD,KAAK,IAAIC,KAAK,GAAG,IAAI,CAACI,aAAa,CAAC,CAAC;gBACvC,CAAC,QAAQJ,KAAK,IAAI,EAAE;cACtB,CAAC,MAAM;gBACL,GAAG;kBACDT,KAAK,IAAIS,KAAK,GAAG,IAAI,CAACI,aAAa,CAAC,CAAC;gBACvC,CAAC,QAAQJ,KAAK,IAAI,EAAE;gBACpB,GAAG;kBACDD,KAAK,IAAIC,KAAK,GAAG,IAAI,CAACG,aAAa,CAAC,CAAC;gBACvC,CAAC,QAAQH,KAAK,IAAI,EAAE;cACtB;cACA,IAAI,CAACE,UAAU,CAACpB,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGO,KAAK,EAAEK,WAAW,CAAC;cAChE,IAAId,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;gBACxC,IAAI,CAAC4B,UAAU,CACbpB,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGe,KAAK,EAClCH,WAAW,GAAG,CAChB,CAAC;cACH;cACA,OACEb,OAAO,CAACY,MAAM,CAAC,IAAIb,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,IAC7CD,OAAO,CAACY,MAAM,CAAC,GAAGrB,OAAO,EACzB;gBACAqB,MAAM,IAAI,CAAC;cACb;cACA;YACF,KAAKrC,YAAY;cACf,IAAI,CAAC4C,UAAU,CAACnB,OAAO,CAACY,MAAM,CAAC,GAAG,CAAC,EAAEC,WAAW,CAAC;cACjDA,WAAW,IAAI,CAAC;cAChB,IAAId,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;gBACxC,EAAEqB,MAAM;gBACR,OACEZ,OAAO,CAACY,MAAM,CAAC,IAAIb,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,IAC7CD,OAAO,CAACY,MAAM,CAAC,GAAGrB,OAAO,EACzB;kBACAqB,MAAM,IAAI,CAAC;gBACb;cACF;cACA;YACF,KAAKvC,YAAY;cACf,IAAI,CAAC8C,UAAU,CAACnB,OAAO,CAACY,MAAM,CAAC,GAAG,CAAC,EAAEC,WAAW,CAAC;cACjDA,WAAW,IAAI,CAAC;cAChB,IAAId,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;gBACxC,EAAEqB,MAAM;gBACR,OACEZ,OAAO,CAACY,MAAM,CAAC,IAAIb,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,IAC7CD,OAAO,CAACY,MAAM,CAAC,GAAGrB,OAAO,EACzB;kBACAqB,MAAM,IAAI,CAAC;gBACb;cACF;cACA;YACF,KAAKzC,YAAY;cACf,IAAI,CAACgD,UAAU,CAACnB,OAAO,CAACY,MAAM,CAAC,GAAG,CAAC,EAAEC,WAAW,CAAC;cACjDA,WAAW,IAAI,CAAC;cAChB,IAAId,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;gBACxC,EAAEqB,MAAM;gBACR,OACEZ,OAAO,CAACY,MAAM,CAAC,IAAIb,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,IAC7CD,OAAO,CAACY,MAAM,CAAC,GAAGrB,OAAO,EACzB;kBACAqB,MAAM,IAAI,CAAC;gBACb;cACF;cACA;YACF,KAAK1C,WAAW;cACd,IAAI,CAACiD,UAAU,CAACnB,OAAO,CAACY,MAAM,CAAC,EAAEC,WAAW,CAAC;cAC7CA,WAAW,IAAI,CAAC;cAChB,IAAId,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;gBACxC,EAAEqB,MAAM;gBACR,OACEZ,OAAO,CAACY,MAAM,CAAC,IAAIb,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,IAC7CD,OAAO,CAACY,MAAM,CAAC,GAAGrB,OAAO,EACzB;kBACAqB,MAAM,IAAI,CAAC;gBACb;cACF;cACA;YACF,KAAKpC,YAAY;cACf,IAAI,CAAC8C,aAAa,CAACtB,OAAO,CAACY,MAAM,CAAC,GAAG,CAAC,EAAEC,WAAW,CAAC;cACpDA,WAAW,IAAI,CAAC;cAChB,IAAId,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;gBACxC,IAAIqB,MAAM,GAAG,CAAC,EAAE;kBACd,EAAEA,MAAM;gBACV,CAAC,MAAM;kBACL,EAAEA,MAAM;gBACV;gBACA,OACEZ,OAAO,CAACY,MAAM,CAAC,IAAIb,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,IAC7CD,OAAO,CAACY,MAAM,CAAC,GAAGrB,OAAO,EACzB;kBACAqB,MAAM,IAAI,CAAC;gBACb;cACF;cACA;YACF,KAAKtC,YAAY;cACf,IAAI,CAACgD,aAAa,CAACtB,OAAO,CAACY,MAAM,CAAC,GAAG,CAAC,EAAEC,WAAW,CAAC;cACpDA,WAAW,IAAI,CAAC;cAChB,IAAId,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;gBACxC,IAAIqB,MAAM,GAAG,CAAC,EAAE;kBACd,EAAEA,MAAM;gBACV,CAAC,MAAM;kBACL,EAAEA,MAAM;gBACV;gBACA,OACEZ,OAAO,CAACY,MAAM,CAAC,IAAIb,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,IAC7CD,OAAO,CAACY,MAAM,CAAC,GAAGrB,OAAO,EACzB;kBACAqB,MAAM,IAAI,CAAC;gBACb;cACF;cACA;YACF,KAAKxC,YAAY;cACf,IAAI,CAACkD,aAAa,CAACtB,OAAO,CAACY,MAAM,CAAC,GAAG,CAAC,EAAEC,WAAW,CAAC;cACpDA,WAAW,IAAI,CAAC;cAChB,IAAId,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;gBACxC,IAAIqB,MAAM,GAAG,CAAC,EAAE;kBACd,EAAEA,MAAM;gBACV,CAAC,MAAM;kBACL,EAAEA,MAAM;gBACV;gBACA,OACEZ,OAAO,CAACY,MAAM,CAAC,IAAIb,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,IAC7CD,OAAO,CAACY,MAAM,CAAC,GAAGrB,OAAO,EACzB;kBACAqB,MAAM,IAAI,CAAC;gBACb;cACF;cACA;YACF,KAAK7C,QAAQ;cACX,IAAI,CAACoD,UAAU,CAAC5B,OAAO,EAAE,CAAC,CAAC;cAC3B,IAAI,CAACL,GAAG,GAAG,IAAI;cACf;YACF;cACEtc,IAAI,CAAC,aAAa,CAAC;cACnB,IAAI,CAACue,UAAU,CAAC5B,OAAO,EAAE,CAAC,CAAC;cAC3B,IAAI,CAACwB,GAAG,GAAG,IAAI;UACnB;QACF;MACF,CAAC,MAAM;QACLhB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;QACjB,IAAI,CAACE,SAAS,GAAG,CAAC;QAClBY,WAAW,GAAG,CAAC;QACf,OAAOd,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;UAC3CiB,KAAK,GAAG,CAAC;UACT,IAAIK,WAAW,EAAE;YACf,GAAG;cACDL,KAAK,IAAIS,KAAK,GAAG,IAAI,CAACG,aAAa,CAAC,CAAC;YACvC,CAAC,QAAQH,KAAK,IAAI,EAAE;UACtB,CAAC,MAAM;YACL,GAAG;cACDT,KAAK,IAAIS,KAAK,GAAG,IAAI,CAACI,aAAa,CAAC,CAAC;YACvC,CAAC,QAAQJ,KAAK,IAAI,EAAE;UACtB;UACA,IAAI,CAACE,UAAU,CAACpB,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGO,KAAK,EAAEK,WAAW,CAAC;UAChEA,WAAW,IAAI,CAAC;QAClB;MACF;MAEA,IAAIU,MAAM,GAAG,KAAK;MAElB,IAAI,IAAI,CAAClC,SAAS,EAAE;QAClB,IAAI,CAACe,SAAS,IAAI,CAAC,CAAC;MACtB;MAEA,IAAI,CAAC,IAAI,CAACT,OAAO,IAAI,IAAI,CAACO,GAAG,KAAK,IAAI,CAACT,IAAI,GAAG,CAAC,EAAE;QAC/C,IAAI,CAACc,QAAQ,GAAG,IAAI;MACtB,CAAC,MAAM;QACLC,KAAK,GAAG,IAAI,CAACC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAI,IAAI,CAACtB,MAAM,EAAE;UACf,OAAOqB,KAAK,KAAKzC,QAAQ,IAAIyC,KAAK,KAAK,CAAC,EAAE;YACxC,IAAI,CAACE,QAAQ,CAAC,CAAC,CAAC;YAChBF,KAAK,GAAG,IAAI,CAACC,SAAS,CAAC,EAAE,CAAC;UAC5B;QACF,CAAC,MAAM;UACL,OAAOD,KAAK,KAAK,CAAC,EAAE;YAClB,IAAI,CAACE,QAAQ,CAAC,CAAC,CAAC;YAChBF,KAAK,GAAG,IAAI,CAACC,SAAS,CAAC,EAAE,CAAC;UAC5B;QACF;QACA,IAAID,KAAK,KAAK,CAAC,EAAE;UACf,IAAI,CAACE,QAAQ,CAAC,EAAE,CAAC;UACjBa,MAAM,GAAG,IAAI;QACf,CAAC,MAAM,IAAIf,KAAK,KAAKzC,QAAQ,EAAE;UAC7B,IAAI,CAACmB,GAAG,GAAG,IAAI;QACjB;MACF;MAEA,IAAI,CAAC,IAAI,CAACA,GAAG,IAAI,IAAI,CAAC5R,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,CAACiT,QAAQ,EAAE;QACpD,IAAI,CAACJ,UAAU,GAAG,CAAC,IAAI,CAACM,SAAS,CAAC,CAAC,CAAC;QACpC,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAC;MAClB;MAEA,IAAI,IAAI,CAACf,OAAO,IAAI4B,MAAM,IAAI,IAAI,CAAClC,SAAS,EAAE;QAC5CmB,KAAK,GAAG,IAAI,CAACC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAID,KAAK,KAAK,CAAC,EAAE;UACf,IAAI,CAACE,QAAQ,CAAC,EAAE,CAAC;UACjB,IAAI,IAAI,CAACpT,QAAQ,GAAG,CAAC,EAAE;YACrB,IAAI,CAACmT,SAAS,CAAC,CAAC,CAAC;YACjB,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAC;UAClB;UACA,IAAI,IAAI,CAACpT,QAAQ,IAAI,CAAC,EAAE;YACtB,KAAK/G,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAE,EAAEA,CAAC,EAAE;cACtBia,KAAK,GAAG,IAAI,CAACC,SAAS,CAAC,EAAE,CAAC;cAC1B,IAAID,KAAK,KAAK,CAAC,EAAE;gBACf5d,IAAI,CAAC,gBAAgB,GAAG4d,KAAK,CAAC;cAChC;cACA,IAAI,CAACE,QAAQ,CAAC,EAAE,CAAC;cACjB,IAAI,IAAI,CAACpT,QAAQ,GAAG,CAAC,EAAE;gBACrB,IAAI,CAACmT,SAAS,CAAC,CAAC,CAAC;gBACjB,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAC;cAClB;YACF;UACF;UACA,IAAI,CAACxB,GAAG,GAAG,IAAI;QACjB;MACF,CAAC,MAAM,IAAI,IAAI,CAAC6B,GAAG,IAAI,IAAI,CAAC5B,MAAM,EAAE;QAClC,OAAO,IAAI,EAAE;UACXqB,KAAK,GAAG,IAAI,CAACC,SAAS,CAAC,EAAE,CAAC;UAC1B,IAAID,KAAK,KAAKzC,QAAQ,EAAE;YACtB,IAAI,CAACmB,GAAG,GAAG,IAAI;YACf,OAAO,CAAC,CAAC;UACX;UACA,IAAIsB,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB;UACF;UACA,IAAI,CAACE,QAAQ,CAAC,CAAC,CAAC;QAClB;QACA,IAAI,CAACA,QAAQ,CAAC,EAAE,CAAC;QACjB,IAAI,IAAI,CAACpT,QAAQ,GAAG,CAAC,EAAE;UACrB,IAAI,CAACoT,QAAQ,CAAC,CAAC,CAAC;UAChB,IAAI,CAACP,UAAU,GAAG,EAAEK,KAAK,GAAG,CAAC,CAAC;QAChC;MACF;MAEA,IAAI,CAACF,UAAU,GACbP,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GACbA,UAAU,CAAE,IAAI,CAACE,SAAS,GAAG,CAAC,CAAE,GAChCF,UAAU,CAAE,IAAI,CAACE,SAAS,GAAG,CAAC,CAAE;MACtC,IAAI,CAACC,GAAG,EAAE;IACZ;IAEA,IAAIpV,CAAC;IACL,IAAI,IAAI,CAACwV,UAAU,IAAI,CAAC,EAAE;MACxBxV,CAAC,GAAG,IAAI,CAACmV,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;MACjC,IAAI,CAACK,UAAU,IAAI,CAAC;MACpB,IAAI,IAAI,CAACA,UAAU,KAAK,CAAC,IAAIP,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;QACjE,IAAI,CAACU,SAAS,EAAE;QAChB,IAAI,CAACK,UAAU,GACbP,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGF,UAAU,CAAC,IAAI,CAACE,SAAS,GAAG,CAAC,CAAC;MAC/D;IACF,CAAC,MAAM;MACLa,IAAI,GAAG,CAAC;MACRhW,CAAC,GAAG,CAAC;MACL,GAAG;QACD,IAAI,OAAO,IAAI,CAACwV,UAAU,KAAK,QAAQ,EAAE;UACvC,MAAM,IAAIxa,WAAW,CACnB,8DACF,CAAC;QACH;QAEA,IAAI,IAAI,CAACwa,UAAU,GAAGQ,IAAI,EAAE;UAC1BhW,CAAC,KAAKgW,IAAI;UACV,IAAI,EAAE,IAAI,CAACb,SAAS,GAAG,CAAC,CAAC,EAAE;YACzBnV,CAAC,IAAI,IAAI,IAAK,CAAC,GAAGgW,IAAK;UACzB;UACA,IAAI,CAACR,UAAU,IAAIQ,IAAI;UACvBA,IAAI,GAAG,CAAC;QACV,CAAC,MAAM;UACLhW,CAAC,KAAK,IAAI,CAACwV,UAAU;UACrB,IAAI,EAAE,IAAI,CAACL,SAAS,GAAG,CAAC,CAAC,EAAE;YACzBnV,CAAC,IAAI,IAAI,IAAK,CAAC,GAAG,IAAI,CAACwV,UAAW;UACpC;UACAQ,IAAI,IAAI,IAAI,CAACR,UAAU;UACvB,IAAI,CAACA,UAAU,GAAG,CAAC;UACnB,IAAIP,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGV,OAAO,EAAE;YACxC,IAAI,CAACU,SAAS,EAAE;YAChB,IAAI,CAACK,UAAU,GACbP,UAAU,CAAC,IAAI,CAACE,SAAS,CAAC,GAAGF,UAAU,CAAC,IAAI,CAACE,SAAS,GAAG,CAAC,CAAC;UAC/D,CAAC,MAAM,IAAIa,IAAI,GAAG,CAAC,EAAE;YACnBhW,CAAC,KAAKgW,IAAI;YACVA,IAAI,GAAG,CAAC;UACV;QACF;MACF,CAAC,QAAQA,IAAI;IACf;IACA,IAAI,IAAI,CAACjB,KAAK,EAAE;MACd/U,CAAC,IAAI,IAAI;IACX;IACA,OAAOA,CAAC;EACV;EAKAqW,UAAUA,CAACK,EAAE,EAAEX,WAAW,EAAE;IAC1B,MAAMd,UAAU,GAAG,IAAI,CAACA,UAAU;IAClC,IAAIE,SAAS,GAAG,IAAI,CAACA,SAAS;IAE9B,IAAIuB,EAAE,GAAGzB,UAAU,CAACE,SAAS,CAAC,EAAE;MAC9B,IAAIuB,EAAE,GAAG,IAAI,CAACjC,OAAO,EAAE;QACrB3c,IAAI,CAAC,qBAAqB,CAAC;QAC3B,IAAI,CAACme,GAAG,GAAG,IAAI;QACfS,EAAE,GAAG,IAAI,CAACjC,OAAO;MACnB;MACA,IAAKU,SAAS,GAAG,CAAC,GAAIY,WAAW,EAAE;QACjC,EAAEZ,SAAS;MACb;MAEAF,UAAU,CAACE,SAAS,CAAC,GAAGuB,EAAE;IAC5B;IACA,IAAI,CAACvB,SAAS,GAAGA,SAAS;EAC5B;EAKAqB,aAAaA,CAACE,EAAE,EAAEX,WAAW,EAAE;IAC7B,MAAMd,UAAU,GAAG,IAAI,CAACA,UAAU;IAClC,IAAIE,SAAS,GAAG,IAAI,CAACA,SAAS;IAE9B,IAAIuB,EAAE,GAAGzB,UAAU,CAACE,SAAS,CAAC,EAAE;MAC9B,IAAIuB,EAAE,GAAG,IAAI,CAACjC,OAAO,EAAE;QACrB3c,IAAI,CAAC,qBAAqB,CAAC;QAC3B,IAAI,CAACme,GAAG,GAAG,IAAI;QACfS,EAAE,GAAG,IAAI,CAACjC,OAAO;MACnB;MACA,IAAKU,SAAS,GAAG,CAAC,GAAIY,WAAW,EAAE;QACjC,EAAEZ,SAAS;MACb;MAEAF,UAAU,CAACE,SAAS,CAAC,GAAGuB,EAAE;IAC5B,CAAC,MAAM,IAAIA,EAAE,GAAGzB,UAAU,CAACE,SAAS,CAAC,EAAE;MACrC,IAAIuB,EAAE,GAAG,CAAC,EAAE;QACV5e,IAAI,CAAC,cAAc,CAAC;QACpB,IAAI,CAACme,GAAG,GAAG,IAAI;QACfS,EAAE,GAAG,CAAC;MACR;MACA,OAAOvB,SAAS,GAAG,CAAC,IAAIuB,EAAE,GAAGzB,UAAU,CAACE,SAAS,GAAG,CAAC,CAAC,EAAE;QACtD,EAAEA,SAAS;MACb;MACAF,UAAU,CAACE,SAAS,CAAC,GAAGuB,EAAE;IAC5B;IAEA,IAAI,CAACvB,SAAS,GAAGA,SAAS;EAC5B;EAWAwB,cAAcA,CAACrL,KAAK,EAAEN,GAAG,EAAE4L,KAAK,EAAEC,KAAK,EAAE;IACvC,MAAMC,UAAU,GAAGD,KAAK,IAAI,CAAC;IAC7B,KAAK,IAAIpb,CAAC,GAAG6P,KAAK,EAAE7P,CAAC,IAAIuP,GAAG,EAAE,EAAEvP,CAAC,EAAE;MACjC,IAAIhB,IAAI,GAAG,IAAI,CAACkb,SAAS,CAACla,CAAC,CAAC;MAC5B,IAAIhB,IAAI,KAAKwY,QAAQ,EAAE;QACrB,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC;MACzB;MACA,IAAIxX,CAAC,GAAGuP,GAAG,EAAE;QACXvQ,IAAI,KAAKuQ,GAAG,GAAGvP,CAAC;MAClB;MACA,IAAI,CAACqb,UAAU,IAAIrc,IAAI,IAAIqc,UAAU,EAAE;QACrC,MAAM/X,CAAC,GAAG6X,KAAK,CAACnc,IAAI,GAAGqc,UAAU,CAAC;QAClC,IAAI/X,CAAC,CAAC,CAAC,CAAC,KAAKtD,CAAC,EAAE;UACd,IAAI,CAACma,QAAQ,CAACna,CAAC,CAAC;UAChB,OAAO,CAAC,IAAI,EAAEsD,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC3B;MACF;IACF;IACA,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;EAC1B;EAKAqX,cAAcA,CAAA,EAAG;IACf,IAAI3b,IAAI,GAAG,CAAC;IACZ,IAAIsE,CAAC;IACL,IAAI,IAAI,CAAC8V,OAAO,EAAE;MAChBpa,IAAI,GAAG,IAAI,CAACkb,SAAS,CAAC,CAAC,CAAC;MACxB5W,CAAC,GAAG4U,WAAW,CAAClZ,IAAI,CAAC;MACrB,IAAIsE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;QACd,IAAI,CAAC6W,QAAQ,CAAC7W,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,OAAOA,CAAC,CAAC,CAAC,CAAC;MACb;IACF,CAAC,MAAM;MACL,MAAMgY,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,CAAC,EAAE,CAAC,EAAEhD,WAAW,CAAC;MACrD,IAAIoD,MAAM,CAAC,CAAC,CAAC,IAAIA,MAAM,CAAC,CAAC,CAAC,EAAE;QAC1B,OAAOA,MAAM,CAAC,CAAC,CAAC;MAClB;IACF;IACAjf,IAAI,CAAC,kBAAkB,CAAC;IACxB,OAAOmb,QAAQ;EACjB;EAKAsD,aAAaA,CAAA,EAAG;IACd,IAAI9b,IAAI,GAAG,CAAC;IACZ,IAAIsE,CAAC;IACL,IAAI,IAAI,CAAC8V,OAAO,EAAE;MAChBpa,IAAI,GAAG,IAAI,CAACkb,SAAS,CAAC,EAAE,CAAC;MACzB,IAAIlb,IAAI,KAAKwY,QAAQ,EAAE;QACrB,OAAO,CAAC;MACV;MAEAlU,CAAC,GAAGtE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAGmZ,WAAW,CAACnZ,IAAI,CAAC,GAAGoZ,WAAW,CAACpZ,IAAI,IAAI,CAAC,CAAC;MAEhE,IAAIsE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACZ,IAAI,CAAC6W,QAAQ,CAAC7W,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,OAAOA,CAAC,CAAC,CAAC,CAAC;MACb;IACF,CAAC,MAAM;MACL,IAAIgY,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE9C,WAAW,CAAC;MACnD,IAAIkD,MAAM,CAAC,CAAC,CAAC,EAAE;QACb,OAAOA,MAAM,CAAC,CAAC,CAAC;MAClB;MAEAA,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE/C,WAAW,CAAC;MACjD,IAAImD,MAAM,CAAC,CAAC,CAAC,EAAE;QACb,OAAOA,MAAM,CAAC,CAAC,CAAC;MAClB;IACF;IACAjf,IAAI,CAAC,gBAAgB,CAAC;IACtB,IAAI,CAAC8d,QAAQ,CAAC,CAAC,CAAC;IAChB,OAAO,CAAC;EACV;EAKAU,aAAaA,CAAA,EAAG;IACd,IAAI7b,IAAI,EAAEsE,CAAC;IACX,IAAI,IAAI,CAAC8V,OAAO,EAAE;MAChBpa,IAAI,GAAG,IAAI,CAACkb,SAAS,CAAC,EAAE,CAAC;MACzB,IAAIlb,IAAI,KAAKwY,QAAQ,EAAE;QACrB,OAAO,CAAC;MACV;MACA,IAAIxY,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;QACnBsE,CAAC,GAAG+U,WAAW,CAACrZ,IAAI,CAAC;MACvB,CAAC,MAAM,IAAIA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAIA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;QAC7CsE,CAAC,GAAGgV,WAAW,CAAC,CAACtZ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;MACnC,CAAC,MAAM;QACLsE,CAAC,GAAGiV,WAAW,CAACvZ,IAAI,IAAI,CAAC,CAAC;MAC5B;MAEA,IAAIsE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACZ,IAAI,CAAC6W,QAAQ,CAAC7W,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,OAAOA,CAAC,CAAC,CAAC,CAAC;MACb;IACF,CAAC,MAAM;MACL,IAAIgY,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE3C,WAAW,CAAC;MACnD,IAAI+C,MAAM,CAAC,CAAC,CAAC,EAAE;QACb,OAAOA,MAAM,CAAC,CAAC,CAAC;MAClB;MAEAA,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE5C,WAAW,EAAE,EAAE,CAAC;MACpD,IAAIgD,MAAM,CAAC,CAAC,CAAC,EAAE;QACb,OAAOA,MAAM,CAAC,CAAC,CAAC;MAClB;MAEAA,MAAM,GAAG,IAAI,CAACJ,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE7C,WAAW,CAAC;MACjD,IAAIiD,MAAM,CAAC,CAAC,CAAC,EAAE;QACb,OAAOA,MAAM,CAAC,CAAC,CAAC;MAClB;IACF;IACAjf,IAAI,CAAC,gBAAgB,CAAC;IACtB,IAAI,CAAC8d,QAAQ,CAAC,CAAC,CAAC;IAChB,OAAO,CAAC;EACV;EAKAD,SAASA,CAAC1X,CAAC,EAAE;IACX,IAAI+B,CAAC;IACL,OAAO,IAAI,CAACsV,SAAS,GAAGrX,CAAC,EAAE;MACzB,IAAI,CAAC+B,CAAC,GAAG,IAAI,CAACkU,MAAM,CAACC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;QACnC,IAAI,IAAI,CAACmB,SAAS,KAAK,CAAC,EAAE;UACxB,OAAOrC,QAAQ;QACjB;QACA,OAAQ,IAAI,CAACsC,QAAQ,IAAKtX,CAAC,GAAG,IAAI,CAACqX,SAAU,GAAK,MAAM,IAAK,EAAE,GAAGrX,CAAG;MACvE;MACA,IAAI,CAACsX,QAAQ,GAAI,IAAI,CAACA,QAAQ,IAAI,CAAC,GAAIvV,CAAC;MACxC,IAAI,CAACsV,SAAS,IAAI,CAAC;IACrB;IACA,OAAQ,IAAI,CAACC,QAAQ,IAAK,IAAI,CAACD,SAAS,GAAGrX,CAAE,GAAK,MAAM,IAAK,EAAE,GAAGA,CAAG;EACvE;EAKA2X,QAAQA,CAAC3X,CAAC,EAAE;IACV,IAAI,CAAC,IAAI,CAACqX,SAAS,IAAIrX,CAAC,IAAI,CAAC,EAAE;MAC7B,IAAI,CAACqX,SAAS,GAAG,CAAC;IACpB;EACF;AACF;;;;;;;;;;ACjhC0D;AACe;AACb;AACf;AAE7C,MAAM0B,UAAU,SAAS9c,aAAa,CAAC;EACrCI,WAAWA,CAACvC,GAAG,EAAE;IACf,KAAK,CAAE,gBAAeA,GAAI,EAAC,EAAE,YAAY,CAAC;EAC5C;AACF;AAGA,MAAMkf,YAAY,CAAC;EACjBC,WAAWA,CAACC,EAAE,EAAE;IACd,IAAIA,EAAE,IAAI,IAAI,EAAE;MACd,OAAO,IAAI,CAACA,EAAE,CAAC;IACjB;IACA,OAAQ,IAAI,CAACA,EAAE,CAAC,GAAG,IAAIC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;EAC3C;AACF;AAEA,MAAMC,eAAe,CAAC;EACpB/c,WAAWA,CAAC8R,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;IAC5B,IAAI,CAACoB,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACd,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACN,GAAG,GAAGA,GAAG;EAChB;EAEA,IAAIvI,OAAOA,CAAA,EAAG;IACZ,MAAMA,OAAO,GAAG,IAAI0P,iBAAiB,CAAC,IAAI,CAAC/F,IAAI,EAAE,IAAI,CAACd,KAAK,EAAE,IAAI,CAACN,GAAG,CAAC;IACtE,OAAOxR,WAAM,CAAC,IAAI,EAAE,SAAS,EAAEiJ,OAAO,CAAC;EACzC;EAEA,IAAI6U,YAAYA,CAAA,EAAG;IACjB,MAAMC,KAAK,GAAG,IAAIN,YAAY,CAAC,CAAC;IAChC,OAAOzd,WAAM,CAAC,IAAI,EAAE,cAAc,EAAE+d,KAAK,CAAC;EAC5C;AACF;AAEA,MAAMC,UAAU,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9B,MAAMC,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AAI7B,SAASC,aAAaA,CAACJ,YAAY,EAAEK,SAAS,EAAElV,OAAO,EAAE;EACvD,MAAMkQ,QAAQ,GAAG2E,YAAY,CAACJ,WAAW,CAACS,SAAS,CAAC;EACpD,IAAIC,IAAI,GAAG,CAAC;EAEZ,SAASC,QAAQA,CAAChf,MAAM,EAAE;IACxB,IAAI4Q,CAAC,GAAG,CAAC;IACT,KAAK,IAAIhO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG5C,MAAM,EAAE4C,CAAC,EAAE,EAAE;MAC/B,MAAMqc,GAAG,GAAGrV,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEiF,IAAI,CAAC;MAC3CA,IAAI,GAAGA,IAAI,GAAG,GAAG,GAAIA,IAAI,IAAI,CAAC,GAAIE,GAAG,GAAI,CAAEF,IAAI,IAAI,CAAC,GAAIE,GAAG,IAAI,GAAG,GAAI,GAAG;MACzErO,CAAC,GAAIA,CAAC,IAAI,CAAC,GAAIqO,GAAG;IACpB;IACA,OAAOrO,CAAC,KAAK,CAAC;EAChB;EAEA,MAAMsO,IAAI,GAAGF,QAAQ,CAAC,CAAC,CAAC;EAGxB,MAAMle,KAAK,GAAGke,QAAQ,CAAC,CAAC,CAAC,GACRA,QAAQ,CAAC,CAAC,CAAC,GACTA,QAAQ,CAAC,CAAC,CAAC,GACTA,QAAQ,CAAC,CAAC,CAAC,GACTA,QAAQ,CAAC,CAAC,CAAC,GACTA,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,GACtBA,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,GACpBA,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAClBA,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAClBA,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GACjBA,QAAQ,CAAC,CAAC,CAAC;EAEzB,IAAIG,WAAW;EACf,IAAID,IAAI,KAAK,CAAC,EAAE;IACdC,WAAW,GAAGre,KAAK;EACrB,CAAC,MAAM,IAAIA,KAAK,GAAG,CAAC,EAAE;IACpBqe,WAAW,GAAG,CAACre,KAAK;EACtB;EAEA,IAAIqe,WAAW,IAAIP,UAAU,IAAIO,WAAW,IAAIR,UAAU,EAAE;IAC1D,OAAOQ,WAAW;EACpB;EACA,OAAO,IAAI;AACb;AAGA,SAASC,UAAUA,CAACX,YAAY,EAAE7U,OAAO,EAAEyV,UAAU,EAAE;EACrD,MAAMvF,QAAQ,GAAG2E,YAAY,CAACJ,WAAW,CAAC,MAAM,CAAC;EAEjD,IAAIU,IAAI,GAAG,CAAC;EACZ,KAAK,IAAInc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyc,UAAU,EAAEzc,CAAC,EAAE,EAAE;IACnC,MAAMqc,GAAG,GAAGrV,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEiF,IAAI,CAAC;IAC3CA,IAAI,GAAIA,IAAI,IAAI,CAAC,GAAIE,GAAG;EAC1B;EACA,IAAII,UAAU,GAAG,EAAE,EAAE;IACnB,OAAON,IAAI,GAAI,CAAC,CAAC,IAAIM,UAAU,IAAI,CAAE;EACvC;EACA,OAAON,IAAI,GAAG,UAAU;AAC1B;AAGA,MAAMO,YAAY,GAAG,CACnB,kBAAkB,EAClB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,wBAAwB,EACxB,IAAI,EACJ,qBAAqB,EACrB,6BAA6B,EAC7B,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,mBAAmB,EACnB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,4BAA4B,EAC5B,IAAI,EACJ,yBAAyB,EACzB,iCAAiC,EACjC,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,2BAA2B,EAC3B,IAAI,EACJ,wBAAwB,EACxB,gCAAgC,EAChC,qCAAqC,EACrC,IAAI,EACJ,kCAAkC,EAClC,0CAA0C,EAC1C,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,WAAW,CACZ;AAED,MAAMC,eAAe,GAAG,CACtB,CACE;EAAEvW,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,CAChB,EACD,CACE;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,CAChB,EACD,CACE;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,CAChB,EACD,CACE;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EAChB;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE,CAAC;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,EACf;EAAED,CAAC,EAAE,CAAC,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC,CAChB,CACF;AAED,MAAMuW,mBAAmB,GAAG,CAC1B;EACEC,MAAM,EAAE,CACN;IAAEzW,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,CAChB;EACDyW,SAAS,EAAE,CACT;IAAE1W,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,EACd;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,EACd;IAAED,CAAC,EAAE,CAAC,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,EACd;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC;AAElB,CAAC,EACD;EACEwW,MAAM,EAAE,CACN;IAAEzW,CAAC,EAAE,CAAC,CAAC;IAAEC,CAAC,EAAE,CAAC;EAAE,CAAC,EAChB;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,CAChB;EACDyW,SAAS,EAAE,CACT;IAAE1W,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE,CAAC;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,EACf;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,EACd;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,EACd;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,EACd;IAAED,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC;AAElB,CAAC,CACF;AAGD,MAAM0W,cAAc,GAAG,CACrB,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,CACP;AAED,MAAMC,wBAAwB,GAAG,CAC/B,MAAM,EACN,MAAM,CACP;AAED,SAASC,qBAAqBA,CAAC/G,KAAK,EAAEC,MAAM,EAAE+G,eAAe,EAAE;EAC7D,MAAMlW,OAAO,GAAGkW,eAAe,CAAClW,OAAO;EACvC,MAAMkQ,QAAQ,GAAGgG,eAAe,CAACrB,YAAY,CAACJ,WAAW,CAAC,IAAI,CAAC;EAC/D,MAAM0B,MAAM,GAAG,EAAE;EACjB,IAAIC,YAAY,EAAEpd,CAAC,EAAEqd,CAAC,EAAEC,KAAK,EAAE3D,GAAG,EAAE4D,IAAI,EAAEC,IAAI;EAK9C,MAAMC,cAAc,GAAG,MAAM;EAE7B,KAAKzd,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmW,MAAM,EAAEnW,CAAC,EAAE,EAAE;IAC3B2Z,GAAG,GAAGwD,MAAM,CAACnd,CAAC,CAAC,GAAG,IAAIU,UAAU,CAACwV,KAAK,CAAC;IACvCqH,IAAI,GAAGvd,CAAC,GAAG,CAAC,GAAG2Z,GAAG,GAAGwD,MAAM,CAACnd,CAAC,GAAG,CAAC,CAAC;IAClCwd,IAAI,GAAGxd,CAAC,GAAG,CAAC,GAAG2Z,GAAG,GAAGwD,MAAM,CAACnd,CAAC,GAAG,CAAC,CAAC;IAIlCod,YAAY,GACTI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GACbA,IAAI,CAAC,CAAC,CAAC,IAAI,EAAG,GACdA,IAAI,CAAC,CAAC,CAAC,IAAI,EAAG,GACdD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAE,GACbA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAE,GACbA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAE,GACbA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAE;IAEhB,KAAKF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;MAC1B1D,GAAG,CAAC0D,CAAC,CAAC,GAAGC,KAAK,GAAGtW,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEkG,YAAY,CAAC;MAIxDA,YAAY,GACT,CAACA,YAAY,GAAGK,cAAc,KAAK,CAAC,IACpCJ,CAAC,GAAG,CAAC,GAAGnH,KAAK,GAAGsH,IAAI,CAACH,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IACtCA,CAAC,GAAG,CAAC,GAAGnH,KAAK,GAAGqH,IAAI,CAACF,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GACtCC,KAAK;IACT;EACF;EAEA,OAAOH,MAAM;AACf;AAGA,SAASO,YAAYA,CACnBC,GAAG,EACHzH,KAAK,EACLC,MAAM,EACNyH,aAAa,EACbC,UAAU,EACVpO,IAAI,EACJqO,EAAE,EACFZ,eAAe,EACf;EACA,IAAIS,GAAG,EAAE;IACP,MAAMI,KAAK,GAAG,IAAIC,MAAM,CACtBd,eAAe,CAACvM,IAAI,EACpBuM,eAAe,CAACrN,KAAK,EACrBqN,eAAe,CAAC3N,GAClB,CAAC;IACD,OAAO0O,eAAe,CAACF,KAAK,EAAE7H,KAAK,EAAEC,MAAM,EAAE,KAAK,CAAC;EACrD;EAGA,IACEyH,aAAa,KAAK,CAAC,IACnB,CAACnO,IAAI,IACL,CAACoO,UAAU,IACXC,EAAE,CAAC1gB,MAAM,KAAK,CAAC,IACf0gB,EAAE,CAAC,CAAC,CAAC,CAAC1X,CAAC,KAAK,CAAC,IACb0X,EAAE,CAAC,CAAC,CAAC,CAACzX,CAAC,KAAK,CAAC,CAAC,IACdyX,EAAE,CAAC,CAAC,CAAC,CAAC1X,CAAC,KAAK,CAAC,CAAC,IACd0X,EAAE,CAAC,CAAC,CAAC,CAACzX,CAAC,KAAK,CAAC,CAAC,IACdyX,EAAE,CAAC,CAAC,CAAC,CAAC1X,CAAC,KAAK,CAAC,IACb0X,EAAE,CAAC,CAAC,CAAC,CAACzX,CAAC,KAAK,CAAC,CAAC,IACdyX,EAAE,CAAC,CAAC,CAAC,CAAC1X,CAAC,KAAK,CAAC,CAAC,IACd0X,EAAE,CAAC,CAAC,CAAC,CAACzX,CAAC,KAAK,CAAC,CAAC,EACd;IACA,OAAO4W,qBAAqB,CAAC/G,KAAK,EAAEC,MAAM,EAAE+G,eAAe,CAAC;EAC9D;EAEA,MAAMgB,OAAO,GAAG,CAAC,CAACzO,IAAI;EACtB,MAAM0O,QAAQ,GAAGxB,eAAe,CAACiB,aAAa,CAAC,CAACQ,MAAM,CAACN,EAAE,CAAC;EAK1DK,QAAQ,CAACE,IAAI,CAAC,UAAU/Z,CAAC,EAAEvB,CAAC,EAAE;IAC5B,OAAOuB,CAAC,CAAC+B,CAAC,GAAGtD,CAAC,CAACsD,CAAC,IAAI/B,CAAC,CAAC8B,CAAC,GAAGrD,CAAC,CAACqD,CAAC;EAC/B,CAAC,CAAC;EAEF,MAAMkY,cAAc,GAAGH,QAAQ,CAAC/gB,MAAM;EACtC,MAAMmhB,SAAS,GAAG,IAAI5C,SAAS,CAAC2C,cAAc,CAAC;EAC/C,MAAME,SAAS,GAAG,IAAI7C,SAAS,CAAC2C,cAAc,CAAC;EAC/C,MAAMG,uBAAuB,GAAG,EAAE;EAClC,IAAIC,SAAS,GAAG,CAAC;IACfC,IAAI,GAAG,CAAC;IACRC,IAAI,GAAG,CAAC;IACRC,IAAI,GAAG,CAAC;EACV,IAAIta,CAAC,EAAEua,CAAC;EAER,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,cAAc,EAAEQ,CAAC,EAAE,EAAE;IACnCP,SAAS,CAACO,CAAC,CAAC,GAAGX,QAAQ,CAACW,CAAC,CAAC,CAAC1Y,CAAC;IAC5BoY,SAAS,CAACM,CAAC,CAAC,GAAGX,QAAQ,CAACW,CAAC,CAAC,CAACzY,CAAC;IAC5BsY,IAAI,GAAGze,IAAI,CAACC,GAAG,CAACwe,IAAI,EAAER,QAAQ,CAACW,CAAC,CAAC,CAAC1Y,CAAC,CAAC;IACpCwY,IAAI,GAAG1e,IAAI,CAACgE,GAAG,CAAC0a,IAAI,EAAET,QAAQ,CAACW,CAAC,CAAC,CAAC1Y,CAAC,CAAC;IACpCyY,IAAI,GAAG3e,IAAI,CAACC,GAAG,CAAC0e,IAAI,EAAEV,QAAQ,CAACW,CAAC,CAAC,CAACzY,CAAC,CAAC;IAIpC,IACEyY,CAAC,GAAGR,cAAc,GAAG,CAAC,IACtBH,QAAQ,CAACW,CAAC,CAAC,CAACzY,CAAC,KAAK8X,QAAQ,CAACW,CAAC,GAAG,CAAC,CAAC,CAACzY,CAAC,IACnC8X,QAAQ,CAACW,CAAC,CAAC,CAAC1Y,CAAC,KAAK+X,QAAQ,CAACW,CAAC,GAAG,CAAC,CAAC,CAAC1Y,CAAC,GAAG,CAAC,EACvC;MACAsY,SAAS,IAAI,CAAC,IAAKJ,cAAc,GAAG,CAAC,GAAGQ,CAAE;IAC5C,CAAC,MAAM;MACLL,uBAAuB,CAACne,IAAI,CAACwe,CAAC,CAAC;IACjC;EACF;EACA,MAAMC,qBAAqB,GAAGN,uBAAuB,CAACrhB,MAAM;EAE5D,MAAM4hB,iBAAiB,GAAG,IAAIrD,SAAS,CAACoD,qBAAqB,CAAC;EAC9D,MAAME,iBAAiB,GAAG,IAAItD,SAAS,CAACoD,qBAAqB,CAAC;EAC9D,MAAMG,mBAAmB,GAAG,IAAIC,WAAW,CAACJ,qBAAqB,CAAC;EAClE,KAAKxa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwa,qBAAqB,EAAExa,CAAC,EAAE,EAAE;IAC1Cua,CAAC,GAAGL,uBAAuB,CAACla,CAAC,CAAC;IAC9Bya,iBAAiB,CAACza,CAAC,CAAC,GAAG4Z,QAAQ,CAACW,CAAC,CAAC,CAAC1Y,CAAC;IACpC6Y,iBAAiB,CAAC1a,CAAC,CAAC,GAAG4Z,QAAQ,CAACW,CAAC,CAAC,CAACzY,CAAC;IACpC6Y,mBAAmB,CAAC3a,CAAC,CAAC,GAAG,CAAC,IAAK+Z,cAAc,GAAG,CAAC,GAAGQ,CAAE;EACxD;EAGA,MAAMM,QAAQ,GAAG,CAACT,IAAI;EACtB,MAAMU,OAAO,GAAG,CAACR,IAAI;EACrB,MAAMS,SAAS,GAAGpJ,KAAK,GAAG0I,IAAI;EAE9B,MAAMW,kBAAkB,GAAGxC,cAAc,CAACa,aAAa,CAAC;EACxD,IAAIjE,GAAG,GAAG,IAAIjZ,UAAU,CAACwV,KAAK,CAAC;EAC/B,MAAMiH,MAAM,GAAG,EAAE;EAEjB,MAAMnW,OAAO,GAAGkW,eAAe,CAAClW,OAAO;EACvC,MAAMkQ,QAAQ,GAAGgG,eAAe,CAACrB,YAAY,CAACJ,WAAW,CAAC,IAAI,CAAC;EAE/D,IAAI+D,GAAG,GAAG,CAAC;IACTnC,CAAC;IACDoC,EAAE;IACFC,EAAE;IACFtC,YAAY,GAAG,CAAC;IAChBf,GAAG;IACHsD,KAAK;EACP,KAAK,IAAI3f,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmW,MAAM,EAAEnW,CAAC,EAAE,EAAE;IAC/B,IAAI6d,UAAU,EAAE;MACd,MAAM+B,IAAI,GAAG5Y,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEqI,kBAAkB,CAAC;MAC1DC,GAAG,IAAII,IAAI;MACX,IAAIJ,GAAG,EAAE;QACPrC,MAAM,CAAC7c,IAAI,CAACqZ,GAAG,CAAC;QAChB;MACF;IACF;IACAA,GAAG,GAAG,IAAIjZ,UAAU,CAACiZ,GAAG,CAAC;IACzBwD,MAAM,CAAC7c,IAAI,CAACqZ,GAAG,CAAC;IAChB,KAAK0D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;MAC1B,IAAIa,OAAO,IAAIzO,IAAI,CAACzP,CAAC,CAAC,CAACqd,CAAC,CAAC,EAAE;QACzB1D,GAAG,CAAC0D,CAAC,CAAC,GAAG,CAAC;QACV;MACF;MAGA,IAAIA,CAAC,IAAI+B,QAAQ,IAAI/B,CAAC,GAAGiC,SAAS,IAAItf,CAAC,IAAIqf,OAAO,EAAE;QAGlDjC,YAAY,GAAIA,YAAY,IAAI,CAAC,GAAIsB,SAAS;QAC9C,KAAKI,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,qBAAqB,EAAED,CAAC,EAAE,EAAE;UAC1CW,EAAE,GAAGzf,CAAC,GAAGif,iBAAiB,CAACH,CAAC,CAAC;UAC7BY,EAAE,GAAGrC,CAAC,GAAG2B,iBAAiB,CAACF,CAAC,CAAC;UAC7BzC,GAAG,GAAGc,MAAM,CAACsC,EAAE,CAAC,CAACC,EAAE,CAAC;UACpB,IAAIrD,GAAG,EAAE;YACPA,GAAG,GAAG6C,mBAAmB,CAACJ,CAAC,CAAC;YAC5B1B,YAAY,IAAIf,GAAG;UACrB;QACF;MACF,CAAC,MAAM;QAELe,YAAY,GAAG,CAAC;QAChBuC,KAAK,GAAGrB,cAAc,GAAG,CAAC;QAC1B,KAAKQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,cAAc,EAAEQ,CAAC,EAAE,EAAEa,KAAK,EAAE,EAAE;UAC5CD,EAAE,GAAGrC,CAAC,GAAGkB,SAAS,CAACO,CAAC,CAAC;UACrB,IAAIY,EAAE,IAAI,CAAC,IAAIA,EAAE,GAAGxJ,KAAK,EAAE;YACzBuJ,EAAE,GAAGzf,CAAC,GAAGwe,SAAS,CAACM,CAAC,CAAC;YACrB,IAAIW,EAAE,IAAI,CAAC,EAAE;cACXpD,GAAG,GAAGc,MAAM,CAACsC,EAAE,CAAC,CAACC,EAAE,CAAC;cACpB,IAAIrD,GAAG,EAAE;gBACPe,YAAY,IAAIf,GAAG,IAAIsD,KAAK;cAC9B;YACF;UACF;QACF;MACF;MACA,MAAMrC,KAAK,GAAGtW,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEkG,YAAY,CAAC;MACrDzD,GAAG,CAAC0D,CAAC,CAAC,GAAGC,KAAK;IAChB;EACF;EACA,OAAOH,MAAM;AACf;AAGA,SAAS0C,gBAAgBA,CACvB3J,KAAK,EACLC,MAAM,EACNyH,aAAa,EACbkC,eAAe,EACfC,OAAO,EACPC,OAAO,EACPnC,UAAU,EACVC,EAAE,EACFZ,eAAe,EACf;EACA,IAAI+C,cAAc,GAAGrD,mBAAmB,CAACgB,aAAa,CAAC,CAACf,MAAM;EAC9D,IAAIe,aAAa,KAAK,CAAC,EAAE;IACvBqC,cAAc,GAAGA,cAAc,CAAC7B,MAAM,CAAC,CAACN,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACjD;EACA,MAAMoC,oBAAoB,GAAGD,cAAc,CAAC7iB,MAAM;EAClD,MAAM+iB,eAAe,GAAG,IAAIC,UAAU,CAACF,oBAAoB,CAAC;EAC5D,MAAMG,eAAe,GAAG,IAAID,UAAU,CAACF,oBAAoB,CAAC;EAC5D,IAAIpB,CAAC;EACL,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoB,oBAAoB,EAAEpB,CAAC,EAAE,EAAE;IACzCqB,eAAe,CAACrB,CAAC,CAAC,GAAGmB,cAAc,CAACnB,CAAC,CAAC,CAAC1Y,CAAC;IACxCia,eAAe,CAACvB,CAAC,CAAC,GAAGmB,cAAc,CAACnB,CAAC,CAAC,CAACzY,CAAC;EAC1C;EAEA,IAAIia,iBAAiB,GAAG1D,mBAAmB,CAACgB,aAAa,CAAC,CAACd,SAAS;EACpE,IAAIc,aAAa,KAAK,CAAC,EAAE;IACvB0C,iBAAiB,GAAGA,iBAAiB,CAAClC,MAAM,CAAC,CAACN,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACvD;EACA,MAAMyC,uBAAuB,GAAGD,iBAAiB,CAACljB,MAAM;EACxD,MAAMojB,kBAAkB,GAAG,IAAIJ,UAAU,CAACG,uBAAuB,CAAC;EAClE,MAAME,kBAAkB,GAAG,IAAIL,UAAU,CAACG,uBAAuB,CAAC;EAClE,KAAKzB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyB,uBAAuB,EAAEzB,CAAC,EAAE,EAAE;IAC5C0B,kBAAkB,CAAC1B,CAAC,CAAC,GAAGwB,iBAAiB,CAACxB,CAAC,CAAC,CAAC1Y,CAAC;IAC9Cqa,kBAAkB,CAAC3B,CAAC,CAAC,GAAGwB,iBAAiB,CAACxB,CAAC,CAAC,CAACzY,CAAC;EAChD;EACA,MAAMqa,cAAc,GAAGZ,eAAe,CAAC,CAAC,CAAC,CAAC1iB,MAAM;EAChD,MAAMujB,eAAe,GAAGb,eAAe,CAAC1iB,MAAM;EAE9C,MAAMmiB,kBAAkB,GAAGvC,wBAAwB,CAACY,aAAa,CAAC;EAClE,MAAMT,MAAM,GAAG,EAAE;EAEjB,MAAMnW,OAAO,GAAGkW,eAAe,CAAClW,OAAO;EACvC,MAAMkQ,QAAQ,GAAGgG,eAAe,CAACrB,YAAY,CAACJ,WAAW,CAAC,IAAI,CAAC;EAE/D,IAAI+D,GAAG,GAAG,CAAC;EACX,KAAK,IAAIxf,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmW,MAAM,EAAEnW,CAAC,EAAE,EAAE;IAC/B,IAAI6d,UAAU,EAAE;MACd,MAAM+B,IAAI,GAAG5Y,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEqI,kBAAkB,CAAC;MAC1DC,GAAG,IAAII,IAAI;MACX,IAAIJ,GAAG,EAAE;QACP,MAAM,IAAIjE,UAAU,CAAC,6BAA6B,CAAC;MACrD;IACF;IACA,MAAM5B,GAAG,GAAG,IAAIjZ,UAAU,CAACwV,KAAK,CAAC;IACjCiH,MAAM,CAAC7c,IAAI,CAACqZ,GAAG,CAAC;IAChB,KAAK,IAAI0D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;MAC9B,IAAIoC,EAAE,EAAEC,EAAE;MACV,IAAItC,YAAY,GAAG,CAAC;MACpB,KAAK0B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoB,oBAAoB,EAAEpB,CAAC,EAAE,EAAE;QACzCW,EAAE,GAAGzf,CAAC,GAAGqgB,eAAe,CAACvB,CAAC,CAAC;QAC3BY,EAAE,GAAGrC,CAAC,GAAG8C,eAAe,CAACrB,CAAC,CAAC;QAC3B,IAAIW,EAAE,GAAG,CAAC,IAAIC,EAAE,GAAG,CAAC,IAAIA,EAAE,IAAIxJ,KAAK,EAAE;UACnCkH,YAAY,KAAK,CAAC;QACpB,CAAC,MAAM;UACLA,YAAY,GAAIA,YAAY,IAAI,CAAC,GAAID,MAAM,CAACsC,EAAE,CAAC,CAACC,EAAE,CAAC;QACrD;MACF;MACA,KAAKZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyB,uBAAuB,EAAEzB,CAAC,EAAE,EAAE;QAC5CW,EAAE,GAAGzf,CAAC,GAAGygB,kBAAkB,CAAC3B,CAAC,CAAC,GAAGkB,OAAO;QACxCN,EAAE,GAAGrC,CAAC,GAAGmD,kBAAkB,CAAC1B,CAAC,CAAC,GAAGiB,OAAO;QACxC,IAAIN,EAAE,GAAG,CAAC,IAAIA,EAAE,IAAIkB,eAAe,IAAIjB,EAAE,GAAG,CAAC,IAAIA,EAAE,IAAIgB,cAAc,EAAE;UACrEtD,YAAY,KAAK,CAAC;QACpB,CAAC,MAAM;UACLA,YAAY,GAAIA,YAAY,IAAI,CAAC,GAAI0C,eAAe,CAACL,EAAE,CAAC,CAACC,EAAE,CAAC;QAC9D;MACF;MACA,MAAMpC,KAAK,GAAGtW,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEkG,YAAY,CAAC;MACrDzD,GAAG,CAAC0D,CAAC,CAAC,GAAGC,KAAK;IAChB;EACF;EAEA,OAAOH,MAAM;AACf;AAGA,SAASyD,sBAAsBA,CAC7BC,OAAO,EACPC,UAAU,EACVC,OAAO,EACPC,kBAAkB,EAClBC,uBAAuB,EACvBC,aAAa,EACbtD,aAAa,EACbE,EAAE,EACFqD,uBAAuB,EACvBC,YAAY,EACZlE,eAAe,EACfmE,YAAY,EACZ;EACA,IAAIR,OAAO,IAAIC,UAAU,EAAE;IACzB,MAAM,IAAIvF,UAAU,CAAC,iDAAiD,CAAC;EACzE;EAEA,MAAM+F,UAAU,GAAG,EAAE;EACrB,IAAIC,aAAa,GAAG,CAAC;EACrB,IAAIC,gBAAgB,GAAGjQ,IAAI,CAACwP,OAAO,CAAC3jB,MAAM,GAAG4jB,kBAAkB,CAAC;EAEhE,MAAMha,OAAO,GAAGkW,eAAe,CAAClW,OAAO;EACvC,MAAM6U,YAAY,GAAGqB,eAAe,CAACrB,YAAY;EACjD,IAAI4F,OAAO,EAAEC,YAAY;EACzB,IAAIb,OAAO,EAAE;IACXY,OAAO,GAAGE,gBAAgB,CAAC,CAAC,CAAC;IAC7BD,YAAY,GAAG,EAAE;IACjBF,gBAAgB,GAAGthB,IAAI,CAACgE,GAAG,CAACsd,gBAAgB,EAAE,CAAC,CAAC;EAClD;EAEA,OAAOF,UAAU,CAAClkB,MAAM,GAAG4jB,kBAAkB,EAAE;IAC7C,MAAMY,WAAW,GAAGf,OAAO,GACvBK,aAAa,CAACW,gBAAgB,CAACza,MAAM,CAACia,YAAY,CAAC,GACnDpF,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC;IAChDua,aAAa,IAAIK,WAAW;IAC5B,IAAIE,YAAY,GAAG,CAAC;MAClBC,UAAU,GAAG,CAAC;IAChB,MAAMC,WAAW,GAAGnB,OAAO,GAAGa,YAAY,CAACtkB,MAAM,GAAG,CAAC;IACrD,OAAO,IAAI,EAAE;MACX,MAAM6kB,UAAU,GAAGpB,OAAO,GACtBK,aAAa,CAACgB,eAAe,CAAC9a,MAAM,CAACia,YAAY,CAAC,GAClDpF,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC;MAChD,IAAIib,UAAU,KAAK,IAAI,EAAE;QACvB;MACF;MACAH,YAAY,IAAIG,UAAU;MAC1BF,UAAU,IAAID,YAAY;MAC1B,IAAI3E,MAAM;MACV,IAAI2D,UAAU,EAAE;QAEd,MAAMqB,iBAAiB,GAAGlG,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC;QACtE,IAAImb,iBAAiB,GAAG,CAAC,EAAE;UACzBhF,MAAM,GAAGiF,gBAAgB,CACvBvB,OAAO,EACPC,UAAU,EACVgB,YAAY,EACZP,aAAa,EACb,CAAC,EACDY,iBAAiB,EACjB,CAAC,EACDpB,OAAO,CAAC3C,MAAM,CAACkD,UAAU,CAAC,EAC1BE,gBAAgB,EAChB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,EACDN,aAAa,EACbC,uBAAuB,EACvBC,YAAY,EACZlE,eAAe,EACf,CAAC,EACDmE,YACF,CAAC;QACH,CAAC,MAAM;UACL,MAAMgB,QAAQ,GAAG7F,UAAU,CAACX,YAAY,EAAE7U,OAAO,EAAEwa,gBAAgB,CAAC;UACpE,MAAMc,GAAG,GAAGrG,aAAa,CAACJ,YAAY,EAAE,OAAO,EAAE7U,OAAO,CAAC;UACzD,MAAMub,GAAG,GAAGtG,aAAa,CAACJ,YAAY,EAAE,OAAO,EAAE7U,OAAO,CAAC;UACzD,MAAMwb,MAAM,GACVH,QAAQ,GAAGtB,OAAO,CAAC3jB,MAAM,GACrB2jB,OAAO,CAACsB,QAAQ,CAAC,GACjBf,UAAU,CAACe,QAAQ,GAAGtB,OAAO,CAAC3jB,MAAM,CAAC;UAC3C+f,MAAM,GAAG0C,gBAAgB,CACvBiC,YAAY,EACZP,aAAa,EACbJ,uBAAuB,EACvBqB,MAAM,EACNF,GAAG,EACHC,GAAG,EACH,KAAK,EACLnB,YAAY,EACZlE,eACF,CAAC;QACH;QACAoE,UAAU,CAAChhB,IAAI,CAAC6c,MAAM,CAAC;MACzB,CAAC,MAAM,IAAI0D,OAAO,EAAE;QAGlBa,YAAY,CAACphB,IAAI,CAACwhB,YAAY,CAAC;MACjC,CAAC,MAAM;QAEL3E,MAAM,GAAGO,YAAY,CACnB,KAAK,EACLoE,YAAY,EACZP,aAAa,EACb3D,aAAa,EACb,KAAK,EACL,IAAI,EACJE,EAAE,EACFZ,eACF,CAAC;QACDoE,UAAU,CAAChhB,IAAI,CAAC6c,MAAM,CAAC;MACzB;IACF;IACA,IAAI0D,OAAO,IAAI,CAACC,UAAU,EAAE;MAE1B,MAAM2B,UAAU,GAAGvB,aAAa,CAACwB,eAAe,CAACtb,MAAM,CAACia,YAAY,CAAC;MACrEA,YAAY,CAACvI,SAAS,CAAC,CAAC;MACxB,IAAI6J,gBAAgB;MACpB,IAAIF,UAAU,KAAK,CAAC,EAAE;QAEpBE,gBAAgB,GAAGC,sBAAsB,CACvCvB,YAAY,EACZU,UAAU,EACVR,aACF,CAAC;MACH,CAAC,MAAM;QAEL,MAAMsB,WAAW,GAAGxB,YAAY,CAAC9R,GAAG;QACpC,MAAMuT,SAAS,GAAGzB,YAAY,CAAC0B,QAAQ,GAAGN,UAAU;QACpDpB,YAAY,CAAC9R,GAAG,GAAGuT,SAAS;QAC5BH,gBAAgB,GAAG1E,eAAe,CAChCoD,YAAY,EACZU,UAAU,EACVR,aAAa,EACb,KACF,CAAC;QACDF,YAAY,CAAC9R,GAAG,GAAGsT,WAAW;QAC9BxB,YAAY,CAAC0B,QAAQ,GAAGD,SAAS;MACnC;MACA,MAAME,sBAAsB,GAAGtB,YAAY,CAACtkB,MAAM;MAClD,IAAI4kB,WAAW,KAAKgB,sBAAsB,GAAG,CAAC,EAAE;QAE9C1B,UAAU,CAAChhB,IAAI,CAACqiB,gBAAgB,CAAC;MACnC,CAAC,MAAM;QAEL,IAAI3iB,CAAC;UACHqG,CAAC;UACD4c,IAAI,GAAG,CAAC;UACRC,IAAI;UACJC,WAAW;UACXC,YAAY;QACd,KAAKpjB,CAAC,GAAGgiB,WAAW,EAAEhiB,CAAC,GAAGgjB,sBAAsB,EAAEhjB,CAAC,EAAE,EAAE;UACrDmjB,WAAW,GAAGzB,YAAY,CAAC1hB,CAAC,CAAC;UAC7BkjB,IAAI,GAAGD,IAAI,GAAGE,WAAW;UACzBC,YAAY,GAAG,EAAE;UACjB,KAAK/c,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkb,aAAa,EAAElb,CAAC,EAAE,EAAE;YAClC+c,YAAY,CAAC9iB,IAAI,CAACqiB,gBAAgB,CAACtc,CAAC,CAAC,CAAChG,QAAQ,CAAC4iB,IAAI,EAAEC,IAAI,CAAC,CAAC;UAC7D;UACA5B,UAAU,CAAChhB,IAAI,CAAC8iB,YAAY,CAAC;UAC7BH,IAAI,GAAGC,IAAI;QACb;MACF;IACF;EACF;EAGA,MAAMG,eAAe,GAAG,EAAE;IACxBC,KAAK,GAAG,EAAE;EACZ,IAAIC,WAAW,GAAG,KAAK;IACrBvjB,CAAC;IACDuH,EAAE;EACJ,MAAMic,kBAAkB,GAAGzC,OAAO,CAAC3jB,MAAM,GAAG4jB,kBAAkB;EAC9D,OAAOsC,KAAK,CAAClmB,MAAM,GAAGomB,kBAAkB,EAAE;IACxC,IAAIC,SAAS,GAAG5C,OAAO,GACnBY,OAAO,CAACra,MAAM,CAACia,YAAY,CAAC,GAC5BpF,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC;IAChD,OAAOyc,SAAS,EAAE,EAAE;MAClBH,KAAK,CAAChjB,IAAI,CAACijB,WAAW,CAAC;IACzB;IACAA,WAAW,GAAG,CAACA,WAAW;EAC5B;EACA,KAAKvjB,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGwZ,OAAO,CAAC3jB,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;IAC5C,IAAIsjB,KAAK,CAACtjB,CAAC,CAAC,EAAE;MACZqjB,eAAe,CAAC/iB,IAAI,CAACygB,OAAO,CAAC/gB,CAAC,CAAC,CAAC;IAClC;EACF;EACA,KAAK,IAAIqd,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2D,kBAAkB,EAAEhhB,CAAC,EAAE,EAAEqd,CAAC,EAAE,EAAE;IAChD,IAAIiG,KAAK,CAACtjB,CAAC,CAAC,EAAE;MACZqjB,eAAe,CAAC/iB,IAAI,CAACghB,UAAU,CAACjE,CAAC,CAAC,CAAC;IACrC;EACF;EACA,OAAOgG,eAAe;AACxB;AAEA,SAASjB,gBAAgBA,CACvBvB,OAAO,EACPC,UAAU,EACV5K,KAAK,EACLC,MAAM,EACNuN,iBAAiB,EACjBC,uBAAuB,EACvBC,SAAS,EACTC,YAAY,EACZrC,gBAAgB,EAChBsC,UAAU,EACVC,QAAQ,EACRC,eAAe,EACfC,mBAAmB,EACnB/C,aAAa,EACbC,uBAAuB,EACvBC,YAAY,EACZlE,eAAe,EACfgH,YAAY,EACZ7C,YAAY,EACZ;EACA,IAAIR,OAAO,IAAIC,UAAU,EAAE;IACzB,MAAM,IAAIvF,UAAU,CAAC,0CAA0C,CAAC;EAClE;EAGA,MAAM4B,MAAM,GAAG,EAAE;EACjB,IAAInd,CAAC,EAAE2Z,GAAG;EACV,KAAK3Z,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmW,MAAM,EAAEnW,CAAC,EAAE,EAAE;IAC3B2Z,GAAG,GAAG,IAAIjZ,UAAU,CAACwV,KAAK,CAAC;IAC3B,IAAIwN,iBAAiB,EAAE;MACrB,KAAK,IAAIrG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;QAC9B1D,GAAG,CAAC0D,CAAC,CAAC,GAAGqG,iBAAiB;MAC5B;IACF;IACAvG,MAAM,CAAC7c,IAAI,CAACqZ,GAAG,CAAC;EAClB;EAEA,MAAM3S,OAAO,GAAGkW,eAAe,CAAClW,OAAO;EACvC,MAAM6U,YAAY,GAAGqB,eAAe,CAACrB,YAAY;EAEjD,IAAIsI,MAAM,GAAGtD,OAAO,GAChB,CAACK,aAAa,CAACkD,WAAW,CAAChd,MAAM,CAACia,YAAY,CAAC,GAC/C,CAACpF,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC;EACjD,IAAIqd,MAAM,GAAG,CAAC;EACdrkB,CAAC,GAAG,CAAC;EACL,OAAOA,CAAC,GAAG2jB,uBAAuB,EAAE;IAClC,MAAMW,MAAM,GAAGzD,OAAO,GAClBK,aAAa,CAACkD,WAAW,CAAChd,MAAM,CAACia,YAAY,CAAC,GAC9CpF,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC;IAChDmd,MAAM,IAAIG,MAAM;IAEhB,MAAMC,WAAW,GAAG1D,OAAO,GACvBK,aAAa,CAACsD,WAAW,CAACpd,MAAM,CAACia,YAAY,CAAC,GAC9CpF,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC;IAChDqd,MAAM,IAAIE,WAAW;IACrB,IAAIE,QAAQ,GAAGJ,MAAM;IACrB,GAAG;MACD,IAAIK,QAAQ,GAAG,CAAC;MAChB,IAAId,SAAS,GAAG,CAAC,EAAE;QACjBc,QAAQ,GAAG7D,OAAO,GACdQ,YAAY,CAACjF,QAAQ,CAAC8H,YAAY,CAAC,GACnCjI,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC;MAClD;MACA,MAAMhB,CAAC,GAAG4d,SAAS,GAAGO,MAAM,GAAGO,QAAQ;MACvC,MAAMrC,QAAQ,GAAGxB,OAAO,GACpBK,aAAa,CAACyD,aAAa,CAACvd,MAAM,CAACia,YAAY,CAAC,GAChD7E,UAAU,CAACX,YAAY,EAAE7U,OAAO,EAAEwa,gBAAgB,CAAC;MACvD,MAAMoD,eAAe,GACnB9D,UAAU,KACTD,OAAO,GACJQ,YAAY,CAACpK,OAAO,CAAC,CAAC,GACtBgF,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC,CAAC;MACnD,IAAIoc,YAAY,GAAGS,YAAY,CAACxB,QAAQ,CAAC;MACzC,IAAIwC,WAAW,GAAGzB,YAAY,CAAC,CAAC,CAAC,CAAChmB,MAAM;MACxC,IAAI0nB,YAAY,GAAG1B,YAAY,CAAChmB,MAAM;MACtC,IAAIwnB,eAAe,EAAE;QACnB,MAAMG,GAAG,GAAG9I,aAAa,CAACJ,YAAY,EAAE,OAAO,EAAE7U,OAAO,CAAC;QACzD,MAAMge,GAAG,GAAG/I,aAAa,CAACJ,YAAY,EAAE,OAAO,EAAE7U,OAAO,CAAC;QACzD,MAAMsb,GAAG,GAAGrG,aAAa,CAACJ,YAAY,EAAE,OAAO,EAAE7U,OAAO,CAAC;QACzD,MAAMub,GAAG,GAAGtG,aAAa,CAACJ,YAAY,EAAE,OAAO,EAAE7U,OAAO,CAAC;QACzD6d,WAAW,IAAIE,GAAG;QAClBD,YAAY,IAAIE,GAAG;QACnB5B,YAAY,GAAGvD,gBAAgB,CAC7BgF,WAAW,EACXC,YAAY,EACZ3D,uBAAuB,EACvBiC,YAAY,EACZ,CAAC2B,GAAG,IAAI,CAAC,IAAIzC,GAAG,EAChB,CAAC0C,GAAG,IAAI,CAAC,IAAIzC,GAAG,EAChB,KAAK,EACLnB,YAAY,EACZlE,eACF,CAAC;MACH;MAEA,IAAI+H,SAAS,GAAG,CAAC;MACjB,IAAI,CAACnB,UAAU,EAAE;QACf,IAAIE,eAAe,GAAG,CAAC,EAAE;UACvBS,QAAQ,IAAII,WAAW,GAAG,CAAC;QAC7B,CAAC,MAAM;UACLI,SAAS,GAAGJ,WAAW,GAAG,CAAC;QAC7B;MACF,CAAC,MAAM,IAAI,EAAEb,eAAe,GAAG,CAAC,CAAC,EAAE;QACjCS,QAAQ,IAAIK,YAAY,GAAG,CAAC;MAC9B,CAAC,MAAM;QACLG,SAAS,GAAGH,YAAY,GAAG,CAAC;MAC9B;MAEA,MAAMI,OAAO,GAAGlf,CAAC,IAAIge,eAAe,GAAG,CAAC,GAAG,CAAC,GAAGc,YAAY,GAAG,CAAC,CAAC;MAChE,MAAMK,OAAO,GAAGV,QAAQ,IAAIT,eAAe,GAAG,CAAC,GAAGa,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;MACtE,IAAIO,EAAE,EAAEC,EAAE,EAAEC,SAAS;MACrB,IAAIxB,UAAU,EAAE;QAEd,KAAKsB,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGN,YAAY,EAAEM,EAAE,EAAE,EAAE;UACpCzL,GAAG,GAAGwD,MAAM,CAACgI,OAAO,GAAGC,EAAE,CAAC;UAC1B,IAAI,CAACzL,GAAG,EAAE;YACR;UACF;UACA2L,SAAS,GAAGlC,YAAY,CAACgC,EAAE,CAAC;UAG5B,MAAMG,QAAQ,GAAGrlB,IAAI,CAACC,GAAG,CAAC+V,KAAK,GAAGgP,OAAO,EAAEL,WAAW,CAAC;UACvD,QAAQZ,mBAAmB;YACzB,KAAK,CAAC;cACJ,KAAKoB,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGE,QAAQ,EAAEF,EAAE,EAAE,EAAE;gBAChC1L,GAAG,CAACuL,OAAO,GAAGG,EAAE,CAAC,IAAIC,SAAS,CAACD,EAAE,CAAC;cACpC;cACA;YACF,KAAK,CAAC;cACJ,KAAKA,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGE,QAAQ,EAAEF,EAAE,EAAE,EAAE;gBAChC1L,GAAG,CAACuL,OAAO,GAAGG,EAAE,CAAC,IAAIC,SAAS,CAACD,EAAE,CAAC;cACpC;cACA;YACF;cACE,MAAM,IAAI9J,UAAU,CACjB,YAAW0I,mBAAoB,mBAClC,CAAC;UACL;QACF;MACF,CAAC,MAAM;QACL,KAAKoB,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGP,YAAY,EAAEO,EAAE,EAAE,EAAE;UACpC1L,GAAG,GAAGwD,MAAM,CAAC+H,OAAO,GAAGG,EAAE,CAAC;UAC1B,IAAI,CAAC1L,GAAG,EAAE;YACR;UACF;UACA2L,SAAS,GAAGlC,YAAY,CAACiC,EAAE,CAAC;UAC5B,QAAQpB,mBAAmB;YACzB,KAAK,CAAC;cACJ,KAAKmB,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGP,WAAW,EAAEO,EAAE,EAAE,EAAE;gBACnCzL,GAAG,CAACwL,OAAO,GAAGC,EAAE,CAAC,IAAIE,SAAS,CAACF,EAAE,CAAC;cACpC;cACA;YACF,KAAK,CAAC;cACJ,KAAKA,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGP,WAAW,EAAEO,EAAE,EAAE,EAAE;gBACnCzL,GAAG,CAACwL,OAAO,GAAGC,EAAE,CAAC,IAAIE,SAAS,CAACF,EAAE,CAAC;cACpC;cACA;YACF;cACE,MAAM,IAAI7J,UAAU,CACjB,YAAW0I,mBAAoB,mBAClC,CAAC;UACL;QACF;MACF;MACAjkB,CAAC,EAAE;MACH,MAAMwlB,MAAM,GAAG3E,OAAO,GAClBK,aAAa,CAACuE,WAAW,CAACre,MAAM,CAACia,YAAY,CAAC,GAC9CpF,aAAa,CAACJ,YAAY,EAAE,MAAM,EAAE7U,OAAO,CAAC;MAChD,IAAIwe,MAAM,KAAK,IAAI,EAAE;QACnB;MACF;MACAf,QAAQ,IAAIQ,SAAS,GAAGO,MAAM,GAAGzB,QAAQ;IAC3C,CAAC,QAAQ,IAAI;EACf;EACA,OAAO5G,MAAM;AACf;AAEA,SAASuI,uBAAuBA,CAC9B/H,GAAG,EACHgI,YAAY,EACZC,aAAa,EACbC,eAAe,EACf1H,QAAQ,EACRjB,eAAe,EACf;EACA,MAAMY,EAAE,GAAG,EAAE;EACb,IAAI,CAACH,GAAG,EAAE;IACRG,EAAE,CAACxd,IAAI,CAAC;MACN8F,CAAC,EAAE,CAACuf,YAAY;MAChBtf,CAAC,EAAE;IACL,CAAC,CAAC;IACF,IAAI8X,QAAQ,KAAK,CAAC,EAAE;MAClBL,EAAE,CAACxd,IAAI,CACL;QACE8F,CAAC,EAAE,CAAC,CAAC;QACLC,CAAC,EAAE,CAAC;MACN,CAAC,EACD;QACED,CAAC,EAAE,CAAC;QACJC,CAAC,EAAE,CAAC;MACN,CAAC,EACD;QACED,CAAC,EAAE,CAAC,CAAC;QACLC,CAAC,EAAE,CAAC;MACN,CACF,CAAC;IACH;EACF;EACA,MAAMyf,eAAe,GAAG,CAACD,eAAe,GAAG,CAAC,IAAIF,YAAY;EAC5D,MAAMhD,gBAAgB,GAAGjF,YAAY,CACnCC,GAAG,EACHmI,eAAe,EACfF,aAAa,EACbzH,QAAQ,EACR,KAAK,EACL,IAAI,EACJL,EAAE,EACFZ,eACF,CAAC;EAED,MAAM6I,QAAQ,GAAG,EAAE;EACnB,KAAK,IAAI/lB,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI6lB,eAAe,EAAE7lB,CAAC,EAAE,EAAE;IACzC,MAAMgmB,aAAa,GAAG,EAAE;IACxB,MAAM/C,IAAI,GAAG0C,YAAY,GAAG3lB,CAAC;IAC7B,MAAMkjB,IAAI,GAAGD,IAAI,GAAG0C,YAAY;IAChC,KAAK,IAAItf,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuf,aAAa,EAAEvf,CAAC,EAAE,EAAE;MACtC2f,aAAa,CAAC1lB,IAAI,CAACqiB,gBAAgB,CAACtc,CAAC,CAAC,CAAChG,QAAQ,CAAC4iB,IAAI,EAAEC,IAAI,CAAC,CAAC;IAC9D;IACA6C,QAAQ,CAACzlB,IAAI,CAAC0lB,aAAa,CAAC;EAC9B;EACA,OAAOD,QAAQ;AACjB;AAEA,SAASE,oBAAoBA,CAC3BtI,GAAG,EACHoI,QAAQ,EACR5H,QAAQ,EACR+H,WAAW,EACXC,YAAY,EACZzC,iBAAiB,EACjB0C,UAAU,EACVnC,mBAAmB,EACnBoC,SAAS,EACTC,UAAU,EACVC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXxJ,eAAe,EACf;EACA,MAAMzN,IAAI,GAAG,IAAI;EACjB,IAAI2W,UAAU,EAAE;IACd,MAAM,IAAI7K,UAAU,CAAC,uBAAuB,CAAC;EAC/C;EACA,IAAI0I,mBAAmB,KAAK,CAAC,EAAE;IAC7B,MAAM,IAAI1I,UAAU,CACjB,aAAY0I,mBAAoB,uCACnC,CAAC;EACH;EAGA,MAAM0C,YAAY,GAAG,EAAE;EACvB,IAAI3mB,CAAC,EAAEqd,CAAC,EAAE1D,GAAG;EACb,KAAK3Z,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmmB,YAAY,EAAEnmB,CAAC,EAAE,EAAE;IACjC2Z,GAAG,GAAG,IAAIjZ,UAAU,CAACwlB,WAAW,CAAC;IACjC,IAAIxC,iBAAiB,EAAE;MACrB,KAAKrG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6I,WAAW,EAAE7I,CAAC,EAAE,EAAE;QAChC1D,GAAG,CAAC0D,CAAC,CAAC,GAAGqG,iBAAiB;MAC5B;IACF;IACAiD,YAAY,CAACrmB,IAAI,CAACqZ,GAAG,CAAC;EACxB;EAEA,MAAMiN,gBAAgB,GAAGb,QAAQ,CAAC3oB,MAAM;EACxC,MAAMypB,QAAQ,GAAGd,QAAQ,CAAC,CAAC,CAAC;EAC5B,MAAMJ,YAAY,GAAGkB,QAAQ,CAAC,CAAC,CAAC,CAACzpB,MAAM;IACrCwoB,aAAa,GAAGiB,QAAQ,CAACzpB,MAAM;EACjC,MAAM0pB,YAAY,GAAGvV,IAAI,CAACqV,gBAAgB,CAAC;EAC3C,MAAM9I,EAAE,GAAG,EAAE;EACb,IAAI,CAACH,GAAG,EAAE;IACRG,EAAE,CAACxd,IAAI,CAAC;MACN8F,CAAC,EAAE+X,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;MACxB9X,CAAC,EAAE,CAAC;IACN,CAAC,CAAC;IACF,IAAI8X,QAAQ,KAAK,CAAC,EAAE;MAClBL,EAAE,CAACxd,IAAI,CACL;QACE8F,CAAC,EAAE,CAAC,CAAC;QACLC,CAAC,EAAE,CAAC;MACN,CAAC,EACD;QACED,CAAC,EAAE,CAAC;QACJC,CAAC,EAAE,CAAC;MACN,CAAC,EACD;QACED,CAAC,EAAE,CAAC,CAAC;QACLC,CAAC,EAAE,CAAC;MACN,CACF,CAAC;IACH;EACF;EAEA,MAAM0gB,kBAAkB,GAAG,EAAE;EAC7B,IAAIC,QAAQ,EAAE7J,MAAM;EACpB,IAAIQ,GAAG,EAAE;IAGPqJ,QAAQ,GAAG,IAAIhJ,MAAM,CACnBd,eAAe,CAACvM,IAAI,EACpBuM,eAAe,CAACrN,KAAK,EACrBqN,eAAe,CAAC3N,GAClB,CAAC;EACH;EACA,KAAKvP,CAAC,GAAG8mB,YAAY,GAAG,CAAC,EAAE9mB,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACtC,IAAI2d,GAAG,EAAE;MACPR,MAAM,GAAGc,eAAe,CAAC+I,QAAQ,EAAEX,SAAS,EAAEC,UAAU,EAAE,IAAI,CAAC;IACjE,CAAC,MAAM;MACLnJ,MAAM,GAAGO,YAAY,CACnB,KAAK,EACL2I,SAAS,EACTC,UAAU,EACVnI,QAAQ,EACR,KAAK,EACL1O,IAAI,EACJqO,EAAE,EACFZ,eACF,CAAC;IACH;IACA6J,kBAAkB,CAAC/mB,CAAC,CAAC,GAAGmd,MAAM;EAChC;EAEA,IAAI8J,EAAE,EAAEC,EAAE,EAAE7K,GAAG,EAAE8K,YAAY,EAAEnB,aAAa,EAAE5f,CAAC,EAAEC,CAAC,EAAE+gB,UAAU,EAAEC,SAAS;EACzE,KAAKJ,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGX,UAAU,EAAEW,EAAE,EAAE,EAAE;IAClC,KAAKC,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGb,SAAS,EAAEa,EAAE,EAAE,EAAE;MACjC7K,GAAG,GAAG,CAAC;MACP8K,YAAY,GAAG,CAAC;MAChB,KAAK9J,CAAC,GAAGyJ,YAAY,GAAG,CAAC,EAAEzJ,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QACtChB,GAAG,IAAI0K,kBAAkB,CAAC1J,CAAC,CAAC,CAAC4J,EAAE,CAAC,CAACC,EAAE,CAAC;QACpCC,YAAY,IAAI9K,GAAG,IAAIgB,CAAC;MAC1B;MACA2I,aAAa,GAAGD,QAAQ,CAACoB,YAAY,CAAC;MACtC/gB,CAAC,GAAImgB,WAAW,GAAGU,EAAE,GAAGP,WAAW,GAAGQ,EAAE,GAAGT,WAAW,IAAK,CAAC;MAC5DpgB,CAAC,GAAImgB,WAAW,GAAGS,EAAE,GAAGR,WAAW,GAAGS,EAAE,GAAGR,WAAW,IAAK,CAAC;MAE5D,IACEtgB,CAAC,IAAI,CAAC,IACNA,CAAC,GAAGuf,YAAY,IAAIO,WAAW,IAC/B7f,CAAC,IAAI,CAAC,IACNA,CAAC,GAAGuf,aAAa,IAAIO,YAAY,EACjC;QACA,KAAKnmB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4lB,aAAa,EAAE5lB,CAAC,EAAE,EAAE;UAClCqnB,SAAS,GAAGV,YAAY,CAACtgB,CAAC,GAAGrG,CAAC,CAAC;UAC/BonB,UAAU,GAAGpB,aAAa,CAAChmB,CAAC,CAAC;UAC7B,KAAKqd,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsI,YAAY,EAAEtI,CAAC,EAAE,EAAE;YACjCgK,SAAS,CAACjhB,CAAC,GAAGiX,CAAC,CAAC,IAAI+J,UAAU,CAAC/J,CAAC,CAAC;UACnC;QACF;MACF,CAAC,MAAM;QACL,IAAIiK,OAAO,EAAEC,OAAO;QACpB,KAAKvnB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4lB,aAAa,EAAE5lB,CAAC,EAAE,EAAE;UAClCunB,OAAO,GAAGlhB,CAAC,GAAGrG,CAAC;UACf,IAAIunB,OAAO,GAAG,CAAC,IAAIA,OAAO,IAAIpB,YAAY,EAAE;YAC1C;UACF;UACAkB,SAAS,GAAGV,YAAY,CAACY,OAAO,CAAC;UACjCH,UAAU,GAAGpB,aAAa,CAAChmB,CAAC,CAAC;UAC7B,KAAKqd,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsI,YAAY,EAAEtI,CAAC,EAAE,EAAE;YACjCiK,OAAO,GAAGlhB,CAAC,GAAGiX,CAAC;YACf,IAAIiK,OAAO,IAAI,CAAC,IAAIA,OAAO,GAAGpB,WAAW,EAAE;cACzCmB,SAAS,CAACC,OAAO,CAAC,IAAIF,UAAU,CAAC/J,CAAC,CAAC;YACrC;UACF;QACF;MACF;IACF;EACF;EACA,OAAOsJ,YAAY;AACrB;AAEA,SAASa,iBAAiBA,CAAC7W,IAAI,EAAEd,KAAK,EAAE;EACtC,MAAM4X,aAAa,GAAG,CAAC,CAAC;EACxBA,aAAa,CAACvW,MAAM,GAAGU,UAAU,CAACjB,IAAI,EAAEd,KAAK,CAAC;EAC9C,MAAMyT,KAAK,GAAG3S,IAAI,CAACd,KAAK,GAAG,CAAC,CAAC;EAC7B,MAAM6X,WAAW,GAAGpE,KAAK,GAAG,IAAI;EAChC,IAAI,CAAC5G,YAAY,CAACgL,WAAW,CAAC,EAAE;IAC9B,MAAM,IAAInM,UAAU,CAAC,wBAAwB,GAAGmM,WAAW,CAAC;EAC9D;EACAD,aAAa,CAAC/6B,IAAI,GAAGg7B,WAAW;EAChCD,aAAa,CAACE,QAAQ,GAAGjL,YAAY,CAACgL,WAAW,CAAC;EAClDD,aAAa,CAACG,iBAAiB,GAAG,CAAC,EAAEtE,KAAK,GAAG,IAAI,CAAC;EAElD,MAAMuE,wBAAwB,GAAG,CAAC,EAAEvE,KAAK,GAAG,IAAI,CAAC;EACjD,MAAMwE,aAAa,GAAGnX,IAAI,CAACd,KAAK,GAAG,CAAC,CAAC;EACrC,IAAIkY,eAAe,GAAID,aAAa,IAAI,CAAC,GAAI,CAAC;EAC9C,MAAME,UAAU,GAAG,CAACF,aAAa,GAAG,EAAE,CAAC;EACvC,IAAI/E,QAAQ,GAAGlT,KAAK,GAAG,CAAC;EACxB,IAAIiY,aAAa,KAAK,CAAC,EAAE;IACvBC,eAAe,GAAGnW,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC,GAAG,UAAU;IAC7DA,QAAQ,IAAI,CAAC;IACb,IAAIrjB,KAAK,GAAIqoB,eAAe,GAAG,CAAC,IAAK,CAAC;IACtCC,UAAU,CAAC,CAAC,CAAC,GAAGrX,IAAI,CAACoS,QAAQ,EAAE,CAAC;IAChC,OAAO,EAAErjB,KAAK,GAAG,CAAC,EAAE;MAClBsoB,UAAU,CAAC1nB,IAAI,CAACqQ,IAAI,CAACoS,QAAQ,EAAE,CAAC,CAAC;IACnC;EACF,CAAC,MAAM,IAAI+E,aAAa,KAAK,CAAC,IAAIA,aAAa,KAAK,CAAC,EAAE;IACrD,MAAM,IAAIvM,UAAU,CAAC,2BAA2B,CAAC;EACnD;EAEAkM,aAAa,CAACO,UAAU,GAAGA,UAAU;EAErC,IAAIC,2BAA2B,GAAG,CAAC;EACnC,IAAIR,aAAa,CAACvW,MAAM,IAAI,GAAG,EAAE;IAC/B+W,2BAA2B,GAAG,CAAC;EACjC,CAAC,MAAM,IAAIR,aAAa,CAACvW,MAAM,IAAI,KAAK,EAAE;IACxC+W,2BAA2B,GAAG,CAAC;EACjC;EACA,MAAMC,UAAU,GAAG,EAAE;EACrB,IAAIloB,CAAC,EAAEuH,EAAE;EACT,KAAKvH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+nB,eAAe,EAAE/nB,CAAC,EAAE,EAAE;IACpC,IAAIkR,MAAM;IACV,IAAI+W,2BAA2B,KAAK,CAAC,EAAE;MACrC/W,MAAM,GAAGP,IAAI,CAACoS,QAAQ,CAAC;IACzB,CAAC,MAAM,IAAIkF,2BAA2B,KAAK,CAAC,EAAE;MAC5C/W,MAAM,GAAGS,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;IACrC,CAAC,MAAM;MACL7R,MAAM,GAAGU,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;IACrC;IACAmF,UAAU,CAAC5nB,IAAI,CAAC4Q,MAAM,CAAC;IACvB6R,QAAQ,IAAIkF,2BAA2B;EACzC;EACAR,aAAa,CAACS,UAAU,GAAGA,UAAU;EACrC,IAAI,CAACL,wBAAwB,EAAE;IAC7BJ,aAAa,CAACU,eAAe,GAAGxX,IAAI,CAACoS,QAAQ,EAAE,CAAC;EAClD,CAAC,MAAM;IACL0E,aAAa,CAACU,eAAe,GAAGvW,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;IAC1DA,QAAQ,IAAI,CAAC;EACf;EACA0E,aAAa,CAACrqB,MAAM,GAAGwU,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;EACjDA,QAAQ,IAAI,CAAC;EAEb,IAAI0E,aAAa,CAACrqB,MAAM,KAAK,UAAU,EAAE;IAEvC,IAAIsqB,WAAW,KAAK,EAAE,EAAE;MAEtB,MAAMU,iBAAiB,GAAGC,4BAA4B,CAAC1X,IAAI,EAAEoS,QAAQ,CAAC;MACtE,MAAMuF,yBAAyB,GAC7B3X,IAAI,CAACoS,QAAQ,GAAGwF,mCAAmC,CAAC;MACtD,MAAMC,gBAAgB,GAAG,CAAC,EAAEF,yBAAyB,GAAG,CAAC,CAAC;MAE1D,MAAMG,mBAAmB,GAAG,CAAC;MAC7B,MAAMC,aAAa,GAAG,IAAIhoB,UAAU,CAAC+nB,mBAAmB,CAAC;MACzD,IAAI,CAACD,gBAAgB,EAAE;QACrBE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;QACvBA,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;MACzB;MACAA,aAAa,CAAC,CAAC,CAAC,GAAIN,iBAAiB,CAACjS,MAAM,KAAK,EAAE,GAAI,IAAI;MAC3DuS,aAAa,CAAC,CAAC,CAAC,GAAIN,iBAAiB,CAACjS,MAAM,IAAI,EAAE,GAAI,IAAI;MAC1DuS,aAAa,CAAC,CAAC,CAAC,GAAIN,iBAAiB,CAACjS,MAAM,IAAI,CAAC,GAAI,IAAI;MACzDuS,aAAa,CAAC,CAAC,CAAC,GAAGN,iBAAiB,CAACjS,MAAM,GAAG,IAAI;MAClD,KAAKnW,CAAC,GAAG+iB,QAAQ,EAAExb,EAAE,GAAGoJ,IAAI,CAACvT,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;QAChD,IAAIqd,CAAC,GAAG,CAAC;QACT,OAAOA,CAAC,GAAGoL,mBAAmB,IAAIC,aAAa,CAACrL,CAAC,CAAC,KAAK1M,IAAI,CAAC3Q,CAAC,GAAGqd,CAAC,CAAC,EAAE;UAClEA,CAAC,EAAE;QACL;QACA,IAAIA,CAAC,KAAKoL,mBAAmB,EAAE;UAC7BhB,aAAa,CAACrqB,MAAM,GAAG4C,CAAC,GAAGyoB,mBAAmB;UAC9C;QACF;MACF;MACA,IAAIhB,aAAa,CAACrqB,MAAM,KAAK,UAAU,EAAE;QACvC,MAAM,IAAIme,UAAU,CAAC,2BAA2B,CAAC;MACnD;IACF,CAAC,MAAM;MACL,MAAM,IAAIA,UAAU,CAAC,gCAAgC,CAAC;IACxD;EACF;EACAkM,aAAa,CAACkB,SAAS,GAAG5F,QAAQ;EAClC,OAAO0E,aAAa;AACtB;AAEA,SAASmB,YAAYA,CAACC,MAAM,EAAElY,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;EAC9C,MAAMuZ,QAAQ,GAAG,EAAE;EACnB,IAAI/F,QAAQ,GAAGlT,KAAK;EACpB,OAAOkT,QAAQ,GAAGxT,GAAG,EAAE;IACrB,MAAMkY,aAAa,GAAGD,iBAAiB,CAAC7W,IAAI,EAAEoS,QAAQ,CAAC;IACvDA,QAAQ,GAAG0E,aAAa,CAACkB,SAAS;IAClC,MAAMI,OAAO,GAAG;MACdF,MAAM,EAAEpB,aAAa;MACrB9W;IACF,CAAC;IACD,IAAI,CAACkY,MAAM,CAACG,YAAY,EAAE;MACxBD,OAAO,CAAClZ,KAAK,GAAGkT,QAAQ;MACxBA,QAAQ,IAAI0E,aAAa,CAACrqB,MAAM;MAChC2rB,OAAO,CAACxZ,GAAG,GAAGwT,QAAQ;IACxB;IACA+F,QAAQ,CAACxoB,IAAI,CAACyoB,OAAO,CAAC;IACtB,IAAItB,aAAa,CAAC/6B,IAAI,KAAK,EAAE,EAAE;MAC7B;IACF;EACF;EACA,IAAIm8B,MAAM,CAACG,YAAY,EAAE;IACvB,KAAK,IAAIhpB,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGuhB,QAAQ,CAAC1rB,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;MACjD8oB,QAAQ,CAAC9oB,CAAC,CAAC,CAAC6P,KAAK,GAAGkT,QAAQ;MAC5BA,QAAQ,IAAI+F,QAAQ,CAAC9oB,CAAC,CAAC,CAAC6oB,MAAM,CAACzrB,MAAM;MACrC0rB,QAAQ,CAAC9oB,CAAC,CAAC,CAACuP,GAAG,GAAGwT,QAAQ;IAC5B;EACF;EACA,OAAO+F,QAAQ;AACjB;AAGA,SAAST,4BAA4BA,CAAC1X,IAAI,EAAEd,KAAK,EAAE;EACjD,OAAO;IACLqG,KAAK,EAAEtE,UAAU,CAACjB,IAAI,EAAEd,KAAK,CAAC;IAC9BsG,MAAM,EAAEvE,UAAU,CAACjB,IAAI,EAAEd,KAAK,GAAG,CAAC,CAAC;IACnCzJ,CAAC,EAAEwL,UAAU,CAACjB,IAAI,EAAEd,KAAK,GAAG,CAAC,CAAC;IAC9BxJ,CAAC,EAAEuL,UAAU,CAACjB,IAAI,EAAEd,KAAK,GAAG,EAAE,CAAC;IAC/BoU,mBAAmB,EAAEtT,IAAI,CAACd,KAAK,GAAG,EAAE,CAAC,GAAG;EAC1C,CAAC;AACH;AACA,MAAM0Y,mCAAmC,GAAG,EAAE;AAE9C,SAASU,cAAcA,CAACF,OAAO,EAAEG,OAAO,EAAE;EACxC,MAAML,MAAM,GAAGE,OAAO,CAACF,MAAM;EAE7B,MAAMlY,IAAI,GAAGoY,OAAO,CAACpY,IAAI;IACvBpB,GAAG,GAAGwZ,OAAO,CAACxZ,GAAG;EACnB,IAAIwT,QAAQ,GAAGgG,OAAO,CAAClZ,KAAK;EAC5B,IAAIsZ,IAAI,EAAErL,EAAE,EAAE9d,CAAC,EAAEopB,QAAQ;EACzB,QAAQP,MAAM,CAACn8B,IAAI;IACjB,KAAK,CAAC;MAEJ,MAAM28B,UAAU,GAAG,CAAC,CAAC;MACrB,MAAMC,eAAe,GAAG3X,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;MAClDsG,UAAU,CAACxI,OAAO,GAAG,CAAC,EAAEyI,eAAe,GAAG,CAAC,CAAC;MAC5CD,UAAU,CAACvI,UAAU,GAAG,CAAC,EAAEwI,eAAe,GAAG,CAAC,CAAC;MAC/CD,UAAU,CAACE,iBAAiB,GAAID,eAAe,IAAI,CAAC,GAAI,CAAC;MACzDD,UAAU,CAACG,iBAAiB,GAAIF,eAAe,IAAI,CAAC,GAAI,CAAC;MACzDD,UAAU,CAACI,kBAAkB,GAAIH,eAAe,IAAI,CAAC,GAAI,CAAC;MAC1DD,UAAU,CAACK,4BAA4B,GAAIJ,eAAe,IAAI,CAAC,GAAI,CAAC;MACpED,UAAU,CAACM,uBAAuB,GAAG,CAAC,EAAEL,eAAe,GAAG,GAAG,CAAC;MAC9DD,UAAU,CAACO,2BAA2B,GAAG,CAAC,EAAEN,eAAe,GAAG,GAAG,CAAC;MAClED,UAAU,CAAClL,QAAQ,GAAImL,eAAe,IAAI,EAAE,GAAI,CAAC;MACjDD,UAAU,CAACQ,kBAAkB,GAAIP,eAAe,IAAI,EAAE,GAAI,CAAC;MAC3DvG,QAAQ,IAAI,CAAC;MACb,IAAI,CAACsG,UAAU,CAACxI,OAAO,EAAE;QACvBuI,QAAQ,GAAGC,UAAU,CAAClL,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAC5CL,EAAE,GAAG,EAAE;QACP,KAAK9d,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGopB,QAAQ,EAAEppB,CAAC,EAAE,EAAE;UAC7B8d,EAAE,CAACxd,IAAI,CAAC;YACN8F,CAAC,EAAEqL,QAAQ,CAACd,IAAI,EAAEoS,QAAQ,CAAC;YAC3B1c,CAAC,EAAEoL,QAAQ,CAACd,IAAI,EAAEoS,QAAQ,GAAG,CAAC;UAChC,CAAC,CAAC;UACFA,QAAQ,IAAI,CAAC;QACf;QACAsG,UAAU,CAACvL,EAAE,GAAGA,EAAE;MACpB;MACA,IAAIuL,UAAU,CAACvI,UAAU,IAAI,CAACuI,UAAU,CAACQ,kBAAkB,EAAE;QAC3D/L,EAAE,GAAG,EAAE;QACP,KAAK9d,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;UACtB8d,EAAE,CAACxd,IAAI,CAAC;YACN8F,CAAC,EAAEqL,QAAQ,CAACd,IAAI,EAAEoS,QAAQ,CAAC;YAC3B1c,CAAC,EAAEoL,QAAQ,CAACd,IAAI,EAAEoS,QAAQ,GAAG,CAAC;UAChC,CAAC,CAAC;UACFA,QAAQ,IAAI,CAAC;QACf;QACAsG,UAAU,CAACjI,YAAY,GAAGtD,EAAE;MAC9B;MACAuL,UAAU,CAACpI,uBAAuB,GAAGrP,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;MAC/DA,QAAQ,IAAI,CAAC;MACbsG,UAAU,CAACrI,kBAAkB,GAAGpP,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;MAC1DA,QAAQ,IAAI,CAAC;MACboG,IAAI,GAAG,CACLE,UAAU,EACVR,MAAM,CAAC3X,MAAM,EACb2X,MAAM,CAACX,UAAU,EACjBvX,IAAI,EACJoS,QAAQ,EACRxT,GAAG,CACJ;MACD;IACF,KAAK,CAAC;IACN,KAAK,CAAC;MACJ,MAAMua,UAAU,GAAG,CAAC,CAAC;MACrBA,UAAU,CAACztB,IAAI,GAAGgsB,4BAA4B,CAAC1X,IAAI,EAAEoS,QAAQ,CAAC;MAC9DA,QAAQ,IAAIwF,mCAAmC;MAC/C,MAAMwB,sBAAsB,GAAGpY,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;MACzDA,QAAQ,IAAI,CAAC;MACb+G,UAAU,CAACjJ,OAAO,GAAG,CAAC,EAAEkJ,sBAAsB,GAAG,CAAC,CAAC;MACnDD,UAAU,CAAChJ,UAAU,GAAG,CAAC,EAAEiJ,sBAAsB,GAAG,CAAC,CAAC;MACtDD,UAAU,CAAC5F,YAAY,GAAI6F,sBAAsB,IAAI,CAAC,GAAI,CAAC;MAC3DD,UAAU,CAAClG,SAAS,GAAG,CAAC,IAAIkG,UAAU,CAAC5F,YAAY;MACnD4F,UAAU,CAAC9F,eAAe,GAAI+F,sBAAsB,IAAI,CAAC,GAAI,CAAC;MAC9DD,UAAU,CAAChG,UAAU,GAAG,CAAC,EAAEiG,sBAAsB,GAAG,EAAE,CAAC;MACvDD,UAAU,CAAC7F,mBAAmB,GAAI8F,sBAAsB,IAAI,CAAC,GAAI,CAAC;MAClED,UAAU,CAACpG,iBAAiB,GAAIqG,sBAAsB,IAAI,CAAC,GAAI,CAAC;MAChED,UAAU,CAAC/F,QAAQ,GAAIgG,sBAAsB,IAAI,EAAE,IAAK,EAAE;MAC1DD,UAAU,CAACD,kBAAkB,GAAIE,sBAAsB,IAAI,EAAE,GAAI,CAAC;MAClE,IAAID,UAAU,CAACjJ,OAAO,EAAE;QACtB,MAAMmJ,sBAAsB,GAAGrY,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;QACzDA,QAAQ,IAAI,CAAC;QACb+G,UAAU,CAACG,SAAS,GAAGD,sBAAsB,GAAG,CAAC;QACjDF,UAAU,CAACI,SAAS,GAAIF,sBAAsB,IAAI,CAAC,GAAI,CAAC;QACxDF,UAAU,CAACK,SAAS,GAAIH,sBAAsB,IAAI,CAAC,GAAI,CAAC;QACxDF,UAAU,CAACM,mBAAmB,GAAIJ,sBAAsB,IAAI,CAAC,GAAI,CAAC;QAClEF,UAAU,CAACO,mBAAmB,GAAIL,sBAAsB,IAAI,CAAC,GAAI,CAAC;QAClEF,UAAU,CAACQ,mBAAmB,GAAIN,sBAAsB,IAAI,EAAE,GAAI,CAAC;QACnEF,UAAU,CAACS,mBAAmB,GAAIP,sBAAsB,IAAI,EAAE,GAAI,CAAC;QACnEF,UAAU,CAACU,6BAA6B,GAAG,CAAC,EAC1CR,sBAAsB,GAAG,MAAM,CAChC;MACH;MACA,IAAIF,UAAU,CAAChJ,UAAU,IAAI,CAACgJ,UAAU,CAACD,kBAAkB,EAAE;QAC3D/L,EAAE,GAAG,EAAE;QACP,KAAK9d,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;UACtB8d,EAAE,CAACxd,IAAI,CAAC;YACN8F,CAAC,EAAEqL,QAAQ,CAACd,IAAI,EAAEoS,QAAQ,CAAC;YAC3B1c,CAAC,EAAEoL,QAAQ,CAACd,IAAI,EAAEoS,QAAQ,GAAG,CAAC;UAChC,CAAC,CAAC;UACFA,QAAQ,IAAI,CAAC;QACf;QACA+G,UAAU,CAAC1I,YAAY,GAAGtD,EAAE;MAC9B;MACAgM,UAAU,CAACnG,uBAAuB,GAAG/R,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;MAC/DA,QAAQ,IAAI,CAAC;MACboG,IAAI,GAAG,CAACW,UAAU,EAAEjB,MAAM,CAACX,UAAU,EAAEvX,IAAI,EAAEoS,QAAQ,EAAExT,GAAG,CAAC;MAC3D;IACF,KAAK,EAAE;MAEL,MAAMkb,iBAAiB,GAAG,CAAC,CAAC;MAC5B,MAAMC,sBAAsB,GAAG/Z,IAAI,CAACoS,QAAQ,EAAE,CAAC;MAC/C0H,iBAAiB,CAAC9M,GAAG,GAAG,CAAC,EAAE+M,sBAAsB,GAAG,CAAC,CAAC;MACtDD,iBAAiB,CAACtM,QAAQ,GAAIuM,sBAAsB,IAAI,CAAC,GAAI,CAAC;MAC9DD,iBAAiB,CAAC9E,YAAY,GAAGhV,IAAI,CAACoS,QAAQ,EAAE,CAAC;MACjD0H,iBAAiB,CAAC7E,aAAa,GAAGjV,IAAI,CAACoS,QAAQ,EAAE,CAAC;MAClD0H,iBAAiB,CAAC5E,eAAe,GAAGjU,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;MAC9DA,QAAQ,IAAI,CAAC;MACboG,IAAI,GAAG,CAACsB,iBAAiB,EAAE5B,MAAM,CAAC3X,MAAM,EAAEP,IAAI,EAAEoS,QAAQ,EAAExT,GAAG,CAAC;MAC9D;IACF,KAAK,EAAE;IACP,KAAK,EAAE;MAEL,MAAMob,cAAc,GAAG,CAAC,CAAC;MACzBA,cAAc,CAACtuB,IAAI,GAAGgsB,4BAA4B,CAAC1X,IAAI,EAAEoS,QAAQ,CAAC;MAClEA,QAAQ,IAAIwF,mCAAmC;MAC/C,MAAMqC,mBAAmB,GAAGja,IAAI,CAACoS,QAAQ,EAAE,CAAC;MAC5C4H,cAAc,CAAChN,GAAG,GAAG,CAAC,EAAEiN,mBAAmB,GAAG,CAAC,CAAC;MAChDD,cAAc,CAACxM,QAAQ,GAAIyM,mBAAmB,IAAI,CAAC,GAAI,CAAC;MACxDD,cAAc,CAACvE,UAAU,GAAG,CAAC,EAAEwE,mBAAmB,GAAG,CAAC,CAAC;MACvDD,cAAc,CAAC1G,mBAAmB,GAAI2G,mBAAmB,IAAI,CAAC,GAAI,CAAC;MACnED,cAAc,CAACjH,iBAAiB,GAAIkH,mBAAmB,IAAI,CAAC,GAAI,CAAC;MACjED,cAAc,CAACtE,SAAS,GAAGzU,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;MACrDA,QAAQ,IAAI,CAAC;MACb4H,cAAc,CAACrE,UAAU,GAAG1U,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;MACtDA,QAAQ,IAAI,CAAC;MACb4H,cAAc,CAACpE,WAAW,GAAG3U,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC,GAAG,UAAU;MACpEA,QAAQ,IAAI,CAAC;MACb4H,cAAc,CAACnE,WAAW,GAAG5U,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC,GAAG,UAAU;MACpEA,QAAQ,IAAI,CAAC;MACb4H,cAAc,CAAClE,WAAW,GAAG9U,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;MACvDA,QAAQ,IAAI,CAAC;MACb4H,cAAc,CAACjE,WAAW,GAAG/U,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;MACvDA,QAAQ,IAAI,CAAC;MACboG,IAAI,GAAG,CAACwB,cAAc,EAAE9B,MAAM,CAACX,UAAU,EAAEvX,IAAI,EAAEoS,QAAQ,EAAExT,GAAG,CAAC;MAC/D;IACF,KAAK,EAAE;IACP,KAAK,EAAE;MACL,MAAMsb,aAAa,GAAG,CAAC,CAAC;MACxBA,aAAa,CAACxuB,IAAI,GAAGgsB,4BAA4B,CAAC1X,IAAI,EAAEoS,QAAQ,CAAC;MACjEA,QAAQ,IAAIwF,mCAAmC;MAC/C,MAAMD,yBAAyB,GAAG3X,IAAI,CAACoS,QAAQ,EAAE,CAAC;MAClD8H,aAAa,CAAClN,GAAG,GAAG,CAAC,EAAE2K,yBAAyB,GAAG,CAAC,CAAC;MACrDuC,aAAa,CAAC1M,QAAQ,GAAImK,yBAAyB,IAAI,CAAC,GAAI,CAAC;MAC7DuC,aAAa,CAAChN,UAAU,GAAG,CAAC,EAAEyK,yBAAyB,GAAG,CAAC,CAAC;MAC5D,IAAI,CAACuC,aAAa,CAAClN,GAAG,EAAE;QACtByL,QAAQ,GAAGyB,aAAa,CAAC1M,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAC/CL,EAAE,GAAG,EAAE;QACP,KAAK9d,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGopB,QAAQ,EAAEppB,CAAC,EAAE,EAAE;UAC7B8d,EAAE,CAACxd,IAAI,CAAC;YACN8F,CAAC,EAAEqL,QAAQ,CAACd,IAAI,EAAEoS,QAAQ,CAAC;YAC3B1c,CAAC,EAAEoL,QAAQ,CAACd,IAAI,EAAEoS,QAAQ,GAAG,CAAC;UAChC,CAAC,CAAC;UACFA,QAAQ,IAAI,CAAC;QACf;QACA8H,aAAa,CAAC/M,EAAE,GAAGA,EAAE;MACvB;MACAqL,IAAI,GAAG,CAAC0B,aAAa,EAAEla,IAAI,EAAEoS,QAAQ,EAAExT,GAAG,CAAC;MAC3C;IACF,KAAK,EAAE;MACL,MAAMub,QAAQ,GAAG;QACf5U,KAAK,EAAEtE,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;QACjC5M,MAAM,EAAEvE,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC;QACtCgI,WAAW,EAAEnZ,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC;QAC3CiI,WAAW,EAAEpZ,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,EAAE;MAC7C,CAAC;MACD,IAAI+H,QAAQ,CAAC3U,MAAM,KAAK,UAAU,EAAE;QAClC,OAAO2U,QAAQ,CAAC3U,MAAM;MACxB;MACA,MAAM8U,gBAAgB,GAAGta,IAAI,CAACoS,QAAQ,GAAG,EAAE,CAAC;MAC5CpR,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,GAAG,EAAE,CAAC;MAC/B+H,QAAQ,CAACI,QAAQ,GAAG,CAAC,EAAED,gBAAgB,GAAG,CAAC,CAAC;MAC5CH,QAAQ,CAAChK,UAAU,GAAG,CAAC,EAAEmK,gBAAgB,GAAG,CAAC,CAAC;MAC9CH,QAAQ,CAACpH,iBAAiB,GAAIuH,gBAAgB,IAAI,CAAC,GAAI,CAAC;MACxDH,QAAQ,CAAC7G,mBAAmB,GAAIgH,gBAAgB,IAAI,CAAC,GAAI,CAAC;MAC1DH,QAAQ,CAACK,cAAc,GAAG,CAAC,EAAEF,gBAAgB,GAAG,EAAE,CAAC;MACnDH,QAAQ,CAACM,2BAA2B,GAAG,CAAC,EAAEH,gBAAgB,GAAG,EAAE,CAAC;MAChE9B,IAAI,GAAG,CAAC2B,QAAQ,CAAC;MACjB;IACF,KAAK,EAAE;MACL;IACF,KAAK,EAAE;MACL;IACF,KAAK,EAAE;MACL;IACF,KAAK,EAAE;MACL3B,IAAI,GAAG,CAACN,MAAM,CAAC3X,MAAM,EAAEP,IAAI,EAAEoS,QAAQ,EAAExT,GAAG,CAAC;MAC3C;IACF,KAAK,EAAE;MAEL;IACF;MACE,MAAM,IAAIgM,UAAU,CACjB,gBAAesN,MAAM,CAAClB,QAAS,IAAGkB,MAAM,CAACn8B,IAAK,sBACjD,CAAC;EACL;EACA,MAAM2+B,YAAY,GAAG,IAAI,GAAGxC,MAAM,CAAClB,QAAQ;EAC3C,IAAI0D,YAAY,IAAInC,OAAO,EAAE;IAE3BA,OAAO,CAACmC,YAAY,CAAC,CAACvrB,KAAK,CAACopB,OAAO,EAAEC,IAAI,CAAC;EAC5C;AACF;AAEA,SAASmC,eAAeA,CAACxC,QAAQ,EAAEI,OAAO,EAAE;EAC1C,KAAK,IAAIlpB,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGuhB,QAAQ,CAAC1rB,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;IACjDipB,cAAc,CAACH,QAAQ,CAAC9oB,CAAC,CAAC,EAAEkpB,OAAO,CAAC;EACtC;AACF;AAEA,SAASqC,gBAAgBA,CAACC,MAAM,EAAE;EAChC,MAAMtC,OAAO,GAAG,IAAIuC,oBAAoB,CAAC,CAAC;EAC1C,KAAK,IAAIzrB,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGikB,MAAM,CAACpuB,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;IAC/C,MAAMI,KAAK,GAAGorB,MAAM,CAACxrB,CAAC,CAAC;IACvB,MAAM8oB,QAAQ,GAAGF,YAAY,CAAC,CAAC,CAAC,EAAExoB,KAAK,CAACuQ,IAAI,EAAEvQ,KAAK,CAACyP,KAAK,EAAEzP,KAAK,CAACmP,GAAG,CAAC;IACrE+b,eAAe,CAACxC,QAAQ,EAAEI,OAAO,CAAC;EACpC;EACA,OAAOA,OAAO,CAAC3nB,MAAM;AACvB;AAEA,SAASmqB,UAAUA,CAAC/a,IAAI,EAAE;EAIxB,MAAMpB,GAAG,GAAGoB,IAAI,CAACvT,MAAM;EACvB,IAAI2lB,QAAQ,GAAG,CAAC;EAEhB,IACEpS,IAAI,CAACoS,QAAQ,CAAC,KAAK,IAAI,IACvBpS,IAAI,CAACoS,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,IAC3BpS,IAAI,CAACoS,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,IAC3BpS,IAAI,CAACoS,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,IAC3BpS,IAAI,CAACoS,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,IAC3BpS,IAAI,CAACoS,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,IAC3BpS,IAAI,CAACoS,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,IAC3BpS,IAAI,CAACoS,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,EAC3B;IACA,MAAM,IAAIxH,UAAU,CAAC,8BAA8B,CAAC;EACtD;EAEA,MAAMsN,MAAM,GAAGzqB,MAAM,CAAC6C,MAAM,CAAC,IAAI,CAAC;EAClC8hB,QAAQ,IAAI,CAAC;EACb,MAAMO,KAAK,GAAG3S,IAAI,CAACoS,QAAQ,EAAE,CAAC;EAC9B8F,MAAM,CAACG,YAAY,GAAG,EAAE1F,KAAK,GAAG,CAAC,CAAC;EAClC,IAAI,EAAEA,KAAK,GAAG,CAAC,CAAC,EAAE;IAChBuF,MAAM,CAAC8C,aAAa,GAAG/Z,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;IACjDA,QAAQ,IAAI,CAAC;EACf;EAEA,MAAM+F,QAAQ,GAAGF,YAAY,CAACC,MAAM,EAAElY,IAAI,EAAEoS,QAAQ,EAAExT,GAAG,CAAC;EAC1D,MAAM2Z,OAAO,GAAG,IAAIuC,oBAAoB,CAAC,CAAC;EAC1CH,eAAe,CAACxC,QAAQ,EAAEI,OAAO,CAAC;EAElC,MAAM;IAAEhT,KAAK;IAAEC;EAAO,CAAC,GAAG+S,OAAO,CAAC0C,eAAe;EACjD,MAAMC,SAAS,GAAG3C,OAAO,CAAC3nB,MAAM;EAChC,MAAMuqB,OAAO,GAAG,IAAIC,iBAAiB,CAAC7V,KAAK,GAAGC,MAAM,CAAC;EACrD,IAAI6V,CAAC,GAAG,CAAC;IACPlN,CAAC,GAAG,CAAC;EACP,KAAK,IAAI9e,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmW,MAAM,EAAEnW,CAAC,EAAE,EAAE;IAC/B,IAAIisB,IAAI,GAAG,CAAC;MACV1qB,MAAM;IACR,KAAK,IAAI8b,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;MAC9B,IAAI,CAAC4O,IAAI,EAAE;QACTA,IAAI,GAAG,GAAG;QACV1qB,MAAM,GAAGsqB,SAAS,CAAC/M,CAAC,EAAE,CAAC;MACzB;MACAgN,OAAO,CAACE,CAAC,EAAE,CAAC,GAAGzqB,MAAM,GAAG0qB,IAAI,GAAG,CAAC,GAAG,GAAG;MACtCA,IAAI,KAAK,CAAC;IACZ;EACF;EAEA,OAAO;IAAEH,OAAO;IAAE5V,KAAK;IAAEC;EAAO,CAAC;AACnC;AAEA,MAAMsV,oBAAoB,CAAC;EACzBS,iBAAiBA,CAAC7vB,IAAI,EAAE;IACtB,IAAI,CAACuvB,eAAe,GAAGvvB,IAAI;IAC3B,MAAM8vB,OAAO,GAAI9vB,IAAI,CAAC6Z,KAAK,GAAG,CAAC,IAAK,CAAC;IACrC,MAAM3U,MAAM,GAAG,IAAIwqB,iBAAiB,CAACI,OAAO,GAAG9vB,IAAI,CAAC8Z,MAAM,CAAC;IAG3D,IAAI9Z,IAAI,CAACqnB,iBAAiB,EAAE;MAC1BniB,MAAM,CAAC9J,IAAI,CAAC,IAAI,CAAC;IACnB;IACA,IAAI,CAAC8J,MAAM,GAAGA,MAAM;EACtB;EAEA6qB,UAAUA,CAACC,UAAU,EAAElP,MAAM,EAAE;IAC7B,MAAM2N,QAAQ,GAAG,IAAI,CAACc,eAAe;IACrC,MAAM1V,KAAK,GAAGmW,UAAU,CAACnW,KAAK;MAC5BC,MAAM,GAAGkW,UAAU,CAAClW,MAAM;IAC5B,MAAMgW,OAAO,GAAIrB,QAAQ,CAAC5U,KAAK,GAAG,CAAC,IAAK,CAAC;IACzC,MAAM+N,mBAAmB,GAAG6G,QAAQ,CAACM,2BAA2B,GAC5DiB,UAAU,CAACpI,mBAAmB,GAC9B6G,QAAQ,CAAC7G,mBAAmB;IAChC,MAAM1iB,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,MAAM+qB,KAAK,GAAG,GAAG,KAAKD,UAAU,CAACjmB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAImmB,OAAO,GAAGF,UAAU,CAAChmB,CAAC,GAAG8lB,OAAO,IAAIE,UAAU,CAACjmB,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAIpG,CAAC,EAAEqd,CAAC,EAAE4O,IAAI,EAAEva,MAAM;IACtB,QAAQuS,mBAAmB;MACzB,KAAK,CAAC;QACJ,KAAKjkB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmW,MAAM,EAAEnW,CAAC,EAAE,EAAE;UAC3BisB,IAAI,GAAGK,KAAK;UACZ5a,MAAM,GAAG6a,OAAO;UAChB,KAAKlP,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;YAC1B,IAAIF,MAAM,CAACnd,CAAC,CAAC,CAACqd,CAAC,CAAC,EAAE;cAChB9b,MAAM,CAACmQ,MAAM,CAAC,IAAIua,IAAI;YACxB;YACAA,IAAI,KAAK,CAAC;YACV,IAAI,CAACA,IAAI,EAAE;cACTA,IAAI,GAAG,GAAG;cACVva,MAAM,EAAE;YACV;UACF;UACA6a,OAAO,IAAIJ,OAAO;QACpB;QACA;MACF,KAAK,CAAC;QACJ,KAAKnsB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmW,MAAM,EAAEnW,CAAC,EAAE,EAAE;UAC3BisB,IAAI,GAAGK,KAAK;UACZ5a,MAAM,GAAG6a,OAAO;UAChB,KAAKlP,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;YAC1B,IAAIF,MAAM,CAACnd,CAAC,CAAC,CAACqd,CAAC,CAAC,EAAE;cAChB9b,MAAM,CAACmQ,MAAM,CAAC,IAAIua,IAAI;YACxB;YACAA,IAAI,KAAK,CAAC;YACV,IAAI,CAACA,IAAI,EAAE;cACTA,IAAI,GAAG,GAAG;cACVva,MAAM,EAAE;YACV;UACF;UACA6a,OAAO,IAAIJ,OAAO;QACpB;QACA;MACF;QACE,MAAM,IAAI5Q,UAAU,CACjB,YAAW0I,mBAAoB,mBAClC,CAAC;IACL;EACF;EAEAuI,wBAAwBA,CAACC,MAAM,EAAE9b,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;IACjD,MAAM8c,UAAU,GAAGI,MAAM,CAACpwB,IAAI;IAC9B,MAAM6gB,eAAe,GAAG,IAAItB,eAAe,CAACjL,IAAI,EAAEd,KAAK,EAAEN,GAAG,CAAC;IAC7D,MAAM4N,MAAM,GAAGO,YAAY,CACzB+O,MAAM,CAAC9O,GAAG,EACV0O,UAAU,CAACnW,KAAK,EAChBmW,UAAU,CAAClW,MAAM,EACjBsW,MAAM,CAACtO,QAAQ,EACfsO,MAAM,CAAC5O,UAAU,EACjB,IAAI,EACJ4O,MAAM,CAAC3O,EAAE,EACTZ,eACF,CAAC;IACD,IAAI,CAACkP,UAAU,CAACC,UAAU,EAAElP,MAAM,CAAC;EACrC;EAEAuP,gCAAgCA,CAAA,EAAG;IACjC,IAAI,CAACF,wBAAwB,CAAC,GAAGrvB,SAAS,CAAC;EAC7C;EAEAwvB,kBAAkBA,CAChBtD,UAAU,EACVuD,cAAc,EACdC,gBAAgB,EAChBlc,IAAI,EACJd,KAAK,EACLN,GAAG,EACH;IACA,IAAI2R,aAAa,EAAEG,YAAY;IAC/B,IAAIgI,UAAU,CAACxI,OAAO,EAAE;MACtBK,aAAa,GAAG4L,gCAAgC,CAC9CzD,UAAU,EACVwD,gBAAgB,EAChB,IAAI,CAACE,YACP,CAAC;MACD1L,YAAY,GAAG,IAAIrD,MAAM,CAACrN,IAAI,EAAEd,KAAK,EAAEN,GAAG,CAAC;IAC7C;IAGA,IAAIwR,OAAO,GAAG,IAAI,CAACA,OAAO;IAC1B,IAAI,CAACA,OAAO,EAAE;MACZ,IAAI,CAACA,OAAO,GAAGA,OAAO,GAAG,CAAC,CAAC;IAC7B;IAEA,MAAM8C,YAAY,GAAG,EAAE;IACvB,KAAK,MAAMmJ,eAAe,IAAIH,gBAAgB,EAAE;MAC9C,MAAMI,eAAe,GAAGlM,OAAO,CAACiM,eAAe,CAAC;MAGhD,IAAIC,eAAe,EAAE;QACnBpJ,YAAY,CAACvjB,IAAI,CAAC,GAAG2sB,eAAe,CAAC;MACvC;IACF;IAEA,MAAM/P,eAAe,GAAG,IAAItB,eAAe,CAACjL,IAAI,EAAEd,KAAK,EAAEN,GAAG,CAAC;IAC7DwR,OAAO,CAAC6L,cAAc,CAAC,GAAGhM,sBAAsB,CAC9CyI,UAAU,CAACxI,OAAO,EAClBwI,UAAU,CAACvI,UAAU,EACrB+C,YAAY,EACZwF,UAAU,CAACrI,kBAAkB,EAC7BqI,UAAU,CAACpI,uBAAuB,EAClCC,aAAa,EACbmI,UAAU,CAAClL,QAAQ,EACnBkL,UAAU,CAACvL,EAAE,EACbuL,UAAU,CAACQ,kBAAkB,EAC7BR,UAAU,CAACjI,YAAY,EACvBlE,eAAe,EACfmE,YACF,CAAC;EACH;EAEA6L,qBAAqBA,CAACT,MAAM,EAAEI,gBAAgB,EAAElc,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;IAChE,MAAM8c,UAAU,GAAGI,MAAM,CAACpwB,IAAI;IAC9B,IAAI6kB,aAAa,EAAEG,YAAY;IAG/B,MAAMN,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,MAAM8C,YAAY,GAAG,EAAE;IACvB,KAAK,MAAMmJ,eAAe,IAAIH,gBAAgB,EAAE;MAC9C,MAAMI,eAAe,GAAGlM,OAAO,CAACiM,eAAe,CAAC;MAGhD,IAAIC,eAAe,EAAE;QACnBpJ,YAAY,CAACvjB,IAAI,CAAC,GAAG2sB,eAAe,CAAC;MACvC;IACF;IACA,MAAMzL,gBAAgB,GAAGjQ,IAAI,CAACsS,YAAY,CAACzmB,MAAM,CAAC;IAClD,IAAIqvB,MAAM,CAAC5L,OAAO,EAAE;MAClBQ,YAAY,GAAG,IAAIrD,MAAM,CAACrN,IAAI,EAAEd,KAAK,EAAEN,GAAG,CAAC;MAC3C2R,aAAa,GAAGiM,0BAA0B,CACxCV,MAAM,EACNI,gBAAgB,EAChB,IAAI,CAACE,YAAY,EACjBlJ,YAAY,CAACzmB,MAAM,EACnBikB,YACF,CAAC;IACH;IAEA,MAAMnE,eAAe,GAAG,IAAItB,eAAe,CAACjL,IAAI,EAAEd,KAAK,EAAEN,GAAG,CAAC;IAC7D,MAAM4N,MAAM,GAAGiF,gBAAgB,CAC7BqK,MAAM,CAAC5L,OAAO,EACd4L,MAAM,CAAC3L,UAAU,EACjBuL,UAAU,CAACnW,KAAK,EAChBmW,UAAU,CAAClW,MAAM,EACjBsW,MAAM,CAAC/I,iBAAiB,EACxB+I,MAAM,CAAC9I,uBAAuB,EAC9B8I,MAAM,CAAC7I,SAAS,EAChBC,YAAY,EACZrC,gBAAgB,EAChBiL,MAAM,CAAC3I,UAAU,EACjB2I,MAAM,CAAC1I,QAAQ,EACf0I,MAAM,CAACzI,eAAe,EACtByI,MAAM,CAACxI,mBAAmB,EAC1B/C,aAAa,EACbuL,MAAM,CAAC5C,kBAAkB,EACzB4C,MAAM,CAACrL,YAAY,EACnBlE,eAAe,EACfuP,MAAM,CAACvI,YAAY,EACnB7C,YACF,CAAC;IACD,IAAI,CAAC+K,UAAU,CAACC,UAAU,EAAElP,MAAM,CAAC;EACrC;EAEAiQ,6BAA6BA,CAAA,EAAG;IAC9B,IAAI,CAACF,qBAAqB,CAAC,GAAG/vB,SAAS,CAAC;EAC1C;EAEAkwB,mBAAmBA,CAAChE,UAAU,EAAEuD,cAAc,EAAEjc,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;IAChE,IAAIwW,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC5B,IAAI,CAACA,QAAQ,EAAE;MACb,IAAI,CAACA,QAAQ,GAAGA,QAAQ,GAAG,CAAC,CAAC;IAC/B;IACA,MAAM7I,eAAe,GAAG,IAAItB,eAAe,CAACjL,IAAI,EAAEd,KAAK,EAAEN,GAAG,CAAC;IAC7DwW,QAAQ,CAAC6G,cAAc,CAAC,GAAGlH,uBAAuB,CAChD2D,UAAU,CAAC1L,GAAG,EACd0L,UAAU,CAAC1D,YAAY,EACvB0D,UAAU,CAACzD,aAAa,EACxByD,UAAU,CAACxD,eAAe,EAC1BwD,UAAU,CAAClL,QAAQ,EACnBjB,eACF,CAAC;EACH;EAEAoQ,yBAAyBA,CAACb,MAAM,EAAEI,gBAAgB,EAAElc,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;IAEpE,MAAMwW,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAAC8G,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACnD,MAAMR,UAAU,GAAGI,MAAM,CAACpwB,IAAI;IAC9B,MAAM6gB,eAAe,GAAG,IAAItB,eAAe,CAACjL,IAAI,EAAEd,KAAK,EAAEN,GAAG,CAAC;IAC7D,MAAM4N,MAAM,GAAG8I,oBAAoB,CACjCwG,MAAM,CAAC9O,GAAG,EACVoI,QAAQ,EACR0G,MAAM,CAACtO,QAAQ,EACfkO,UAAU,CAACnW,KAAK,EAChBmW,UAAU,CAAClW,MAAM,EACjBsW,MAAM,CAAC/I,iBAAiB,EACxB+I,MAAM,CAACrG,UAAU,EACjBqG,MAAM,CAACxI,mBAAmB,EAC1BwI,MAAM,CAACpG,SAAS,EAChBoG,MAAM,CAACnG,UAAU,EACjBmG,MAAM,CAAClG,WAAW,EAClBkG,MAAM,CAACjG,WAAW,EAClBiG,MAAM,CAAChG,WAAW,EAClBgG,MAAM,CAAC/F,WAAW,EAClBxJ,eACF,CAAC;IACD,IAAI,CAACkP,UAAU,CAACC,UAAU,EAAElP,MAAM,CAAC;EACrC;EAEAoQ,iCAAiCA,CAAA,EAAG;IAClC,IAAI,CAACD,yBAAyB,CAAC,GAAGnwB,SAAS,CAAC;EAC9C;EAEAqwB,QAAQA,CAACZ,cAAc,EAAEjc,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;IACzC,IAAIwd,YAAY,GAAG,IAAI,CAACA,YAAY;IACpC,IAAI,CAACA,YAAY,EAAE;MACjB,IAAI,CAACA,YAAY,GAAGA,YAAY,GAAG,CAAC,CAAC;IACvC;IACAA,YAAY,CAACH,cAAc,CAAC,GAAGa,mBAAmB,CAAC9c,IAAI,EAAEd,KAAK,EAAEN,GAAG,CAAC;EACtE;AACF;AAEA,MAAMme,WAAW,CAAC;EAChB7uB,WAAWA,CAAC8uB,QAAQ,EAAE;IACpB,IAAIA,QAAQ,CAACvwB,MAAM,KAAK,CAAC,EAAE;MAEzB,IAAI,CAACwwB,KAAK,GAAG,IAAI;MACjB,IAAI,CAACC,QAAQ,GAAG,CAAC;MACjB,IAAI,CAACC,YAAY,GAAGH,QAAQ,CAAC,CAAC,CAAC;MAC/B,IAAI,CAACI,WAAW,GAAG,CAAC;MACpB,IAAI,CAACC,UAAU,GAAGL,QAAQ,CAAC,CAAC,CAAC;MAC7B,IAAI,CAACM,YAAY,GAAG,KAAK;IAC3B,CAAC,MAAM;MAGL,IAAI,CAACL,KAAK,GAAG,KAAK;MAClB,IAAI,CAACC,QAAQ,GAAGF,QAAQ,CAAC,CAAC,CAAC;MAC3B,IAAI,CAACG,YAAY,GAAGH,QAAQ,CAAC,CAAC,CAAC;MAC/B,IAAI,CAACI,WAAW,GAAGJ,QAAQ,CAAC,CAAC,CAAC;MAC9B,IAAI,CAACK,UAAU,GAAGL,QAAQ,CAAC,CAAC,CAAC;MAC7B,IAAI,CAACM,YAAY,GAAGN,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;IAC7C;EACF;AACF;AAEA,MAAMO,eAAe,CAAC;EACpBrvB,WAAWA,CAACsvB,IAAI,EAAE;IAChB,IAAI,CAACC,QAAQ,GAAG,EAAE;IAClB,IAAID,IAAI,EAAE;MAER,IAAI,CAACE,MAAM,GAAG,IAAI;MAClB,IAAI,CAACN,WAAW,GAAGI,IAAI,CAACJ,WAAW;MACnC,IAAI,CAACF,QAAQ,GAAGM,IAAI,CAACN,QAAQ;MAC7B,IAAI,CAACI,YAAY,GAAGE,IAAI,CAACF,YAAY;MACrC,IAAI,CAACL,KAAK,GAAGO,IAAI,CAACP,KAAK;IACzB,CAAC,MAAM;MAEL,IAAI,CAACS,MAAM,GAAG,KAAK;IACrB;EACF;EAEAC,SAASA,CAACH,IAAI,EAAExO,KAAK,EAAE;IACrB,MAAMtD,GAAG,GAAI8R,IAAI,CAACH,UAAU,IAAIrO,KAAK,GAAI,CAAC;IAC1C,IAAIA,KAAK,IAAI,CAAC,EAAE;MAEd,IAAI,CAACyO,QAAQ,CAAC/R,GAAG,CAAC,GAAG,IAAI6R,eAAe,CAACC,IAAI,CAAC;IAChD,CAAC,MAAM;MAEL,IAAII,IAAI,GAAG,IAAI,CAACH,QAAQ,CAAC/R,GAAG,CAAC;MAC7B,IAAI,CAACkS,IAAI,EAAE;QACT,IAAI,CAACH,QAAQ,CAAC/R,GAAG,CAAC,GAAGkS,IAAI,GAAG,IAAIL,eAAe,CAAC,IAAI,CAAC;MACvD;MACAK,IAAI,CAACD,SAAS,CAACH,IAAI,EAAExO,KAAK,GAAG,CAAC,CAAC;IACjC;EACF;EAEA6O,UAAUA,CAACC,MAAM,EAAE;IACjB,IAAI,IAAI,CAACJ,MAAM,EAAE;MACf,IAAI,IAAI,CAACT,KAAK,EAAE;QACd,OAAO,IAAI;MACb;MACA,MAAMc,QAAQ,GAAGD,MAAM,CAACrS,QAAQ,CAAC,IAAI,CAAC2R,WAAW,CAAC;MAClD,OAAO,IAAI,CAACF,QAAQ,IAAI,IAAI,CAACI,YAAY,GAAG,CAACS,QAAQ,GAAGA,QAAQ,CAAC;IACnE;IACA,MAAMH,IAAI,GAAG,IAAI,CAACH,QAAQ,CAACK,MAAM,CAACxX,OAAO,CAAC,CAAC,CAAC;IAC5C,IAAI,CAACsX,IAAI,EAAE;MACT,MAAM,IAAIhT,UAAU,CAAC,sBAAsB,CAAC;IAC9C;IACA,OAAOgT,IAAI,CAACC,UAAU,CAACC,MAAM,CAAC;EAChC;AACF;AAEA,MAAME,YAAY,CAAC;EACjB9vB,WAAWA,CAAC+vB,KAAK,EAAEC,eAAe,EAAE;IAClC,IAAI,CAACA,eAAe,EAAE;MACpB,IAAI,CAACC,iBAAiB,CAACF,KAAK,CAAC;IAC/B;IAEA,IAAI,CAACG,QAAQ,GAAG,IAAIb,eAAe,CAAC,IAAI,CAAC;IACzC,KAAK,IAAIluB,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGqnB,KAAK,CAACxxB,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;MAC9C,MAAMmuB,IAAI,GAAGS,KAAK,CAAC5uB,CAAC,CAAC;MACrB,IAAImuB,IAAI,CAACL,YAAY,GAAG,CAAC,EAAE;QACzB,IAAI,CAACiB,QAAQ,CAACT,SAAS,CAACH,IAAI,EAAEA,IAAI,CAACL,YAAY,GAAG,CAAC,CAAC;MACtD;IACF;EACF;EAEA1mB,MAAMA,CAACqnB,MAAM,EAAE;IACb,OAAO,IAAI,CAACM,QAAQ,CAACP,UAAU,CAACC,MAAM,CAAC;EACzC;EAEAK,iBAAiBA,CAACF,KAAK,EAAE;IAEvB,MAAMI,WAAW,GAAGJ,KAAK,CAACxxB,MAAM;IAChC,IAAI6xB,eAAe,GAAG,CAAC;IACvB,KAAK,IAAIjvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgvB,WAAW,EAAEhvB,CAAC,EAAE,EAAE;MACpCivB,eAAe,GAAG/uB,IAAI,CAACgE,GAAG,CAAC+qB,eAAe,EAAEL,KAAK,CAAC5uB,CAAC,CAAC,CAAC8tB,YAAY,CAAC;IACpE;IAEA,MAAMoB,SAAS,GAAG,IAAI5tB,WAAW,CAAC2tB,eAAe,GAAG,CAAC,CAAC;IACtD,KAAK,IAAIjvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgvB,WAAW,EAAEhvB,CAAC,EAAE,EAAE;MACpCkvB,SAAS,CAACN,KAAK,CAAC5uB,CAAC,CAAC,CAAC8tB,YAAY,CAAC,EAAE;IACpC;IACA,IAAIqB,aAAa,GAAG,CAAC;MACnBC,SAAS,GAAG,CAAC;MACbC,WAAW;MACXC,WAAW;MACXnB,IAAI;IACNe,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IAEhB,OAAOC,aAAa,IAAIF,eAAe,EAAE;MACvCG,SAAS,GAAIA,SAAS,GAAGF,SAAS,CAACC,aAAa,GAAG,CAAC,CAAC,IAAK,CAAC;MAC3DE,WAAW,GAAGD,SAAS;MACvBE,WAAW,GAAG,CAAC;MACf,OAAOA,WAAW,GAAGN,WAAW,EAAE;QAChCb,IAAI,GAAGS,KAAK,CAACU,WAAW,CAAC;QACzB,IAAInB,IAAI,CAACL,YAAY,KAAKqB,aAAa,EAAE;UACvChB,IAAI,CAACH,UAAU,GAAGqB,WAAW;UAC7BA,WAAW,EAAE;QACf;QACAC,WAAW,EAAE;MACf;MACAH,aAAa,EAAE;IACjB;EACF;AACF;AAEA,SAAS1B,mBAAmBA,CAAC9c,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;EAG7C,MAAM+T,KAAK,GAAG3S,IAAI,CAACd,KAAK,CAAC;EACzB,MAAM0f,WAAW,GAAG3d,UAAU,CAACjB,IAAI,EAAEd,KAAK,GAAG,CAAC,CAAC,GAAG,UAAU;EAC5D,MAAM2f,YAAY,GAAG5d,UAAU,CAACjB,IAAI,EAAEd,KAAK,GAAG,CAAC,CAAC,GAAG,UAAU;EAC7D,MAAM4e,MAAM,GAAG,IAAIzQ,MAAM,CAACrN,IAAI,EAAEd,KAAK,GAAG,CAAC,EAAEN,GAAG,CAAC;EAE/C,MAAMkgB,cAAc,GAAG,CAAEnM,KAAK,IAAI,CAAC,GAAI,CAAC,IAAI,CAAC;EAC7C,MAAMoM,aAAa,GAAG,CAAEpM,KAAK,IAAI,CAAC,GAAI,CAAC,IAAI,CAAC;EAC5C,MAAMsL,KAAK,GAAG,EAAE;EAChB,IAAId,YAAY;IACdC,WAAW;IACX4B,eAAe,GAAGJ,WAAW;EAG/B,GAAG;IACDzB,YAAY,GAAGW,MAAM,CAACrS,QAAQ,CAACqT,cAAc,CAAC;IAC9C1B,WAAW,GAAGU,MAAM,CAACrS,QAAQ,CAACsT,aAAa,CAAC;IAC5Cd,KAAK,CAACtuB,IAAI,CACR,IAAIotB,WAAW,CAAC,CAACiC,eAAe,EAAE7B,YAAY,EAAEC,WAAW,EAAE,CAAC,CAAC,CACjE,CAAC;IACD4B,eAAe,IAAI,CAAC,IAAI5B,WAAW;EACrC,CAAC,QAAQ4B,eAAe,GAAGH,YAAY;EAGvC1B,YAAY,GAAGW,MAAM,CAACrS,QAAQ,CAACqT,cAAc,CAAC;EAC9Cb,KAAK,CAACtuB,IAAI,CAAC,IAAIotB,WAAW,CAAC,CAAC6B,WAAW,GAAG,CAAC,EAAEzB,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;EAG5EA,YAAY,GAAGW,MAAM,CAACrS,QAAQ,CAACqT,cAAc,CAAC;EAC9Cb,KAAK,CAACtuB,IAAI,CAAC,IAAIotB,WAAW,CAAC,CAAC8B,YAAY,EAAE1B,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;EAEhE,IAAIxK,KAAK,GAAG,CAAC,EAAE;IAEbwK,YAAY,GAAGW,MAAM,CAACrS,QAAQ,CAACqT,cAAc,CAAC;IAC9Cb,KAAK,CAACtuB,IAAI,CAAC,IAAIotB,WAAW,CAAC,CAACI,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;EAChD;EAEA,OAAO,IAAIa,YAAY,CAACC,KAAK,EAAE,KAAK,CAAC;AACvC;AAEA,MAAMgB,mBAAmB,GAAG,CAAC,CAAC;AAE9B,SAASjO,gBAAgBA,CAACzQ,MAAM,EAAE;EAEhC,IAAIiK,KAAK,GAAGyU,mBAAmB,CAAC1e,MAAM,CAAC;EACvC,IAAIiK,KAAK,EAAE;IACT,OAAOA,KAAK;EACd;EACA,IAAIyT,KAAK;EACT,QAAQ1d,MAAM;IACZ,KAAK,CAAC;MACJ0d,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EACjB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CACpB;MACD;IACF,KAAK,CAAC;MACJA,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EACjB,CAAC,CAAC,EAAE,IAAI,CAAC,CACV;MACD;IACF,KAAK,CAAC;MACJA,KAAK,GAAG,CACN,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAC5B,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EACjB,CAAC,CAAC,EAAE,IAAI,CAAC,CACV;MACD;IACF,KAAK,CAAC;MACJA,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAClB;MACD;IACF,KAAK,CAAC;MACJA,KAAK,GAAG,CACN,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAC5B,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAClB;MACD;IACF,KAAK,CAAC;MACJA,KAAK,GAAG,CACN,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EACpB,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACjB,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACjB,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAClB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAC7B,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CACpB;MACD;IACF,KAAK,CAAC;MACJA,KAAK,GAAG,CACN,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACjB,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACjB,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAClB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAClB,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAC7B,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CACpB;MACD;IACF,KAAK,CAAC;MACJA,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EACjB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EACjB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAClB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,EAC5B,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EACpB,CAAC,CAAC,EAAE,GAAG,CAAC,CACT;MACD;IACF,KAAK,CAAC;MACJA,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAClB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EACjB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EACnB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,EAC5B,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EACpB,CAAC,CAAC,EAAE,GAAG,CAAC,CACT;MACD;IACF,KAAK,EAAE;MACLA,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EACnB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EACnB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAC3B,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EACnB,CAAC,CAAC,EAAE,GAAG,CAAC,CACT;MACD;IACF,KAAK,EAAE;MACLA,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CACnB;MACD;IACF,KAAK,EAAE;MACLA,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAClB;MACD;IACF,KAAK,EAAE;MACLA,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CACnB;MACD;IACF,KAAK,EAAE;MACLA,KAAK,GAAG,CACN,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CACf;MACD;IACF,KAAK,EAAE;MACLA,KAAK,GAAG,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACjB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAChB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EACf,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAC3B,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAClB;MACD;IACF;MACE,MAAM,IAAIrT,UAAU,CAAE,oBAAmBrK,MAAO,iBAAgB,CAAC;EACrE;EAEA,KAAK,IAAIlR,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGqnB,KAAK,CAACxxB,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;IAC9C4uB,KAAK,CAAC5uB,CAAC,CAAC,GAAG,IAAI0tB,WAAW,CAACkB,KAAK,CAAC5uB,CAAC,CAAC,CAAC;EACtC;EACAmb,KAAK,GAAG,IAAIwT,YAAY,CAACC,KAAK,EAAE,IAAI,CAAC;EACrCgB,mBAAmB,CAAC1e,MAAM,CAAC,GAAGiK,KAAK;EACnC,OAAOA,KAAK;AACd;AAEA,MAAM6C,MAAM,CAAC;EACXnf,WAAWA,CAAC8R,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;IAC5B,IAAI,CAACoB,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACd,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACN,GAAG,GAAGA,GAAG;IACd,IAAI,CAACwT,QAAQ,GAAGlT,KAAK;IACrB,IAAI,CAAC8P,KAAK,GAAG,CAAC,CAAC;IACf,IAAI,CAACkQ,WAAW,GAAG,CAAC;EACtB;EAEA5Y,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAAC0I,KAAK,GAAG,CAAC,EAAE;MAClB,IAAI,IAAI,CAACoD,QAAQ,IAAI,IAAI,CAACxT,GAAG,EAAE;QAC7B,MAAM,IAAIgM,UAAU,CAAC,+BAA+B,CAAC;MACvD;MACA,IAAI,CAACsU,WAAW,GAAG,IAAI,CAAClf,IAAI,CAAC,IAAI,CAACoS,QAAQ,EAAE,CAAC;MAC7C,IAAI,CAACpD,KAAK,GAAG,CAAC;IAChB;IACA,MAAMtD,GAAG,GAAI,IAAI,CAACwT,WAAW,IAAI,IAAI,CAAClQ,KAAK,GAAI,CAAC;IAChD,IAAI,CAACA,KAAK,EAAE;IACZ,OAAOtD,GAAG;EACZ;EAEAD,QAAQA,CAAC0T,OAAO,EAAE;IAChB,IAAIxU,MAAM,GAAG,CAAC;MACZtb,CAAC;IACH,KAAKA,CAAC,GAAG8vB,OAAO,GAAG,CAAC,EAAE9vB,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;MACjCsb,MAAM,IAAI,IAAI,CAACrE,OAAO,CAAC,CAAC,IAAIjX,CAAC;IAC/B;IACA,OAAOsb,MAAM;EACf;EAEAxC,SAASA,CAAA,EAAG;IACV,IAAI,CAAC6G,KAAK,GAAG,CAAC,CAAC;EACjB;EAEAjH,IAAIA,CAAA,EAAG;IACL,IAAI,IAAI,CAACqK,QAAQ,IAAI,IAAI,CAACxT,GAAG,EAAE;MAC7B,OAAO,CAAC,CAAC;IACX;IACA,OAAO,IAAI,CAACoB,IAAI,CAAC,IAAI,CAACoS,QAAQ,EAAE,CAAC;EACnC;AACF;AAEA,SAASgN,qBAAqBA,CAACC,KAAK,EAAE9H,UAAU,EAAE6E,YAAY,EAAE;EAG9D,IAAIkD,YAAY,GAAG,CAAC;EACpB,KAAK,IAAIjwB,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAG2gB,UAAU,CAAC9qB,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;IACnD,MAAMmb,KAAK,GAAG4R,YAAY,CAAC7E,UAAU,CAACloB,CAAC,CAAC,CAAC;IACzC,IAAImb,KAAK,EAAE;MACT,IAAI6U,KAAK,KAAKC,YAAY,EAAE;QAC1B,OAAO9U,KAAK;MACd;MACA8U,YAAY,EAAE;IAChB;EACF;EACA,MAAM,IAAI1U,UAAU,CAAC,iCAAiC,CAAC;AACzD;AAEA,SAAS4R,0BAA0BA,CACjCrD,UAAU,EACV5B,UAAU,EACV6E,YAAY,EACZmD,eAAe,EACfzB,MAAM,EACN;EAIA,MAAM0B,KAAK,GAAG,EAAE;EAChB,KAAK,IAAInwB,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,EAAE,EAAEA,CAAC,EAAE,EAAE;IAC5B,MAAMyc,UAAU,GAAGgS,MAAM,CAACrS,QAAQ,CAAC,CAAC,CAAC;IACrC+T,KAAK,CAAC7vB,IAAI,CAAC,IAAIotB,WAAW,CAAC,CAAC1tB,CAAC,EAAEyc,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;EACpD;EAEA,MAAM2T,aAAa,GAAG,IAAIzB,YAAY,CAACwB,KAAK,EAAE,KAAK,CAAC;EAIpDA,KAAK,CAAC/yB,MAAM,GAAG,CAAC;EAChB,KAAK,IAAI4C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkwB,eAAe,GAAI;IACrC,MAAMzT,UAAU,GAAG2T,aAAa,CAAChpB,MAAM,CAACqnB,MAAM,CAAC;IAC/C,IAAIhS,UAAU,IAAI,EAAE,EAAE;MACpB,IAAI4T,cAAc,EAAEC,eAAe,EAAEjT,CAAC;MACtC,QAAQZ,UAAU;QAChB,KAAK,EAAE;UACL,IAAIzc,CAAC,KAAK,CAAC,EAAE;YACX,MAAM,IAAIub,UAAU,CAAC,sCAAsC,CAAC;UAC9D;UACA+U,eAAe,GAAG7B,MAAM,CAACrS,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;UACxCiU,cAAc,GAAGF,KAAK,CAACnwB,CAAC,GAAG,CAAC,CAAC,CAAC8tB,YAAY;UAC1C;QACF,KAAK,EAAE;UACLwC,eAAe,GAAG7B,MAAM,CAACrS,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;UACxCiU,cAAc,GAAG,CAAC;UAClB;QACF,KAAK,EAAE;UACLC,eAAe,GAAG7B,MAAM,CAACrS,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE;UACzCiU,cAAc,GAAG,CAAC;UAClB;QACF;UACE,MAAM,IAAI9U,UAAU,CAAC,wCAAwC,CAAC;MAClE;MACA,KAAK8B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiT,eAAe,EAAEjT,CAAC,EAAE,EAAE;QACpC8S,KAAK,CAAC7vB,IAAI,CAAC,IAAIotB,WAAW,CAAC,CAAC1tB,CAAC,EAAEqwB,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtDrwB,CAAC,EAAE;MACL;IACF,CAAC,MAAM;MACLmwB,KAAK,CAAC7vB,IAAI,CAAC,IAAIotB,WAAW,CAAC,CAAC1tB,CAAC,EAAEyc,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;MAClDzc,CAAC,EAAE;IACL;EACF;EACAyuB,MAAM,CAAC3V,SAAS,CAAC,CAAC;EAClB,MAAM6L,aAAa,GAAG,IAAIgK,YAAY,CAACwB,KAAK,EAAE,KAAK,CAAC;EAIpD,IAAII,WAAW,GAAG,CAAC;IACjB/L,WAAW;IACXiB,WAAW;IACXrB,WAAW;EAEb,QAAQ0F,UAAU,CAACG,SAAS;IAC1B,KAAK,CAAC;IACN,KAAK,CAAC;MACJzF,WAAW,GAAG7C,gBAAgB,CAACmI,UAAU,CAACG,SAAS,GAAG,CAAC,CAAC;MACxD;IACF,KAAK,CAAC;MACJzF,WAAW,GAAGuL,qBAAqB,CACjCQ,WAAW,EACXrI,UAAU,EACV6E,YACF,CAAC;MACDwD,WAAW,EAAE;MACb;IACF;MACE,MAAM,IAAIhV,UAAU,CAAC,6BAA6B,CAAC;EACvD;EAEA,QAAQuO,UAAU,CAACI,SAAS;IAC1B,KAAK,CAAC;IACN,KAAK,CAAC;IACN,KAAK,CAAC;MACJzE,WAAW,GAAG9D,gBAAgB,CAACmI,UAAU,CAACI,SAAS,GAAG,CAAC,CAAC;MACxD;IACF,KAAK,CAAC;MACJzE,WAAW,GAAGsK,qBAAqB,CACjCQ,WAAW,EACXrI,UAAU,EACV6E,YACF,CAAC;MACDwD,WAAW,EAAE;MACb;IACF;MACE,MAAM,IAAIhV,UAAU,CAAC,6BAA6B,CAAC;EACvD;EAEA,QAAQuO,UAAU,CAACK,SAAS;IAC1B,KAAK,CAAC;IACN,KAAK,CAAC;IACN,KAAK,CAAC;MACJ/F,WAAW,GAAGzC,gBAAgB,CAACmI,UAAU,CAACK,SAAS,GAAG,EAAE,CAAC;MACzD;IACF,KAAK,CAAC;MACJ/F,WAAW,GAAG2L,qBAAqB,CACjCQ,WAAW,EACXrI,UAAU,EACV6E,YACF,CAAC;MACDwD,WAAW,EAAE;MACb;IACF;MACE,MAAM,IAAIhV,UAAU,CAAC,6BAA6B,CAAC;EACvD;EAEA,IAAIuO,UAAU,CAAChJ,UAAU,EAAE;IAEzB,MAAM,IAAIvF,UAAU,CAAC,0CAA0C,CAAC;EAClE;EAEA,OAAO;IACLoJ,aAAa;IACbH,WAAW;IACXiB,WAAW;IACXrB;EACF,CAAC;AACH;AAEA,SAAS0I,gCAAgCA,CACvCzD,UAAU,EACVnB,UAAU,EACV6E,YAAY,EACZ;EAGA,IAAIwD,WAAW,GAAG,CAAC;IACjB1O,gBAAgB;IAChBK,eAAe;EACjB,QAAQmH,UAAU,CAACE,iBAAiB;IAClC,KAAK,CAAC;IACN,KAAK,CAAC;MACJ1H,gBAAgB,GAAGF,gBAAgB,CAAC0H,UAAU,CAACE,iBAAiB,GAAG,CAAC,CAAC;MACrE;IACF,KAAK,CAAC;MACJ1H,gBAAgB,GAAGkO,qBAAqB,CACtCQ,WAAW,EACXrI,UAAU,EACV6E,YACF,CAAC;MACDwD,WAAW,EAAE;MACb;IACF;MACE,MAAM,IAAIhV,UAAU,CAAC,6BAA6B,CAAC;EACvD;EAEA,QAAQ8N,UAAU,CAACG,iBAAiB;IAClC,KAAK,CAAC;IACN,KAAK,CAAC;MACJtH,eAAe,GAAGP,gBAAgB,CAAC0H,UAAU,CAACG,iBAAiB,GAAG,CAAC,CAAC;MACpE;IACF,KAAK,CAAC;MACJtH,eAAe,GAAG6N,qBAAqB,CACrCQ,WAAW,EACXrI,UAAU,EACV6E,YACF,CAAC;MACDwD,WAAW,EAAE;MACb;IACF;MACE,MAAM,IAAIhV,UAAU,CAAC,6BAA6B,CAAC;EACvD;EAEA,IAAImH,eAAe,EAAE8N,uBAAuB;EAC5C,IAAInH,UAAU,CAACI,kBAAkB,EAAE;IACjC/G,eAAe,GAAGqN,qBAAqB,CACrCQ,WAAW,EACXrI,UAAU,EACV6E,YACF,CAAC;IACDwD,WAAW,EAAE;EACf,CAAC,MAAM;IACL7N,eAAe,GAAGf,gBAAgB,CAAC,CAAC,CAAC;EACvC;EAEA,IAAI0H,UAAU,CAACK,4BAA4B,EAAE;IAC3C8G,uBAAuB,GAAGT,qBAAqB,CAC7CQ,WAAW,EACXrI,UAAU,EACV6E,YACF,CAAC;EACH,CAAC,MAAM;IACLyD,uBAAuB,GAAG7O,gBAAgB,CAAC,CAAC,CAAC;EAC/C;EAEA,OAAO;IACLE,gBAAgB;IAChBK,eAAe;IACfQ,eAAe;IACf8N;EACF,CAAC;AACH;AAEA,SAAS5N,sBAAsBA,CAAC6L,MAAM,EAAEvY,KAAK,EAAEC,MAAM,EAAE;EACrD,MAAMgH,MAAM,GAAG,EAAE;EACjB,KAAK,IAAI9W,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8P,MAAM,EAAE9P,CAAC,EAAE,EAAE;IAC/B,MAAMsT,GAAG,GAAG,IAAIjZ,UAAU,CAACwV,KAAK,CAAC;IACjCiH,MAAM,CAAC7c,IAAI,CAACqZ,GAAG,CAAC;IAChB,KAAK,IAAIvT,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8P,KAAK,EAAE9P,CAAC,EAAE,EAAE;MAC9BuT,GAAG,CAACvT,CAAC,CAAC,GAAGqoB,MAAM,CAACxX,OAAO,CAAC,CAAC;IAC3B;IACAwX,MAAM,CAAC3V,SAAS,CAAC,CAAC;EACpB;EACA,OAAOqE,MAAM;AACf;AAEA,SAASc,eAAeA,CAACF,KAAK,EAAE7H,KAAK,EAAEC,MAAM,EAAEsa,UAAU,EAAE;EAGzD,MAAMC,MAAM,GAAG;IACbz7B,CAAC,EAAE,CAAC,CAAC;IACLgkB,OAAO,EAAE/C,KAAK;IACdiD,IAAI,EAAEhD,MAAM;IACZoD,QAAQ,EAAE,IAAI;IACdF,UAAU,EAAEoX;EACd,CAAC;EACD,MAAMzpB,OAAO,GAAG,IAAIwR,eAAe,CAACuF,KAAK,EAAE2S,MAAM,CAAC;EAClD,MAAMvT,MAAM,GAAG,EAAE;EACjB,IAAI0S,WAAW;IACblX,GAAG,GAAG,KAAK;EAEb,KAAK,IAAItS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8P,MAAM,EAAE9P,CAAC,EAAE,EAAE;IAC/B,MAAMsT,GAAG,GAAG,IAAIjZ,UAAU,CAACwV,KAAK,CAAC;IACjCiH,MAAM,CAAC7c,IAAI,CAACqZ,GAAG,CAAC;IAChB,IAAIgG,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAIvZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8P,KAAK,EAAE9P,CAAC,EAAE,EAAE;MAC9B,IAAIuZ,KAAK,GAAG,CAAC,EAAE;QACbkQ,WAAW,GAAG7oB,OAAO,CAACoT,YAAY,CAAC,CAAC;QACpC,IAAIyV,WAAW,KAAK,CAAC,CAAC,EAAE;UAEtBA,WAAW,GAAG,CAAC;UACflX,GAAG,GAAG,IAAI;QACZ;QACAgH,KAAK,GAAG,CAAC;MACX;MACAhG,GAAG,CAACvT,CAAC,CAAC,GAAIypB,WAAW,IAAIlQ,KAAK,GAAI,CAAC;MACnCA,KAAK,EAAE;IACT;EACF;EAEA,IAAI8Q,UAAU,IAAI,CAAC9X,GAAG,EAAE;IAEtB,MAAMgY,eAAe,GAAG,CAAC;IACzB,KAAK,IAAI3wB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2wB,eAAe,EAAE3wB,CAAC,EAAE,EAAE;MACxC,IAAIgH,OAAO,CAACoT,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;QACjC;MACF;IACF;EACF;EAEA,OAAO+C,MAAM;AACf;AAEA,MAAMyT,UAAU,CAAC;EACfC,WAAWA,CAACrF,MAAM,EAAE;IAClB,OAAOD,gBAAgB,CAACC,MAAM,CAAC;EACjC;EAEAsF,KAAKA,CAACngB,IAAI,EAAE;IAIV,MAAM;MAAEmb,OAAO;MAAE5V,KAAK;MAAEC;IAAO,CAAC,GAAGuV,UAAU,CAAC/a,IAAI,CAAC;IACnD,IAAI,CAACuF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,OAAO2V,OAAO;EAChB;AACF;;;;;;;;;AClhFmD;AAEnD,SAASiF,aAAaA,CAACL,MAAM,EAAE;EAC7B,QAAQA,MAAM,CAACM,IAAI;IACjB,KAAKzgC,SAAS,CAACC,cAAc;MAC3B,OAAOygC,0BAA0B,CAACP,MAAM,CAAC;IAC3C,KAAKngC,SAAS,CAACE,SAAS;MACtB,OAAOygC,gBAAgB,CAACR,MAAM,CAAC;EACnC;EAEA,OAAO,IAAI;AACb;AAEA,SAASO,0BAA0BA,CAAA/kB,IAAA,EAQhC;EAAA,IARiC;IAClCilB,GAAG;IACHC,MAAM,GAAG,CAAC;IACVC,IAAI;IACJnb,KAAK;IACLC,MAAM;IACNmb,aAAa,GAAG,UAAU;IAC1BC,aAAa,GAAG;EAClB,CAAC,GAAArlB,IAAA;EACC,MAAMoN,KAAK,GAAG5X,WAAW,CAACP,cAAc,GAAG,UAAU,GAAG,UAAU;EAClE,MAAM,CAACqwB,WAAW,EAAEC,UAAU,CAAC,GAAGF,aAAa,GAC3C,CAACD,aAAa,EAAEhY,KAAK,CAAC,GACtB,CAACA,KAAK,EAAEgY,aAAa,CAAC;EAC1B,MAAMI,aAAa,GAAGxb,KAAK,IAAI,CAAC;EAChC,MAAMyb,cAAc,GAAGzb,KAAK,GAAG,CAAC;EAChC,MAAM0b,SAAS,GAAGT,GAAG,CAAC/zB,MAAM;EAC5Bi0B,IAAI,GAAG,IAAI/vB,WAAW,CAAC+vB,IAAI,CAAC9vB,MAAM,CAAC;EACnC,IAAIswB,OAAO,GAAG,CAAC;EAEf,KAAK,IAAI7xB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmW,MAAM,EAAEnW,CAAC,EAAE,EAAE;IAC/B,KAAK,MAAMkE,GAAG,GAAGktB,MAAM,GAAGM,aAAa,EAAEN,MAAM,GAAGltB,GAAG,EAAEktB,MAAM,EAAE,EAAE;MAC/D,MAAMU,IAAI,GAAGV,MAAM,GAAGQ,SAAS,GAAGT,GAAG,CAACC,MAAM,CAAC,GAAG,GAAG;MACnDC,IAAI,CAACQ,OAAO,EAAE,CAAC,GAAGC,IAAI,GAAG,UAAU,GAAGL,UAAU,GAAGD,WAAW;MAC9DH,IAAI,CAACQ,OAAO,EAAE,CAAC,GAAGC,IAAI,GAAG,SAAS,GAAGL,UAAU,GAAGD,WAAW;MAC7DH,IAAI,CAACQ,OAAO,EAAE,CAAC,GAAGC,IAAI,GAAG,QAAQ,GAAGL,UAAU,GAAGD,WAAW;MAC5DH,IAAI,CAACQ,OAAO,EAAE,CAAC,GAAGC,IAAI,GAAG,OAAO,GAAGL,UAAU,GAAGD,WAAW;MAC3DH,IAAI,CAACQ,OAAO,EAAE,CAAC,GAAGC,IAAI,GAAG,MAAM,GAAGL,UAAU,GAAGD,WAAW;MAC1DH,IAAI,CAACQ,OAAO,EAAE,CAAC,GAAGC,IAAI,GAAG,KAAK,GAAGL,UAAU,GAAGD,WAAW;MACzDH,IAAI,CAACQ,OAAO,EAAE,CAAC,GAAGC,IAAI,GAAG,IAAI,GAAGL,UAAU,GAAGD,WAAW;MACxDH,IAAI,CAACQ,OAAO,EAAE,CAAC,GAAGC,IAAI,GAAG,GAAG,GAAGL,UAAU,GAAGD,WAAW;IACzD;IACA,IAAIG,cAAc,KAAK,CAAC,EAAE;MACxB;IACF;IACA,MAAMG,IAAI,GAAGV,MAAM,GAAGQ,SAAS,GAAGT,GAAG,CAACC,MAAM,EAAE,CAAC,GAAG,GAAG;IACrD,KAAK,IAAI/T,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsU,cAAc,EAAEtU,CAAC,EAAE,EAAE;MACvCgU,IAAI,CAACQ,OAAO,EAAE,CAAC,GAAGC,IAAI,GAAI,CAAC,IAAK,CAAC,GAAGzU,CAAG,GAAGoU,UAAU,GAAGD,WAAW;IACpE;EACF;EACA,OAAO;IAAEJ,MAAM;IAAES;EAAQ,CAAC;AAC5B;AAEA,SAASX,gBAAgBA,CAAAa,KAAA,EAOtB;EAAA,IAPuB;IACxBZ,GAAG;IACHC,MAAM,GAAG,CAAC;IACVC,IAAI;IACJQ,OAAO,GAAG,CAAC;IACX3b,KAAK;IACLC;EACF,CAAC,GAAA4b,KAAA;EACC,IAAI/xB,CAAC,GAAG,CAAC;EACT,MAAMgyB,KAAK,GAAGb,GAAG,CAAC/zB,MAAM,IAAI,CAAC;EAC7B,MAAM60B,KAAK,GAAG,IAAI3wB,WAAW,CAAC6vB,GAAG,CAAC5vB,MAAM,EAAE6vB,MAAM,EAAEY,KAAK,CAAC;EAExD,IAAItwB,WAAW,CAACP,cAAc,EAAE;IAG9B,OAAOnB,CAAC,GAAGgyB,KAAK,GAAG,CAAC,EAAEhyB,CAAC,IAAI,CAAC,EAAE6xB,OAAO,IAAI,CAAC,EAAE;MAC1C,MAAMK,EAAE,GAAGD,KAAK,CAACjyB,CAAC,CAAC;MACnB,MAAMolB,EAAE,GAAG6M,KAAK,CAACjyB,CAAC,GAAG,CAAC,CAAC;MACvB,MAAMmyB,EAAE,GAAGF,KAAK,CAACjyB,CAAC,GAAG,CAAC,CAAC;MAEvBqxB,IAAI,CAACQ,OAAO,CAAC,GAAGK,EAAE,GAAG,UAAU;MAC/Bb,IAAI,CAACQ,OAAO,GAAG,CAAC,CAAC,GAAIK,EAAE,KAAK,EAAE,GAAK9M,EAAE,IAAI,CAAE,GAAG,UAAU;MACxDiM,IAAI,CAACQ,OAAO,GAAG,CAAC,CAAC,GAAIzM,EAAE,KAAK,EAAE,GAAK+M,EAAE,IAAI,EAAG,GAAG,UAAU;MACzDd,IAAI,CAACQ,OAAO,GAAG,CAAC,CAAC,GAAIM,EAAE,KAAK,CAAC,GAAI,UAAU;IAC7C;IAEA,KAAK,IAAI9U,CAAC,GAAGrd,CAAC,GAAG,CAAC,EAAEoyB,EAAE,GAAGjB,GAAG,CAAC/zB,MAAM,EAAEigB,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,IAAI,CAAC,EAAE;MACnDgU,IAAI,CAACQ,OAAO,EAAE,CAAC,GACbV,GAAG,CAAC9T,CAAC,CAAC,GAAI8T,GAAG,CAAC9T,CAAC,GAAG,CAAC,CAAC,IAAI,CAAE,GAAI8T,GAAG,CAAC9T,CAAC,GAAG,CAAC,CAAC,IAAI,EAAG,GAAG,UAAU;IAChE;EACF,CAAC,MAAM;IACL,OAAOrd,CAAC,GAAGgyB,KAAK,GAAG,CAAC,EAAEhyB,CAAC,IAAI,CAAC,EAAE6xB,OAAO,IAAI,CAAC,EAAE;MAC1C,MAAMK,EAAE,GAAGD,KAAK,CAACjyB,CAAC,CAAC;MACnB,MAAMolB,EAAE,GAAG6M,KAAK,CAACjyB,CAAC,GAAG,CAAC,CAAC;MACvB,MAAMmyB,EAAE,GAAGF,KAAK,CAACjyB,CAAC,GAAG,CAAC,CAAC;MAEvBqxB,IAAI,CAACQ,OAAO,CAAC,GAAGK,EAAE,GAAG,IAAI;MACzBb,IAAI,CAACQ,OAAO,GAAG,CAAC,CAAC,GAAIK,EAAE,IAAI,EAAE,GAAK9M,EAAE,KAAK,CAAE,GAAG,IAAI;MAClDiM,IAAI,CAACQ,OAAO,GAAG,CAAC,CAAC,GAAIzM,EAAE,IAAI,EAAE,GAAK+M,EAAE,KAAK,EAAG,GAAG,IAAI;MACnDd,IAAI,CAACQ,OAAO,GAAG,CAAC,CAAC,GAAIM,EAAE,IAAI,CAAC,GAAI,IAAI;IACtC;IAEA,KAAK,IAAI9U,CAAC,GAAGrd,CAAC,GAAG,CAAC,EAAEoyB,EAAE,GAAGjB,GAAG,CAAC/zB,MAAM,EAAEigB,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,IAAI,CAAC,EAAE;MACnDgU,IAAI,CAACQ,OAAO,EAAE,CAAC,GACZV,GAAG,CAAC9T,CAAC,CAAC,IAAI,EAAE,GAAK8T,GAAG,CAAC9T,CAAC,GAAG,CAAC,CAAC,IAAI,EAAG,GAAI8T,GAAG,CAAC9T,CAAC,GAAG,CAAC,CAAC,IAAI,CAAE,GAAG,IAAI;IAClE;EACF;EAEA,OAAO;IAAE+T,MAAM;IAAES;EAAQ,CAAC;AAC5B;AAEA,SAASQ,UAAUA,CAAClB,GAAG,EAAEE,IAAI,EAAE;EAC7B,IAAI3vB,gBAAW,CAACP,cAAc,EAAE;IAC9B,KAAK,IAAInB,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAG4pB,GAAG,CAAC/zB,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;MAC5CqxB,IAAI,CAACrxB,CAAC,CAAC,GAAImxB,GAAG,CAACnxB,CAAC,CAAC,GAAG,OAAO,GAAI,UAAU;IAC3C;EACF,CAAC,MAAM;IACL,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAG4pB,GAAG,CAAC/zB,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;MAC5CqxB,IAAI,CAACrxB,CAAC,CAAC,GAAImxB,GAAG,CAACnxB,CAAC,CAAC,GAAG,SAAS,GAAI,UAAU;IAC7C;EACF;AACF;;;;;;;;;;ACpHgE;AACV;AACT;AAE7C,MAAMsyB,SAAS,SAAS7zB,aAAa,CAAC;EACpCI,WAAWA,CAACvC,GAAG,EAAE;IACf,KAAK,CAAE,eAAcA,GAAI,EAAC,EAAE,WAAW,CAAC;EAC1C;AACF;AAEA,MAAMi2B,cAAc,SAAS9zB,aAAa,CAAC;EACzCI,WAAWA,CAACF,OAAO,EAAE6zB,SAAS,EAAE;IAC9B,KAAK,CAAC7zB,OAAO,EAAE,gBAAgB,CAAC;IAChC,IAAI,CAAC6zB,SAAS,GAAGA,SAAS;EAC5B;AACF;AAEA,MAAMC,cAAc,SAASh0B,aAAa,CAAC;EACzCI,WAAWA,CAACvC,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,gBAAgB,CAAC;EAC9B;AACF;AAgBA,MAAMo2B,SAAS,GAAG,IAAIhyB,UAAU,CAAC,CAC9B,CAAC,EACD,CAAC,EAAG,CAAC,EACN,EAAE,EAAG,CAAC,EAAG,CAAC,EACT,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACd,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,CAAC,EACzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC9B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACd,EAAE,EAAE,EAAE,EAAE,EAAE,EACV,EAAE,EAAE,EAAE,EACN,EAAE,CACH,CAAC;AAEF,MAAMiyB,OAAO,GAAG,IAAI;AACpB,MAAMC,OAAO,GAAG,GAAG;AACnB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,QAAQ,GAAG,IAAI;AACrB,MAAMC,UAAU,GAAG,IAAI;AAEvB,SAASC,iBAAiBA,CAACC,WAAW,EAAE1nB,MAAM,EAAE;EAC9C,IAAIoT,CAAC,GAAG,CAAC;IACP9e,CAAC;IACDqd,CAAC;IACDjgB,MAAM,GAAG,EAAE;EACb,OAAOA,MAAM,GAAG,CAAC,IAAI,CAACg2B,WAAW,CAACh2B,MAAM,GAAG,CAAC,CAAC,EAAE;IAC7CA,MAAM,EAAE;EACV;EACA,MAAM4B,IAAI,GAAG,CAAC;IAAEovB,QAAQ,EAAE,EAAE;IAAE4B,KAAK,EAAE;EAAE,CAAC,CAAC;EACzC,IAAI1sB,CAAC,GAAGtE,IAAI,CAAC,CAAC,CAAC;IACbgtB,CAAC;EACH,KAAKhsB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG5C,MAAM,EAAE4C,CAAC,EAAE,EAAE;IAC3B,KAAKqd,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+V,WAAW,CAACpzB,CAAC,CAAC,EAAEqd,CAAC,EAAE,EAAE;MACnC/Z,CAAC,GAAGtE,IAAI,CAACq0B,GAAG,CAAC,CAAC;MACd/vB,CAAC,CAAC8qB,QAAQ,CAAC9qB,CAAC,CAAC0sB,KAAK,CAAC,GAAGtkB,MAAM,CAACoT,CAAC,CAAC;MAC/B,OAAOxb,CAAC,CAAC0sB,KAAK,GAAG,CAAC,EAAE;QAClB1sB,CAAC,GAAGtE,IAAI,CAACq0B,GAAG,CAAC,CAAC;MAChB;MACA/vB,CAAC,CAAC0sB,KAAK,EAAE;MACThxB,IAAI,CAACsB,IAAI,CAACgD,CAAC,CAAC;MACZ,OAAOtE,IAAI,CAAC5B,MAAM,IAAI4C,CAAC,EAAE;QACvBhB,IAAI,CAACsB,IAAI,CAAE0rB,CAAC,GAAG;UAAEoC,QAAQ,EAAE,EAAE;UAAE4B,KAAK,EAAE;QAAE,CAAE,CAAC;QAC3C1sB,CAAC,CAAC8qB,QAAQ,CAAC9qB,CAAC,CAAC0sB,KAAK,CAAC,GAAGhE,CAAC,CAACoC,QAAQ;QAChC9qB,CAAC,GAAG0oB,CAAC;MACP;MACAlN,CAAC,EAAE;IACL;IACA,IAAI9e,CAAC,GAAG,CAAC,GAAG5C,MAAM,EAAE;MAElB4B,IAAI,CAACsB,IAAI,CAAE0rB,CAAC,GAAG;QAAEoC,QAAQ,EAAE,EAAE;QAAE4B,KAAK,EAAE;MAAE,CAAE,CAAC;MAC3C1sB,CAAC,CAAC8qB,QAAQ,CAAC9qB,CAAC,CAAC0sB,KAAK,CAAC,GAAGhE,CAAC,CAACoC,QAAQ;MAChC9qB,CAAC,GAAG0oB,CAAC;IACP;EACF;EACA,OAAOhtB,IAAI,CAAC,CAAC,CAAC,CAACovB,QAAQ;AACzB;AAEA,SAASkF,oBAAoBA,CAACnhB,SAAS,EAAEwH,GAAG,EAAE4Z,GAAG,EAAE;EACjD,OAAO,EAAE,IAAI,CAACphB,SAAS,CAACqhB,aAAa,GAAG,CAAC,IAAI7Z,GAAG,GAAG4Z,GAAG,CAAC;AACzD;AAEA,SAASE,UAAUA,CACjB9iB,IAAI,EACJe,MAAM,EACNgiB,KAAK,EACLC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,WAAW,EACXC,cAAc,EACdC,UAAU,EAEV;EAAA,IADAC,cAAc,GAAA92B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAEtB,MAAM+2B,WAAW,GAAGR,KAAK,CAACQ,WAAW;EACrC,MAAMC,WAAW,GAAGT,KAAK,CAACS,WAAW;EAErC,MAAMC,WAAW,GAAG1iB,MAAM;EAC1B,IAAI2iB,QAAQ,GAAG,CAAC;IACdC,SAAS,GAAG,CAAC;EAEf,SAASrd,OAAOA,CAAA,EAAG;IACjB,IAAIqd,SAAS,GAAG,CAAC,EAAE;MACjBA,SAAS,EAAE;MACX,OAAQD,QAAQ,IAAIC,SAAS,GAAI,CAAC;IACpC;IACAD,QAAQ,GAAG1jB,IAAI,CAACe,MAAM,EAAE,CAAC;IACzB,IAAI2iB,QAAQ,KAAK,IAAI,EAAE;MACrB,MAAME,QAAQ,GAAG5jB,IAAI,CAACe,MAAM,EAAE,CAAC;MAC/B,IAAI6iB,QAAQ,EAAE;QACZ,IAAIA,QAAQ,KAAiB,IAAI,IAAIN,cAAc,EAAE;UACnDviB,MAAM,IAAI,CAAC;UAEX,MAAM8gB,SAAS,GAAG7gB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;UAC1CA,MAAM,IAAI,CAAC;UACX,IAAI8gB,SAAS,GAAG,CAAC,IAAIA,SAAS,KAAKkB,KAAK,CAAClB,SAAS,EAAE;YAClD,MAAM,IAAID,cAAc,CACtB,mDAAmD,EACnDC,SACF,CAAC;UACH;QACF,CAAC,MAAM,IAAI+B,QAAQ,KAAiB,IAAI,EAAE;UACxC,IAAIN,cAAc,EAAE;YAElB,MAAMO,cAAc,GAAGC,QAAQ,IAAIf,KAAK,CAACgB,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAMjE,IACEF,cAAc,GAAG,CAAC,IAClBt0B,IAAI,CAACmV,KAAK,CAACqe,KAAK,CAAClB,SAAS,GAAGgC,cAAc,CAAC,IAAI,CAAC,EACjD;cACA,MAAM,IAAIjC,cAAc,CACtB,qDAAqD,GACnD,oDAAoD,EACtDiC,cACF,CAAC;YACH;UACF;UACA,MAAM,IAAI/B,cAAc,CACtB,mDACF,CAAC;QACH;QACA,MAAM,IAAIH,SAAS,CAChB,qBAAoB,CAAE+B,QAAQ,IAAI,CAAC,GAAIE,QAAQ,EAAE9xB,QAAQ,CAAC,EAAE,CAAE,EACjE,CAAC;MACH;IAEF;IACA6xB,SAAS,GAAG,CAAC;IACb,OAAOD,QAAQ,KAAK,CAAC;EACvB;EAEA,SAASM,aAAaA,CAACC,IAAI,EAAE;IAC3B,IAAIrG,IAAI,GAAGqG,IAAI;IACf,OAAO,IAAI,EAAE;MACXrG,IAAI,GAAGA,IAAI,CAACtX,OAAO,CAAC,CAAC,CAAC;MACtB,QAAQ,OAAOsX,IAAI;QACjB,KAAK,QAAQ;UACX,OAAOA,IAAI;QACb,KAAK,QAAQ;UACX;MACJ;MACA,MAAM,IAAI+D,SAAS,CAAC,0BAA0B,CAAC;IACjD;EACF;EAEA,SAASuC,OAAOA,CAACz3B,MAAM,EAAE;IACvB,IAAIoF,CAAC,GAAG,CAAC;IACT,OAAOpF,MAAM,GAAG,CAAC,EAAE;MACjBoF,CAAC,GAAIA,CAAC,IAAI,CAAC,GAAIyU,OAAO,CAAC,CAAC;MACxB7Z,MAAM,EAAE;IACV;IACA,OAAOoF,CAAC;EACV;EAEA,SAASsyB,gBAAgBA,CAAC13B,MAAM,EAAE;IAChC,IAAIA,MAAM,KAAK,CAAC,EAAE;MAChB,OAAO6Z,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC;IACA,MAAMzU,CAAC,GAAGqyB,OAAO,CAACz3B,MAAM,CAAC;IACzB,IAAIoF,CAAC,IAAI,CAAC,IAAKpF,MAAM,GAAG,CAAE,EAAE;MAC1B,OAAOoF,CAAC;IACV;IACA,OAAOA,CAAC,IAAI,CAAC,CAAC,IAAIpF,MAAM,CAAC,GAAG,CAAC;EAC/B;EAEA,SAAS23B,cAAcA,CAAC5iB,SAAS,EAAE6iB,WAAW,EAAE;IAC9C,MAAMhvB,CAAC,GAAG2uB,aAAa,CAACxiB,SAAS,CAAC8iB,cAAc,CAAC;IACjD,MAAMC,IAAI,GAAGlvB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG8uB,gBAAgB,CAAC9uB,CAAC,CAAC;IAC9CmM,SAAS,CAACgjB,SAAS,CAACH,WAAW,CAAC,GAAG7iB,SAAS,CAACijB,IAAI,IAAIF,IAAI;IACzD,IAAIpW,CAAC,GAAG,CAAC;IACT,OAAOA,CAAC,GAAG,EAAE,EAAE;MACb,MAAMuW,EAAE,GAAGV,aAAa,CAACxiB,SAAS,CAACmjB,cAAc,CAAC;MAClD,MAAMC,CAAC,GAAGF,EAAE,GAAG,EAAE;QACfxyB,CAAC,GAAGwyB,EAAE,IAAI,CAAC;MACb,IAAIE,CAAC,KAAK,CAAC,EAAE;QACX,IAAI1yB,CAAC,GAAG,EAAE,EAAE;UACV;QACF;QACAic,CAAC,IAAI,EAAE;QACP;MACF;MACAA,CAAC,IAAIjc,CAAC;MACN,MAAM2yB,CAAC,GAAG9C,SAAS,CAAC5T,CAAC,CAAC;MACtB3M,SAAS,CAACgjB,SAAS,CAACH,WAAW,GAAGQ,CAAC,CAAC,GAAGV,gBAAgB,CAACS,CAAC,CAAC;MAC1DzW,CAAC,EAAE;IACL;EACF;EAEA,SAAS2W,aAAaA,CAACtjB,SAAS,EAAE6iB,WAAW,EAAE;IAC7C,MAAMhvB,CAAC,GAAG2uB,aAAa,CAACxiB,SAAS,CAAC8iB,cAAc,CAAC;IACjD,MAAMC,IAAI,GAAGlvB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG8uB,gBAAgB,CAAC9uB,CAAC,CAAC,IAAIguB,UAAU;IAC5D7hB,SAAS,CAACgjB,SAAS,CAACH,WAAW,CAAC,GAAG7iB,SAAS,CAACijB,IAAI,IAAIF,IAAI;EAC3D;EAEA,SAASQ,kBAAkBA,CAACvjB,SAAS,EAAE6iB,WAAW,EAAE;IAClD7iB,SAAS,CAACgjB,SAAS,CAACH,WAAW,CAAC,IAAI/d,OAAO,CAAC,CAAC,IAAI+c,UAAU;EAC7D;EAEA,IAAI2B,MAAM,GAAG,CAAC;EACd,SAASC,aAAaA,CAACzjB,SAAS,EAAE6iB,WAAW,EAAE;IAC7C,IAAIW,MAAM,GAAG,CAAC,EAAE;MACdA,MAAM,EAAE;MACR;IACF;IACA,IAAI7W,CAAC,GAAG+U,aAAa;IACrB,MAAMgC,CAAC,GAAG/B,WAAW;IACrB,OAAOhV,CAAC,IAAI+W,CAAC,EAAE;MACb,MAAMR,EAAE,GAAGV,aAAa,CAACxiB,SAAS,CAACmjB,cAAc,CAAC;MAClD,MAAMC,CAAC,GAAGF,EAAE,GAAG,EAAE;QACfxyB,CAAC,GAAGwyB,EAAE,IAAI,CAAC;MACb,IAAIE,CAAC,KAAK,CAAC,EAAE;QACX,IAAI1yB,CAAC,GAAG,EAAE,EAAE;UACV8yB,MAAM,GAAGd,OAAO,CAAChyB,CAAC,CAAC,IAAI,CAAC,IAAIA,CAAC,CAAC,GAAG,CAAC;UAClC;QACF;QACAic,CAAC,IAAI,EAAE;QACP;MACF;MACAA,CAAC,IAAIjc,CAAC;MACN,MAAM2yB,CAAC,GAAG9C,SAAS,CAAC5T,CAAC,CAAC;MACtB3M,SAAS,CAACgjB,SAAS,CAACH,WAAW,GAAGQ,CAAC,CAAC,GAClCV,gBAAgB,CAACS,CAAC,CAAC,IAAI,CAAC,IAAIvB,UAAU,CAAC;MACzClV,CAAC,EAAE;IACL;EACF;EAEA,IAAIgX,iBAAiB,GAAG,CAAC;IACvBC,qBAAqB;EACvB,SAASC,kBAAkBA,CAAC7jB,SAAS,EAAE6iB,WAAW,EAAE;IAClD,IAAIlW,CAAC,GAAG+U,aAAa;IACrB,MAAMgC,CAAC,GAAG/B,WAAW;IACrB,IAAIjxB,CAAC,GAAG,CAAC;IACT,IAAI0yB,CAAC;IACL,IAAIF,EAAE;IACN,OAAOvW,CAAC,IAAI+W,CAAC,EAAE;MACb,MAAMI,OAAO,GAAGjB,WAAW,GAAGtC,SAAS,CAAC5T,CAAC,CAAC;MAC1C,MAAMxC,IAAI,GAAGnK,SAAS,CAACgjB,SAAS,CAACc,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;MACtD,QAAQH,iBAAiB;QACvB,KAAK,CAAC;UACJT,EAAE,GAAGV,aAAa,CAACxiB,SAAS,CAACmjB,cAAc,CAAC;UAC5CC,CAAC,GAAGF,EAAE,GAAG,EAAE;UACXxyB,CAAC,GAAGwyB,EAAE,IAAI,CAAC;UACX,IAAIE,CAAC,KAAK,CAAC,EAAE;YACX,IAAI1yB,CAAC,GAAG,EAAE,EAAE;cACV8yB,MAAM,GAAGd,OAAO,CAAChyB,CAAC,CAAC,IAAI,CAAC,IAAIA,CAAC,CAAC;cAC9BizB,iBAAiB,GAAG,CAAC;YACvB,CAAC,MAAM;cACLjzB,CAAC,GAAG,EAAE;cACNizB,iBAAiB,GAAG,CAAC;YACvB;UACF,CAAC,MAAM;YACL,IAAIP,CAAC,KAAK,CAAC,EAAE;cACX,MAAM,IAAIjD,SAAS,CAAC,sBAAsB,CAAC;YAC7C;YACAyD,qBAAqB,GAAGjB,gBAAgB,CAACS,CAAC,CAAC;YAC3CO,iBAAiB,GAAGjzB,CAAC,GAAG,CAAC,GAAG,CAAC;UAC/B;UACA;QACF,KAAK,CAAC;QACN,KAAK,CAAC;UACJ,IAAIsP,SAAS,CAACgjB,SAAS,CAACc,OAAO,CAAC,EAAE;YAChC9jB,SAAS,CAACgjB,SAAS,CAACc,OAAO,CAAC,IAAI3Z,IAAI,IAAIrF,OAAO,CAAC,CAAC,IAAI+c,UAAU,CAAC;UAClE,CAAC,MAAM;YACLnxB,CAAC,EAAE;YACH,IAAIA,CAAC,KAAK,CAAC,EAAE;cACXizB,iBAAiB,GAAGA,iBAAiB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YACrD;UACF;UACA;QACF,KAAK,CAAC;UACJ,IAAI3jB,SAAS,CAACgjB,SAAS,CAACc,OAAO,CAAC,EAAE;YAChC9jB,SAAS,CAACgjB,SAAS,CAACc,OAAO,CAAC,IAAI3Z,IAAI,IAAIrF,OAAO,CAAC,CAAC,IAAI+c,UAAU,CAAC;UAClE,CAAC,MAAM;YACL7hB,SAAS,CAACgjB,SAAS,CAACc,OAAO,CAAC,GAAGF,qBAAqB,IAAI/B,UAAU;YAClE8B,iBAAiB,GAAG,CAAC;UACvB;UACA;QACF,KAAK,CAAC;UACJ,IAAI3jB,SAAS,CAACgjB,SAAS,CAACc,OAAO,CAAC,EAAE;YAChC9jB,SAAS,CAACgjB,SAAS,CAACc,OAAO,CAAC,IAAI3Z,IAAI,IAAIrF,OAAO,CAAC,CAAC,IAAI+c,UAAU,CAAC;UAClE;UACA;MACJ;MACAlV,CAAC,EAAE;IACL;IACA,IAAIgX,iBAAiB,KAAK,CAAC,EAAE;MAC3BH,MAAM,EAAE;MACR,IAAIA,MAAM,KAAK,CAAC,EAAE;QAChBG,iBAAiB,GAAG,CAAC;MACvB;IACF;EACF;EAEA,IAAIrB,QAAQ,GAAG,CAAC;EAChB,SAASyB,SAASA,CAAC/jB,SAAS,EAAE/K,MAAM,EAAE+uB,GAAG,EAAExc,GAAG,EAAE4Z,GAAG,EAAE;IACnD,MAAM6C,MAAM,GAAID,GAAG,GAAGjC,WAAW,GAAI,CAAC;IACtC,MAAMmC,MAAM,GAAGF,GAAG,GAAGjC,WAAW;IAChCO,QAAQ,GAAG2B,MAAM,GAAGjkB,SAAS,CAACnE,CAAC,GAAG2L,GAAG;IACrC,MAAM2c,QAAQ,GAAGD,MAAM,GAAGlkB,SAAS,CAACokB,CAAC,GAAGhD,GAAG;IAC3C,MAAMyB,WAAW,GAAG1B,oBAAoB,CAACnhB,SAAS,EAAEsiB,QAAQ,EAAE6B,QAAQ,CAAC;IACvElvB,MAAM,CAAC+K,SAAS,EAAE6iB,WAAW,CAAC;EAChC;EAEA,SAASwB,WAAWA,CAACrkB,SAAS,EAAE/K,MAAM,EAAE+uB,GAAG,EAAE;IAC3C1B,QAAQ,GAAI0B,GAAG,GAAGhkB,SAAS,CAACqhB,aAAa,GAAI,CAAC;IAC9C,MAAM8C,QAAQ,GAAGH,GAAG,GAAGhkB,SAAS,CAACqhB,aAAa;IAC9C,MAAMwB,WAAW,GAAG1B,oBAAoB,CAACnhB,SAAS,EAAEsiB,QAAQ,EAAE6B,QAAQ,CAAC;IACvElvB,MAAM,CAAC+K,SAAS,EAAE6iB,WAAW,CAAC;EAChC;EAEA,MAAMyB,gBAAgB,GAAG9C,UAAU,CAACv2B,MAAM;EAC1C,IAAI+U,SAAS,EAAEnS,CAAC,EAAEqd,CAAC,EAAEyB,CAAC,EAAEtc,CAAC;EACzB,IAAIk0B,QAAQ;EACZ,IAAIvC,WAAW,EAAE;IACf,IAAIN,aAAa,KAAK,CAAC,EAAE;MACvB6C,QAAQ,GAAG3C,cAAc,KAAK,CAAC,GAAG0B,aAAa,GAAGC,kBAAkB;IACtE,CAAC,MAAM;MACLgB,QAAQ,GAAG3C,cAAc,KAAK,CAAC,GAAG6B,aAAa,GAAGI,kBAAkB;IACtE;EACF,CAAC,MAAM;IACLU,QAAQ,GAAG3B,cAAc;EAC3B;EAEA,IAAIoB,GAAG,GAAG,CAAC;IACTQ,UAAU;EACZ,MAAMC,WAAW,GACfH,gBAAgB,KAAK,CAAC,GAClB9C,UAAU,CAAC,CAAC,CAAC,CAACH,aAAa,GAAGG,UAAU,CAAC,CAAC,CAAC,CAACkD,eAAe,GAC3D3C,WAAW,GAAGR,KAAK,CAACoD,aAAa;EAEvC,IAAIP,CAAC,EAAEvoB,CAAC;EACR,OAAOmoB,GAAG,IAAIS,WAAW,EAAE;IAEzB,MAAMG,SAAS,GAAGnD,aAAa,GAC3B1zB,IAAI,CAACC,GAAG,CAACy2B,WAAW,GAAGT,GAAG,EAAEvC,aAAa,CAAC,GAC1CgD,WAAW;IAMf,IAAIG,SAAS,GAAG,CAAC,EAAE;MACjB,KAAK/2B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGy2B,gBAAgB,EAAEz2B,CAAC,EAAE,EAAE;QACrC2zB,UAAU,CAAC3zB,CAAC,CAAC,CAACo1B,IAAI,GAAG,CAAC;MACxB;MACAO,MAAM,GAAG,CAAC;MAEV,IAAIc,gBAAgB,KAAK,CAAC,EAAE;QAC1BtkB,SAAS,GAAGwhB,UAAU,CAAC,CAAC,CAAC;QACzB,KAAKnxB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGu0B,SAAS,EAAEv0B,CAAC,EAAE,EAAE;UAC9Bg0B,WAAW,CAACrkB,SAAS,EAAEukB,QAAQ,EAAEP,GAAG,CAAC;UACrCA,GAAG,EAAE;QACP;MACF,CAAC,MAAM;QACL,KAAK3zB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGu0B,SAAS,EAAEv0B,CAAC,EAAE,EAAE;UAC9B,KAAKxC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGy2B,gBAAgB,EAAEz2B,CAAC,EAAE,EAAE;YACrCmS,SAAS,GAAGwhB,UAAU,CAAC3zB,CAAC,CAAC;YACzBu2B,CAAC,GAAGpkB,SAAS,CAACokB,CAAC;YACfvoB,CAAC,GAAGmE,SAAS,CAACnE,CAAC;YACf,KAAKqP,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGrP,CAAC,EAAEqP,CAAC,EAAE,EAAE;cACtB,KAAKyB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyX,CAAC,EAAEzX,CAAC,EAAE,EAAE;gBACtBoX,SAAS,CAAC/jB,SAAS,EAAEukB,QAAQ,EAAEP,GAAG,EAAE9Y,CAAC,EAAEyB,CAAC,CAAC;cAC3C;YACF;UACF;UACAqX,GAAG,EAAE;QACP;MACF;IACF;IAGA7B,SAAS,GAAG,CAAC;IACbqC,UAAU,GAAGK,kBAAkB,CAACrmB,IAAI,EAAEe,MAAM,CAAC;IAC7C,IAAI,CAACilB,UAAU,EAAE;MACf;IACF;IACA,IAAIA,UAAU,CAACM,OAAO,EAAE;MAGtB,MAAMC,UAAU,GAAGH,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,WAAW;MAC7Dt6B,SAAI,CACD,gBAAey6B,UAAW,iCAAgCP,UAAU,CAACM,OAAQ,EAChF,CAAC;MACDvlB,MAAM,GAAGilB,UAAU,CAACjlB,MAAM;IAC5B;IACA,IAAIilB,UAAU,CAACQ,MAAM,IAAI,MAAM,IAAIR,UAAU,CAACQ,MAAM,IAAI,MAAM,EAAE;MAE9DzlB,MAAM,IAAI,CAAC;IACb,CAAC,MAAM;MACL;IACF;EACF;EAEA,OAAOA,MAAM,GAAG0iB,WAAW;AAC7B;AAOA,SAASgD,kBAAkBA,CAACjlB,SAAS,EAAEklB,iBAAiB,EAAE/zB,CAAC,EAAE;EAC3D,MAAMg0B,EAAE,GAAGnlB,SAAS,CAAColB,iBAAiB;IACpCpC,SAAS,GAAGhjB,SAAS,CAACgjB,SAAS;EACjC,IAAIqC,EAAE,EAAEppB,EAAE,EAAEC,EAAE,EAAEopB,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE;EAClC,IAAIC,EAAE,EAAEj0B,EAAE,EAAEC,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAE8zB,EAAE,EAAEC,EAAE,EAAEC,EAAE;EAClC,IAAIjyB,CAAC;EAEL,IAAI,CAACsxB,EAAE,EAAE;IACP,MAAM,IAAIhF,SAAS,CAAC,sCAAsC,CAAC;EAC7D;EAGA,KAAK,IAAI3Y,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG,EAAE,EAAEA,GAAG,IAAI,CAAC,EAAE;IAEpCme,EAAE,GAAG3C,SAAS,CAACkC,iBAAiB,GAAG1d,GAAG,CAAC;IACvC9V,EAAE,GAAGsxB,SAAS,CAACkC,iBAAiB,GAAG1d,GAAG,GAAG,CAAC,CAAC;IAC3C7V,EAAE,GAAGqxB,SAAS,CAACkC,iBAAiB,GAAG1d,GAAG,GAAG,CAAC,CAAC;IAC3C3V,EAAE,GAAGmxB,SAAS,CAACkC,iBAAiB,GAAG1d,GAAG,GAAG,CAAC,CAAC;IAC3C1V,EAAE,GAAGkxB,SAAS,CAACkC,iBAAiB,GAAG1d,GAAG,GAAG,CAAC,CAAC;IAC3Coe,EAAE,GAAG5C,SAAS,CAACkC,iBAAiB,GAAG1d,GAAG,GAAG,CAAC,CAAC;IAC3Cqe,EAAE,GAAG7C,SAAS,CAACkC,iBAAiB,GAAG1d,GAAG,GAAG,CAAC,CAAC;IAC3Cse,EAAE,GAAG9C,SAAS,CAACkC,iBAAiB,GAAG1d,GAAG,GAAG,CAAC,CAAC;IAG3Cme,EAAE,IAAIR,EAAE,CAAC3d,GAAG,CAAC;IAGb,IAAI,CAAC9V,EAAE,GAAGC,EAAE,GAAGE,EAAE,GAAGC,EAAE,GAAG8zB,EAAE,GAAGC,EAAE,GAAGC,EAAE,MAAM,CAAC,EAAE;MAC5CjyB,CAAC,GAAIitB,QAAQ,GAAG6E,EAAE,GAAG,GAAG,IAAK,EAAE;MAC/Bx0B,CAAC,CAACqW,GAAG,CAAC,GAAG3T,CAAC;MACV1C,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG3T,CAAC;MACd1C,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG3T,CAAC;MACd1C,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG3T,CAAC;MACd1C,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG3T,CAAC;MACd1C,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG3T,CAAC;MACd1C,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG3T,CAAC;MACd1C,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG3T,CAAC;MACd;IACF;IAEAnC,EAAE,IAAIyzB,EAAE,CAAC3d,GAAG,GAAG,CAAC,CAAC;IACjB7V,EAAE,IAAIwzB,EAAE,CAAC3d,GAAG,GAAG,CAAC,CAAC;IACjB3V,EAAE,IAAIszB,EAAE,CAAC3d,GAAG,GAAG,CAAC,CAAC;IACjB1V,EAAE,IAAIqzB,EAAE,CAAC3d,GAAG,GAAG,CAAC,CAAC;IACjBoe,EAAE,IAAIT,EAAE,CAAC3d,GAAG,GAAG,CAAC,CAAC;IACjBqe,EAAE,IAAIV,EAAE,CAAC3d,GAAG,GAAG,CAAC,CAAC;IACjBse,EAAE,IAAIX,EAAE,CAAC3d,GAAG,GAAG,CAAC,CAAC;IAGjB6d,EAAE,GAAIvE,QAAQ,GAAG6E,EAAE,GAAG,GAAG,IAAK,CAAC;IAC/B1pB,EAAE,GAAI6kB,QAAQ,GAAGhvB,EAAE,GAAG,GAAG,IAAK,CAAC;IAC/BoK,EAAE,GAAGvK,EAAE;IACP2zB,EAAE,GAAGO,EAAE;IACPN,EAAE,GAAIxE,UAAU,IAAIrvB,EAAE,GAAGo0B,EAAE,CAAC,GAAG,GAAG,IAAK,CAAC;IACxCJ,EAAE,GAAI3E,UAAU,IAAIrvB,EAAE,GAAGo0B,EAAE,CAAC,GAAG,GAAG,IAAK,CAAC;IACxCN,EAAE,GAAG3zB,EAAE,IAAI,CAAC;IACZ4zB,EAAE,GAAGG,EAAE,IAAI,CAAC;IAGZP,EAAE,GAAIA,EAAE,GAAGppB,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGopB,EAAE,GAAGppB,EAAE;IACZpI,CAAC,GAAIqI,EAAE,GAAG2kB,OAAO,GAAGyE,EAAE,GAAG1E,OAAO,GAAG,GAAG,IAAK,CAAC;IAC5C1kB,EAAE,GAAIA,EAAE,GAAG0kB,OAAO,GAAG0E,EAAE,GAAGzE,OAAO,GAAG,GAAG,IAAK,CAAC;IAC7CyE,EAAE,GAAGzxB,CAAC;IACN0xB,EAAE,GAAIA,EAAE,GAAGE,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGF,EAAE,GAAGE,EAAE;IACZC,EAAE,GAAIA,EAAE,GAAGF,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGE,EAAE,GAAGF,EAAE;IAGZH,EAAE,GAAIA,EAAE,GAAGC,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGD,EAAE,GAAGC,EAAE;IACZrpB,EAAE,GAAIA,EAAE,GAAGC,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGD,EAAE,GAAGC,EAAE;IACZrI,CAAC,GAAI0xB,EAAE,GAAG5E,OAAO,GAAG+E,EAAE,GAAGhF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9C6E,EAAE,GAAIA,EAAE,GAAG7E,OAAO,GAAGgF,EAAE,GAAG/E,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/C+E,EAAE,GAAG7xB,CAAC;IACNA,CAAC,GAAI2xB,EAAE,GAAG/E,OAAO,GAAGgF,EAAE,GAAGjF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9CgF,EAAE,GAAIA,EAAE,GAAGhF,OAAO,GAAGiF,EAAE,GAAGhF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/CgF,EAAE,GAAG5xB,CAAC;IAGN1C,CAAC,CAACqW,GAAG,CAAC,GAAG6d,EAAE,GAAGK,EAAE;IAChBv0B,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG6d,EAAE,GAAGK,EAAE;IACpBv0B,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAGvL,EAAE,GAAGwpB,EAAE;IACpBt0B,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAGvL,EAAE,GAAGwpB,EAAE;IACpBt0B,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAGtL,EAAE,GAAGspB,EAAE;IACpBr0B,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAGtL,EAAE,GAAGspB,EAAE;IACpBr0B,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG8d,EAAE,GAAGC,EAAE;IACpBp0B,CAAC,CAACqW,GAAG,GAAG,CAAC,CAAC,GAAG8d,EAAE,GAAGC,EAAE;EACtB;EAGA,KAAK,IAAInE,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG,CAAC,EAAE,EAAEA,GAAG,EAAE;IAChCuE,EAAE,GAAGx0B,CAAC,CAACiwB,GAAG,CAAC;IACX1vB,EAAE,GAAGP,CAAC,CAACiwB,GAAG,GAAG,CAAC,CAAC;IACfzvB,EAAE,GAAGR,CAAC,CAACiwB,GAAG,GAAG,EAAE,CAAC;IAChBvvB,EAAE,GAAGV,CAAC,CAACiwB,GAAG,GAAG,EAAE,CAAC;IAChBtvB,EAAE,GAAGX,CAAC,CAACiwB,GAAG,GAAG,EAAE,CAAC;IAChBwE,EAAE,GAAGz0B,CAAC,CAACiwB,GAAG,GAAG,EAAE,CAAC;IAChByE,EAAE,GAAG10B,CAAC,CAACiwB,GAAG,GAAG,EAAE,CAAC;IAChB0E,EAAE,GAAG30B,CAAC,CAACiwB,GAAG,GAAG,EAAE,CAAC;IAGhB,IAAI,CAAC1vB,EAAE,GAAGC,EAAE,GAAGE,EAAE,GAAGC,EAAE,GAAG8zB,EAAE,GAAGC,EAAE,GAAGC,EAAE,MAAM,CAAC,EAAE;MAC5CjyB,CAAC,GAAIitB,QAAQ,GAAG6E,EAAE,GAAG,IAAI,IAAK,EAAE;MAEhC,IAAI9xB,CAAC,GAAG,CAAC,IAAI,EAAE;QACbA,CAAC,GAAG,CAAC;MACP,CAAC,MAAM,IAAIA,CAAC,IAAI,IAAI,EAAE;QACpBA,CAAC,GAAG,GAAG;MACT,CAAC,MAAM;QACLA,CAAC,GAAIA,CAAC,GAAG,IAAI,IAAK,CAAC;MACrB;MACAmvB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,CAAC,GAAGvtB,CAAC;MACtCmvB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,CAAC,CAAC,GAAGvtB,CAAC;MAC1CmvB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGvtB,CAAC;MAC3CmvB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGvtB,CAAC;MAC3CmvB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGvtB,CAAC;MAC3CmvB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGvtB,CAAC;MAC3CmvB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGvtB,CAAC;MAC3CmvB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGvtB,CAAC;MAC3C;IACF;IAGAwxB,EAAE,GAAIvE,QAAQ,GAAG6E,EAAE,GAAG,IAAI,IAAK,EAAE;IACjC1pB,EAAE,GAAI6kB,QAAQ,GAAGhvB,EAAE,GAAG,IAAI,IAAK,EAAE;IACjCoK,EAAE,GAAGvK,EAAE;IACP2zB,EAAE,GAAGO,EAAE;IACPN,EAAE,GAAIxE,UAAU,IAAIrvB,EAAE,GAAGo0B,EAAE,CAAC,GAAG,IAAI,IAAK,EAAE;IAC1CJ,EAAE,GAAI3E,UAAU,IAAIrvB,EAAE,GAAGo0B,EAAE,CAAC,GAAG,IAAI,IAAK,EAAE;IAC1CN,EAAE,GAAG3zB,EAAE;IACP4zB,EAAE,GAAGG,EAAE;IAKPP,EAAE,GAAG,CAAEA,EAAE,GAAGppB,EAAE,GAAG,CAAC,IAAK,CAAC,IAAI,IAAI;IAChCA,EAAE,GAAGopB,EAAE,GAAGppB,EAAE;IACZpI,CAAC,GAAIqI,EAAE,GAAG2kB,OAAO,GAAGyE,EAAE,GAAG1E,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9C1kB,EAAE,GAAIA,EAAE,GAAG0kB,OAAO,GAAG0E,EAAE,GAAGzE,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/CyE,EAAE,GAAGzxB,CAAC;IACN0xB,EAAE,GAAIA,EAAE,GAAGE,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGF,EAAE,GAAGE,EAAE;IACZC,EAAE,GAAIA,EAAE,GAAGF,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGE,EAAE,GAAGF,EAAE;IAGZH,EAAE,GAAIA,EAAE,GAAGC,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGD,EAAE,GAAGC,EAAE;IACZrpB,EAAE,GAAIA,EAAE,GAAGC,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGD,EAAE,GAAGC,EAAE;IACZrI,CAAC,GAAI0xB,EAAE,GAAG5E,OAAO,GAAG+E,EAAE,GAAGhF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9C6E,EAAE,GAAIA,EAAE,GAAG7E,OAAO,GAAGgF,EAAE,GAAG/E,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/C+E,EAAE,GAAG7xB,CAAC;IACNA,CAAC,GAAI2xB,EAAE,GAAG/E,OAAO,GAAGgF,EAAE,GAAGjF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9CgF,EAAE,GAAIA,EAAE,GAAGhF,OAAO,GAAGiF,EAAE,GAAGhF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/CgF,EAAE,GAAG5xB,CAAC;IAGN8xB,EAAE,GAAGN,EAAE,GAAGK,EAAE;IACZI,EAAE,GAAGT,EAAE,GAAGK,EAAE;IACZh0B,EAAE,GAAGuK,EAAE,GAAGwpB,EAAE;IACZI,EAAE,GAAG5pB,EAAE,GAAGwpB,EAAE;IACZ9zB,EAAE,GAAGuK,EAAE,GAAGspB,EAAE;IACZI,EAAE,GAAG1pB,EAAE,GAAGspB,EAAE;IACZ3zB,EAAE,GAAGyzB,EAAE,GAAGC,EAAE;IACZzzB,EAAE,GAAGwzB,EAAE,GAAGC,EAAE;IAGZ,IAAII,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIj0B,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIC,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIE,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIC,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAI8zB,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIC,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIC,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IAGA9C,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,CAAC,GAAGuE,EAAE;IACvC3C,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,CAAC,CAAC,GAAG1vB,EAAE;IAC3CsxB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGzvB,EAAE;IAC5CqxB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGvvB,EAAE;IAC5CmxB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGtvB,EAAE;IAC5CkxB,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGwE,EAAE;IAC5C5C,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAGyE,EAAE;IAC5C7C,SAAS,CAACkC,iBAAiB,GAAG9D,GAAG,GAAG,EAAE,CAAC,GAAG0E,EAAE;EAC9C;AACF;AAEA,SAASC,kBAAkBA,CAACxE,KAAK,EAAEvhB,SAAS,EAAE;EAC5C,MAAMqhB,aAAa,GAAGrhB,SAAS,CAACqhB,aAAa;EAC7C,MAAMqD,eAAe,GAAG1kB,SAAS,CAAC0kB,eAAe;EACjD,MAAMsB,iBAAiB,GAAG,IAAIC,UAAU,CAAC,EAAE,CAAC;EAE5C,KAAK,IAAI3D,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGoC,eAAe,EAAEpC,QAAQ,EAAE,EAAE;IAC7D,KAAK,IAAI6B,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAG9C,aAAa,EAAE8C,QAAQ,EAAE,EAAE;MAC3D,MAAM5kB,MAAM,GAAG4hB,oBAAoB,CAACnhB,SAAS,EAAEsiB,QAAQ,EAAE6B,QAAQ,CAAC;MAClEc,kBAAkB,CAACjlB,SAAS,EAAET,MAAM,EAAEymB,iBAAiB,CAAC;IAC1D;EACF;EACA,OAAOhmB,SAAS,CAACgjB,SAAS;AAC5B;AAEA,SAAS6B,kBAAkBA,CAACrmB,IAAI,EAAE0nB,UAAU,EAAyB;EAAA,IAAvBC,QAAQ,GAAAn7B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGk7B,UAAU;EACjE,MAAME,MAAM,GAAG5nB,IAAI,CAACvT,MAAM,GAAG,CAAC;EAC9B,IAAIo7B,MAAM,GAAGF,QAAQ,GAAGD,UAAU,GAAGC,QAAQ,GAAGD,UAAU;EAE1D,IAAIA,UAAU,IAAIE,MAAM,EAAE;IACxB,OAAO,IAAI;EACb;EACA,MAAME,aAAa,GAAG9mB,UAAU,CAAChB,IAAI,EAAE0nB,UAAU,CAAC;EAClD,IAAII,aAAa,IAAI,MAAM,IAAIA,aAAa,IAAI,MAAM,EAAE;IACtD,OAAO;MACLxB,OAAO,EAAE,IAAI;MACbE,MAAM,EAAEsB,aAAa;MACrB/mB,MAAM,EAAE2mB;IACV,CAAC;EACH;EACA,IAAIK,SAAS,GAAG/mB,UAAU,CAAChB,IAAI,EAAE6nB,MAAM,CAAC;EACxC,OAAO,EAAEE,SAAS,IAAI,MAAM,IAAIA,SAAS,IAAI,MAAM,CAAC,EAAE;IACpD,IAAI,EAAEF,MAAM,IAAID,MAAM,EAAE;MACtB,OAAO,IAAI;IACb;IACAG,SAAS,GAAG/mB,UAAU,CAAChB,IAAI,EAAE6nB,MAAM,CAAC;EACtC;EACA,OAAO;IACLvB,OAAO,EAAEwB,aAAa,CAACh2B,QAAQ,CAAC,EAAE,CAAC;IACnC00B,MAAM,EAAEuB,SAAS;IACjBhnB,MAAM,EAAE8mB;EACV,CAAC;AACH;AAEA,MAAMG,SAAS,CAAC;EACd95B,WAAWA,CAAA,EAAuD;IAAA,IAAtD;MAAE+5B,eAAe,GAAG,IAAI;MAAEC,cAAc,GAAG,CAAC;IAAE,CAAC,GAAA17B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAC9D,IAAI,CAAC27B,gBAAgB,GAAGF,eAAe;IACvC,IAAI,CAACG,eAAe,GAAGF,cAAc;EACvC;EAEA/H,KAAKA,CAACngB,IAAI,EAAgC;IAAA,IAA9B;MAAEqoB,YAAY,GAAG;IAAK,CAAC,GAAA77B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IACtC,SAAS87B,aAAaA,CAAA,EAAG;MACvB,MAAM77B,MAAM,GAAGuU,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;MACvCA,MAAM,IAAI,CAAC;MACX,IAAIwnB,SAAS,GAAGxnB,MAAM,GAAGtU,MAAM,GAAG,CAAC;MAEnC,MAAMu5B,UAAU,GAAGK,kBAAkB,CAACrmB,IAAI,EAAEuoB,SAAS,EAAExnB,MAAM,CAAC;MAC9D,IAAIilB,UAAU,EAAEM,OAAO,EAAE;QACvBx6B,SAAI,CACF,uDAAuD,GACrDk6B,UAAU,CAACM,OACf,CAAC;QACDiC,SAAS,GAAGvC,UAAU,CAACjlB,MAAM;MAC/B;MAEA,MAAMynB,KAAK,GAAGxoB,IAAI,CAACtQ,QAAQ,CAACqR,MAAM,EAAEwnB,SAAS,CAAC;MAC9CxnB,MAAM,IAAIynB,KAAK,CAAC/7B,MAAM;MACtB,OAAO+7B,KAAK;IACd;IAEA,SAASC,iBAAiBA,CAAC1F,KAAK,EAAE;MAChC,MAAMQ,WAAW,GAAGh0B,IAAI,CAACsR,IAAI,CAACkiB,KAAK,CAAC2F,cAAc,GAAG,CAAC,GAAG3F,KAAK,CAAC4F,IAAI,CAAC;MACpE,MAAMxC,aAAa,GAAG52B,IAAI,CAACsR,IAAI,CAACkiB,KAAK,CAAClB,SAAS,GAAG,CAAC,GAAGkB,KAAK,CAAC6F,IAAI,CAAC;MACjE,KAAK,MAAMpnB,SAAS,IAAIuhB,KAAK,CAACC,UAAU,EAAE;QACxC,MAAMH,aAAa,GAAGtzB,IAAI,CAACsR,IAAI,CAC5BtR,IAAI,CAACsR,IAAI,CAACkiB,KAAK,CAAC2F,cAAc,GAAG,CAAC,CAAC,GAAGlnB,SAAS,CAACokB,CAAC,GAAI7C,KAAK,CAAC4F,IAC9D,CAAC;QACD,MAAMzC,eAAe,GAAG32B,IAAI,CAACsR,IAAI,CAC9BtR,IAAI,CAACsR,IAAI,CAACkiB,KAAK,CAAClB,SAAS,GAAG,CAAC,CAAC,GAAGrgB,SAAS,CAACnE,CAAC,GAAI0lB,KAAK,CAAC6F,IACzD,CAAC;QACD,MAAMC,mBAAmB,GAAGtF,WAAW,GAAG/hB,SAAS,CAACokB,CAAC;QACrD,MAAMkD,qBAAqB,GAAG3C,aAAa,GAAG3kB,SAAS,CAACnE,CAAC;QAEzD,MAAM0rB,gBAAgB,GACpB,EAAE,GAAGD,qBAAqB,IAAID,mBAAmB,GAAG,CAAC,CAAC;QACxDrnB,SAAS,CAACgjB,SAAS,GAAG,IAAIiD,UAAU,CAACsB,gBAAgB,CAAC;QACtDvnB,SAAS,CAACqhB,aAAa,GAAGA,aAAa;QACvCrhB,SAAS,CAAC0kB,eAAe,GAAGA,eAAe;MAC7C;MACAnD,KAAK,CAACQ,WAAW,GAAGA,WAAW;MAC/BR,KAAK,CAACoD,aAAa,GAAGA,aAAa;IACrC;IAEA,IAAIplB,MAAM,GAAG,CAAC;IACd,IAAIioB,IAAI,GAAG,IAAI;IACf,IAAIC,KAAK,GAAG,IAAI;IAChB,IAAIlG,KAAK,EAAEE,aAAa;IACxB,IAAIiG,aAAa,GAAG,CAAC;IACrB,MAAMC,kBAAkB,GAAG,EAAE;IAC7B,MAAMC,eAAe,GAAG,EAAE;MACxBC,eAAe,GAAG,EAAE;IAEtB,IAAIrD,UAAU,GAAGhlB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;IACzCA,MAAM,IAAI,CAAC;IACX,IAAIilB,UAAU,KAAkC,MAAM,EAAE;MACtD,MAAM,IAAIrE,SAAS,CAAC,eAAe,CAAC;IACtC;IACAqE,UAAU,GAAGhlB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;IACrCA,MAAM,IAAI,CAAC;IAEXuoB,UAAU,EAAE,OAAOtD,UAAU,KAAgC,MAAM,EAAE;MACnE,IAAI32B,CAAC,EAAEqd,CAAC,EAAE6c,CAAC;MACX,QAAQvD,UAAU;QAChB,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;UACT,MAAMwD,OAAO,GAAGlB,aAAa,CAAC,CAAC;UAE/B,IAAItC,UAAU,KAAK,MAAM,EAAE;YAEzB,IACEwD,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAChB;cACAR,IAAI,GAAG;gBACLS,OAAO,EAAE;kBAAEC,KAAK,EAAEF,OAAO,CAAC,CAAC,CAAC;kBAAEG,KAAK,EAAEH,OAAO,CAAC,CAAC;gBAAE,CAAC;gBACjDI,YAAY,EAAEJ,OAAO,CAAC,CAAC,CAAC;gBACxBK,QAAQ,EAAGL,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAC;gBACxCM,QAAQ,EAAGN,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,EAAE,CAAC;gBAC1CO,UAAU,EAAEP,OAAO,CAAC,EAAE,CAAC;gBACvBQ,WAAW,EAAER,OAAO,CAAC,EAAE,CAAC;gBACxBS,SAAS,EAAET,OAAO,CAAC95B,QAAQ,CACzB,EAAE,EACF,EAAE,GAAG,CAAC,GAAG85B,OAAO,CAAC,EAAE,CAAC,GAAGA,OAAO,CAAC,EAAE,CACnC;cACF,CAAC;YACH;UACF;UAEA,IAAIxD,UAAU,KAAK,MAAM,EAAE;YAEzB,IACEwD,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EACnB;cACAP,KAAK,GAAG;gBACNQ,OAAO,EAAGD,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAC;gBACvCU,MAAM,EAAGV,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAC;gBACtCW,MAAM,EAAGX,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,EAAE,CAAC;gBACvCY,aAAa,EAAEZ,OAAO,CAAC,EAAE;cAC3B,CAAC;YACH;UACF;UACA;QAEF,KAAK,MAAM;UACT,MAAMa,wBAAwB,GAAGrpB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;UACzDA,MAAM,IAAI,CAAC;UACX,MAAMupB,qBAAqB,GAAGD,wBAAwB,GAAGtpB,MAAM,GAAG,CAAC;UACnE,IAAI8jB,CAAC;UACL,OAAO9jB,MAAM,GAAGupB,qBAAqB,EAAE;YACrC,MAAMC,qBAAqB,GAAGvqB,IAAI,CAACe,MAAM,EAAE,CAAC;YAC5C,MAAMypB,SAAS,GAAG,IAAIhc,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI+b,qBAAqB,IAAI,CAAC,KAAK,CAAC,EAAE;cAEpC,KAAK7d,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;gBACvBmY,CAAC,GAAG9C,SAAS,CAACrV,CAAC,CAAC;gBAChB8d,SAAS,CAAC3F,CAAC,CAAC,GAAG7kB,IAAI,CAACe,MAAM,EAAE,CAAC;cAC/B;YACF,CAAC,MAAM,IAAIwpB,qBAAqB,IAAI,CAAC,KAAK,CAAC,EAAE;cAE3C,KAAK7d,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;gBACvBmY,CAAC,GAAG9C,SAAS,CAACrV,CAAC,CAAC;gBAChB8d,SAAS,CAAC3F,CAAC,CAAC,GAAG7jB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;gBACvCA,MAAM,IAAI,CAAC;cACb;YACF,CAAC,MAAM;cACL,MAAM,IAAI4gB,SAAS,CAAC,0BAA0B,CAAC;YACjD;YACAwH,kBAAkB,CAACoB,qBAAqB,GAAG,EAAE,CAAC,GAAGC,SAAS;UAC5D;UACA;QAEF,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;UACT,IAAIzH,KAAK,EAAE;YACT,MAAM,IAAIpB,SAAS,CAAC,mCAAmC,CAAC;UAC1D;UACA5gB,MAAM,IAAI,CAAC;UAEXgiB,KAAK,GAAG,CAAC,CAAC;UACVA,KAAK,CAAC0H,QAAQ,GAAGzE,UAAU,KAAK,MAAM;UACtCjD,KAAK,CAACS,WAAW,GAAGwC,UAAU,KAAK,MAAM;UACzCjD,KAAK,CAACgB,SAAS,GAAG/jB,IAAI,CAACe,MAAM,EAAE,CAAC;UAChC,MAAM2pB,YAAY,GAAG1pB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;UAC7CA,MAAM,IAAI,CAAC;UACXgiB,KAAK,CAAClB,SAAS,GAAGwG,YAAY,IAAIqC,YAAY;UAC9C3H,KAAK,CAAC2F,cAAc,GAAG1nB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;UAC/CA,MAAM,IAAI,CAAC;UACXgiB,KAAK,CAACC,UAAU,GAAG,EAAE;UACrBD,KAAK,CAAC4H,YAAY,GAAG,CAAC,CAAC;UACvB,MAAMC,eAAe,GAAG5qB,IAAI,CAACe,MAAM,EAAE,CAAC;UACtC,IAAI4nB,IAAI,GAAG,CAAC;YACVC,IAAI,GAAG,CAAC;UACV,KAAKv5B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGu7B,eAAe,EAAEv7B,CAAC,EAAE,EAAE;YACpC,MAAMw7B,WAAW,GAAG7qB,IAAI,CAACe,MAAM,CAAC;YAChC,MAAM6kB,CAAC,GAAG5lB,IAAI,CAACe,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;YAC/B,MAAM1D,CAAC,GAAG2C,IAAI,CAACe,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;YAC/B,IAAI4nB,IAAI,GAAG/C,CAAC,EAAE;cACZ+C,IAAI,GAAG/C,CAAC;YACV;YACA,IAAIgD,IAAI,GAAGvrB,CAAC,EAAE;cACZurB,IAAI,GAAGvrB,CAAC;YACV;YACA,MAAMytB,GAAG,GAAG9qB,IAAI,CAACe,MAAM,GAAG,CAAC,CAAC;YAC5BwoB,CAAC,GAAGxG,KAAK,CAACC,UAAU,CAACrzB,IAAI,CAAC;cACxBi2B,CAAC;cACDvoB,CAAC;cACD0tB,cAAc,EAAED,GAAG;cACnBlE,iBAAiB,EAAE;YACrB,CAAC,CAAC;YACF7D,KAAK,CAAC4H,YAAY,CAACE,WAAW,CAAC,GAAGtB,CAAC,GAAG,CAAC;YACvCxoB,MAAM,IAAI,CAAC;UACb;UACAgiB,KAAK,CAAC4F,IAAI,GAAGA,IAAI;UACjB5F,KAAK,CAAC6F,IAAI,GAAGA,IAAI;UACjBH,iBAAiB,CAAC1F,KAAK,CAAC;UACxB;QAEF,KAAK,MAAM;UACT,MAAMiI,aAAa,GAAGhqB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;UAC9CA,MAAM,IAAI,CAAC;UACX,KAAK1R,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG27B,aAAa,GAAI;YAC/B,MAAMC,gBAAgB,GAAGjrB,IAAI,CAACe,MAAM,EAAE,CAAC;YACvC,MAAM0hB,WAAW,GAAG,IAAI1yB,UAAU,CAAC,EAAE,CAAC;YACtC,IAAIm7B,aAAa,GAAG,CAAC;YACrB,KAAKxe,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE3L,MAAM,EAAE,EAAE;cACjCmqB,aAAa,IAAIzI,WAAW,CAAC/V,CAAC,CAAC,GAAG1M,IAAI,CAACe,MAAM,CAAC;YAChD;YACA,MAAMoqB,aAAa,GAAG,IAAIp7B,UAAU,CAACm7B,aAAa,CAAC;YACnD,KAAKxe,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwe,aAAa,EAAExe,CAAC,EAAE,EAAE3L,MAAM,EAAE,EAAE;cAC5CoqB,aAAa,CAACze,CAAC,CAAC,GAAG1M,IAAI,CAACe,MAAM,CAAC;YACjC;YACA1R,CAAC,IAAI,EAAE,GAAG67B,aAAa;YAEvB,CAACD,gBAAgB,IAAI,CAAC,KAAK,CAAC,GAAG5B,eAAe,GAAGD,eAAe,EAC9D6B,gBAAgB,GAAG,EAAE,CACtB,GAAGzI,iBAAiB,CAACC,WAAW,EAAE0I,aAAa,CAAC;UACnD;UACA;QAEF,KAAK,MAAM;UACTpqB,MAAM,IAAI,CAAC;UAEXkiB,aAAa,GAAGjiB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;UACxCA,MAAM,IAAI,CAAC;UACX;QAEF,KAAK,MAAM;UAKT,MAAMuiB,cAAc,GAAG,EAAE4F,aAAa,KAAK,CAAC,IAAI,CAACb,YAAY;UAE7DtnB,MAAM,IAAI,CAAC;UAEX,MAAMqqB,cAAc,GAAGprB,IAAI,CAACe,MAAM,EAAE,CAAC;YACnCiiB,UAAU,GAAG,EAAE;UACjB,KAAK3zB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+7B,cAAc,EAAE/7B,CAAC,EAAE,EAAE;YACnC,MAAMgwB,KAAK,GAAGrf,IAAI,CAACe,MAAM,EAAE,CAAC;YAC5B,MAAMsqB,cAAc,GAAGtI,KAAK,CAAC4H,YAAY,CAACtL,KAAK,CAAC;YAChD,MAAM7d,SAAS,GAAGuhB,KAAK,CAACC,UAAU,CAACqI,cAAc,CAAC;YAClD7pB,SAAS,CAAC6d,KAAK,GAAGA,KAAK;YACvB,MAAMiM,SAAS,GAAGtrB,IAAI,CAACe,MAAM,EAAE,CAAC;YAChCS,SAAS,CAAC8iB,cAAc,GAAG+E,eAAe,CAACiC,SAAS,IAAI,CAAC,CAAC;YAC1D9pB,SAAS,CAACmjB,cAAc,GAAGyE,eAAe,CAACkC,SAAS,GAAG,EAAE,CAAC;YAC1DtI,UAAU,CAACrzB,IAAI,CAAC6R,SAAS,CAAC;UAC5B;UACA,MAAM0hB,aAAa,GAAGljB,IAAI,CAACe,MAAM,EAAE,CAAC;YAClCoiB,WAAW,GAAGnjB,IAAI,CAACe,MAAM,EAAE,CAAC;YAC5BwqB,uBAAuB,GAAGvrB,IAAI,CAACe,MAAM,EAAE,CAAC;UAC1C,IAAI;YACF,MAAMyqB,SAAS,GAAG1I,UAAU,CAC1B9iB,IAAI,EACJe,MAAM,EACNgiB,KAAK,EACLC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,WAAW,EACXoI,uBAAuB,IAAI,CAAC,EAC5BA,uBAAuB,GAAG,EAAE,EAC5BjI,cACF,CAAC;YACDviB,MAAM,IAAIyqB,SAAS;UACrB,CAAC,CAAC,OAAO70B,EAAE,EAAE;YACX,IAAIA,EAAE,YAAYirB,cAAc,EAAE;cAChC91B,SAAI,CAAE,GAAE6K,EAAE,CAAC3I,OAAQ,4CAA2C,CAAC;cAC/D,OAAO,IAAI,CAACmyB,KAAK,CAACngB,IAAI,EAAE;gBAAEqoB,YAAY,EAAE1xB,EAAE,CAACkrB;cAAU,CAAC,CAAC;YACzD,CAAC,MAAM,IAAIlrB,EAAE,YAAYmrB,cAAc,EAAE;cACvCh2B,SAAI,CAAE,GAAE6K,EAAE,CAAC3I,OAAQ,0CAAyC,CAAC;cAC7D,MAAMs7B,UAAU;YAClB;YACA,MAAM3yB,EAAE;UACV;UACA;QAEF,KAAK,MAAM;UAEToK,MAAM,IAAI,CAAC;UACX;QAEF,KAAK,MAAM;UACT,IAAIf,IAAI,CAACe,MAAM,CAAC,KAAK,IAAI,EAAE;YAEzBA,MAAM,EAAE;UACV;UACA;QAEF;UAIE,MAAM0qB,cAAc,GAAGpF,kBAAkB,CACvCrmB,IAAI,EACee,MAAM,GAAG,CAAC,EACZA,MAAM,GAAG,CAC5B,CAAC;UACD,IAAI0qB,cAAc,EAAEnF,OAAO,EAAE;YAC3Bx6B,SAAI,CACF,wDAAwD,GACtD2/B,cAAc,CAACnF,OACnB,CAAC;YACDvlB,MAAM,GAAG0qB,cAAc,CAAC1qB,MAAM;YAC9B;UACF;UACA,IAAI,CAAC0qB,cAAc,IAAI1qB,MAAM,IAAIf,IAAI,CAACvT,MAAM,GAAG,CAAC,EAAE;YAChDX,SAAI,CACF,sDAAsD,GACpD,yCACJ,CAAC;YACD,MAAMw9B,UAAU;UAClB;UACA,MAAM,IAAI3H,SAAS,CACjB,oCAAoC,GAAGqE,UAAU,CAACl0B,QAAQ,CAAC,EAAE,CAC/D,CAAC;MACL;MACAk0B,UAAU,GAAGhlB,UAAU,CAAChB,IAAI,EAAEe,MAAM,CAAC;MACrCA,MAAM,IAAI,CAAC;IACb;IAEA,IAAI,CAACgiB,KAAK,EAAE;MACV,MAAM,IAAIpB,SAAS,CAAC,wCAAwC,CAAC;IAC/D;IACA,IAAI,CAACpc,KAAK,GAAGwd,KAAK,CAAC2F,cAAc;IACjC,IAAI,CAACljB,MAAM,GAAGud,KAAK,CAAClB,SAAS;IAC7B,IAAI,CAACmH,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACjG,UAAU,GAAG,EAAE;IACpB,KAAK,MAAMxhB,SAAS,IAAIuhB,KAAK,CAACC,UAAU,EAAE;MAIxC,MAAM4D,iBAAiB,GAAGuC,kBAAkB,CAAC3nB,SAAS,CAACupB,cAAc,CAAC;MACtE,IAAInE,iBAAiB,EAAE;QACrBplB,SAAS,CAAColB,iBAAiB,GAAGA,iBAAiB;MACjD;MAEA,IAAI,CAAC5D,UAAU,CAACrzB,IAAI,CAAC;QACnB0vB,KAAK,EAAE7d,SAAS,CAAC6d,KAAK;QACtBqM,MAAM,EAAEnE,kBAAkB,CAACxE,KAAK,EAAEvhB,SAAS,CAAC;QAC5CmqB,MAAM,EAAEnqB,SAAS,CAACokB,CAAC,GAAG7C,KAAK,CAAC4F,IAAI;QAChCiD,MAAM,EAAEpqB,SAAS,CAACnE,CAAC,GAAG0lB,KAAK,CAAC6F,IAAI;QAChC/F,aAAa,EAAErhB,SAAS,CAACqhB,aAAa;QACtCqD,eAAe,EAAE1kB,SAAS,CAAC0kB;MAC7B,CAAC,CAAC;IACJ;IACA,IAAI,CAAC2F,aAAa,GAAG,IAAI,CAAC7I,UAAU,CAACv2B,MAAM;IAC3C,OAAOC,SAAS;EAClB;EAEAo/B,uBAAuBA,CAACvmB,KAAK,EAAEC,MAAM,EAAuB;IAAA,IAArBumB,WAAW,GAAAv/B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IACxD,MAAMm/B,MAAM,GAAG,IAAI,CAACpmB,KAAK,GAAGA,KAAK;MAC/BqmB,MAAM,GAAG,IAAI,CAACpmB,MAAM,GAAGA,MAAM;IAE/B,IAAIhE,SAAS,EAAEwqB,eAAe,EAAEC,eAAe,EAAEC,iBAAiB;IAClE,IAAIz2B,CAAC,EAAEC,CAAC,EAAErG,CAAC,EAAEqd,CAAC,EAAEyB,CAAC;IACjB,IAAIkR,KAAK;IACT,IAAIte,MAAM,GAAG,CAAC;IACd,IAAI2qB,MAAM;IACV,MAAMG,aAAa,GAAG,IAAI,CAAC7I,UAAU,CAACv2B,MAAM;IAC5C,MAAMqT,UAAU,GAAGyF,KAAK,GAAGC,MAAM,GAAGqmB,aAAa;IACjD,MAAM7rB,IAAI,GAAG,IAAIob,iBAAiB,CAACtb,UAAU,CAAC;IAC9C,MAAMqsB,iBAAiB,GAAG,IAAIx7B,WAAW,CAAC4U,KAAK,CAAC;IAChD,MAAM6mB,QAAQ,GAAG,UAAU;IAC3B,IAAIC,mBAAmB;IAEvB,KAAKh9B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGw8B,aAAa,EAAEx8B,CAAC,EAAE,EAAE;MAClCmS,SAAS,GAAG,IAAI,CAACwhB,UAAU,CAAC3zB,CAAC,CAAC;MAC9B28B,eAAe,GAAGxqB,SAAS,CAACmqB,MAAM,GAAGA,MAAM;MAC3CM,eAAe,GAAGzqB,SAAS,CAACoqB,MAAM,GAAGA,MAAM;MAC3C7qB,MAAM,GAAG1R,CAAC;MACVq8B,MAAM,GAAGlqB,SAAS,CAACkqB,MAAM;MACzBQ,iBAAiB,GAAI1qB,SAAS,CAACqhB,aAAa,GAAG,CAAC,IAAK,CAAC;MAGtD,IAAImJ,eAAe,KAAKK,mBAAmB,EAAE;QAC3C,KAAK52B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8P,KAAK,EAAE9P,CAAC,EAAE,EAAE;UAC1BiX,CAAC,GAAG,CAAC,GAAIjX,CAAC,GAAGu2B,eAAgB;UAC7BG,iBAAiB,CAAC12B,CAAC,CAAC,GAAI,CAACiX,CAAC,GAAG0f,QAAQ,KAAK,CAAC,GAAK1f,CAAC,GAAG,CAAE;QACxD;QACA2f,mBAAmB,GAAGL,eAAe;MACvC;MAEA,KAAKt2B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8P,MAAM,EAAE9P,CAAC,EAAE,EAAE;QAC3BgX,CAAC,GAAG,CAAC,GAAIhX,CAAC,GAAGu2B,eAAgB;QAC7B5M,KAAK,GAAI6M,iBAAiB,IAAIxf,CAAC,GAAG0f,QAAQ,CAAC,GAAK,CAAC1f,CAAC,GAAG,CAAC,KAAK,CAAE;QAC7D,KAAKjX,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8P,KAAK,EAAE9P,CAAC,EAAE,EAAE;UAC1BuK,IAAI,CAACe,MAAM,CAAC,GAAG2qB,MAAM,CAACrM,KAAK,GAAG8M,iBAAiB,CAAC12B,CAAC,CAAC,CAAC;UACnDsL,MAAM,IAAI8qB,aAAa;QACzB;MACF;IACF;IAGA,IAAIzlC,SAAS,GAAG,IAAI,CAAC+hC,gBAAgB;IAarC,IAAI,CAAC4D,WAAW,IAAIF,aAAa,KAAK,CAAC,IAAI,CAACzlC,SAAS,EAAE;MACrDA,SAAS,GAAG,IAAIqpB,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1E;IAEA,IAAIrpB,SAAS,EAAE;MACb,KAAKiJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyQ,UAAU,GAAI;QAC5B,KAAK4M,CAAC,GAAG,CAAC,EAAEyB,CAAC,GAAG,CAAC,EAAEzB,CAAC,GAAGmf,aAAa,EAAEnf,CAAC,EAAE,EAAErd,CAAC,EAAE,EAAE8e,CAAC,IAAI,CAAC,EAAE;UACtDnO,IAAI,CAAC3Q,CAAC,CAAC,GAAG,CAAE2Q,IAAI,CAAC3Q,CAAC,CAAC,GAAGjJ,SAAS,CAAC+nB,CAAC,CAAC,IAAK,CAAC,IAAI/nB,SAAS,CAAC+nB,CAAC,GAAG,CAAC,CAAC;QAC9D;MACF;IACF;IACA,OAAOnO,IAAI;EACb;EAEA,IAAIssB,wBAAwBA,CAAA,EAAG;IAC7B,IAAI,IAAI,CAACrD,KAAK,EAAE;MAEd,OAAO,CAAC,CAAC,IAAI,CAACA,KAAK,CAACmB,aAAa;IACnC;IACA,IAAI,IAAI,CAACyB,aAAa,KAAK,CAAC,EAAE;MAC5B,IAAI,IAAI,CAACzD,eAAe,KAAK,CAAC,EAAE;QAI9B,OAAO,KAAK;MACd,CAAC,MAAM,IACL,IAAI,CAACpF,UAAU,CAAC,CAAC,CAAC,CAAC3D,KAAK,KAAiB,IAAI,IAC7C,IAAI,CAAC2D,UAAU,CAAC,CAAC,CAAC,CAAC3D,KAAK,KAAiB,IAAI,IAC7C,IAAI,CAAC2D,UAAU,CAAC,CAAC,CAAC,CAAC3D,KAAK,KAAiB,IAAI,EAC7C;QAGA,OAAO,KAAK;MACd;MACA,OAAO,IAAI;IACb;IAEA,IAAI,IAAI,CAAC+I,eAAe,KAAK,CAAC,EAAE;MAI9B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAmE,gBAAgBA,CAACvsB,IAAI,EAAE;IACrB,IAAIwsB,CAAC,EAAEC,EAAE,EAAEC,EAAE;IACb,KAAK,IAAIr9B,CAAC,GAAG,CAAC,EAAE5C,MAAM,GAAGuT,IAAI,CAACvT,MAAM,EAAE4C,CAAC,GAAG5C,MAAM,EAAE4C,CAAC,IAAI,CAAC,EAAE;MACxDm9B,CAAC,GAAGxsB,IAAI,CAAC3Q,CAAC,CAAC;MACXo9B,EAAE,GAAGzsB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAChBq9B,EAAE,GAAG1sB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAChB2Q,IAAI,CAAC3Q,CAAC,CAAC,GAAGm9B,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGE,EAAE;MAClC1sB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GAAGm9B,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGC,EAAE,GAAG,KAAK,GAAGC,EAAE;MACnD1sB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GAAGm9B,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGC,EAAE;IACxC;IACA,OAAOzsB,IAAI;EACb;EAEA2sB,iBAAiBA,CAAC3sB,IAAI,EAAE4sB,GAAG,EAAE;IAC3B,KAAK,IAAIv9B,CAAC,GAAG,CAAC,EAAEqd,CAAC,GAAG,CAAC,EAAEjgB,MAAM,GAAGuT,IAAI,CAACvT,MAAM,EAAE4C,CAAC,GAAG5C,MAAM,EAAE4C,CAAC,IAAI,CAAC,EAAEqd,CAAC,IAAI,CAAC,EAAE;MACvE,MAAM8f,CAAC,GAAGxsB,IAAI,CAAC3Q,CAAC,CAAC;MACjB,MAAMo9B,EAAE,GAAGzsB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MACtB,MAAMq9B,EAAE,GAAG1sB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MACtBu9B,GAAG,CAAClgB,CAAC,CAAC,GAAG8f,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGE,EAAE;MACjCE,GAAG,CAAClgB,CAAC,GAAG,CAAC,CAAC,GAAG8f,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGC,EAAE,GAAG,KAAK,GAAGC,EAAE;MAClDE,GAAG,CAAClgB,CAAC,GAAG,CAAC,CAAC,GAAG8f,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGC,EAAE;MACrCG,GAAG,CAAClgB,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;IAClB;IACA,OAAOkgB,GAAG;EACZ;EAEAC,iBAAiBA,CAAC7sB,IAAI,EAAE;IACtB,IAAIwsB,CAAC,EAAEC,EAAE,EAAEC,EAAE,EAAEve,CAAC;IAChB,IAAIpN,MAAM,GAAG,CAAC;IACd,KAAK,IAAI1R,CAAC,GAAG,CAAC,EAAE5C,MAAM,GAAGuT,IAAI,CAACvT,MAAM,EAAE4C,CAAC,GAAG5C,MAAM,EAAE4C,CAAC,IAAI,CAAC,EAAE;MACxDm9B,CAAC,GAAGxsB,IAAI,CAAC3Q,CAAC,CAAC;MACXo9B,EAAE,GAAGzsB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAChBq9B,EAAE,GAAG1sB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAChB8e,CAAC,GAAGnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAEf2Q,IAAI,CAACe,MAAM,EAAE,CAAC,GACZ,CAAC,eAAe,GAChB0rB,EAAE,IACC,CAAC,mBAAmB,GAAGA,EAAE,GACxB,oBAAoB,GAAGC,EAAE,GACzB,kBAAkB,GAAGF,CAAC,GACtB,mBAAmB,GAAGre,CAAC,GACvB,iBAAiB,CAAC,GACtBue,EAAE,IACC,CAAC,oBAAoB,GAAGA,EAAE,GACzB,oBAAoB,GAAGF,CAAC,GACxB,mBAAmB,GAAGre,CAAC,GACvB,gBAAgB,CAAC,GACrBqe,CAAC,IACE,oBAAoB,GAAGA,CAAC,GACvB,mBAAmB,GAAGre,CAAC,GACvB,gBAAgB,CAAC,GACrBA,CAAC,IAAI,CAAC,oBAAoB,GAAGA,CAAC,GAAG,iBAAiB,CAAC;MAErDnO,IAAI,CAACe,MAAM,EAAE,CAAC,GACZ,gBAAgB,GAChB0rB,EAAE,IACC,mBAAmB,GAAGA,EAAE,GACvB,oBAAoB,GAAGC,EAAE,GACzB,oBAAoB,GAAGF,CAAC,GACxB,oBAAoB,GAAGre,CAAC,GACxB,iBAAiB,CAAC,GACtBue,EAAE,IACC,CAAC,oBAAoB,GAAGA,EAAE,GACzB,mBAAmB,GAAGF,CAAC,GACvB,oBAAoB,GAAGre,CAAC,GACxB,iBAAiB,CAAC,GACtBqe,CAAC,IACE,mBAAmB,GAAGA,CAAC,GACtB,mBAAmB,GAAGre,CAAC,GACvB,gBAAgB,CAAC,GACrBA,CAAC,IAAI,CAAC,oBAAoB,GAAGA,CAAC,GAAG,iBAAiB,CAAC;MAErDnO,IAAI,CAACe,MAAM,EAAE,CAAC,GACZ,CAAC,eAAe,GAChB0rB,EAAE,IACC,CAAC,oBAAoB,GAAGA,EAAE,GACzB,mBAAmB,GAAGC,EAAE,GACxB,kBAAkB,GAAGF,CAAC,GACtB,mBAAmB,GAAGre,CAAC,GACvB,iBAAiB,CAAC,GACtBue,EAAE,IACC,CAAC,mBAAmB,GAAGA,EAAE,GACxB,oBAAoB,GAAGF,CAAC,GACxB,oBAAoB,GAAGre,CAAC,GACxB,iBAAiB,CAAC,GACtBqe,CAAC,IACE,mBAAmB,GAAGA,CAAC,GACtB,mBAAmB,GAAGre,CAAC,GACvB,iBAAiB,CAAC,GACtBA,CAAC,IAAI,CAAC,oBAAoB,GAAGA,CAAC,GAAG,gBAAgB,CAAC;IACtD;IAEA,OAAOnO,IAAI,CAACtQ,QAAQ,CAAC,CAAC,EAAEqR,MAAM,CAAC;EACjC;EAEA+rB,kBAAkBA,CAAC9sB,IAAI,EAAE;IACvB,KAAK,IAAI3Q,CAAC,GAAG,CAAC,EAAE5C,MAAM,GAAGuT,IAAI,CAACvT,MAAM,EAAE4C,CAAC,GAAG5C,MAAM,EAAE4C,CAAC,IAAI,CAAC,EAAE;MACxD,MAAMm9B,CAAC,GAAGxsB,IAAI,CAAC3Q,CAAC,CAAC;MACjB,MAAMo9B,EAAE,GAAGzsB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MACtB,MAAMq9B,EAAE,GAAG1sB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MACtB,MAAM8e,CAAC,GAAGnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAErB2Q,IAAI,CAAC3Q,CAAC,CAAC,GACL,CAAC,eAAe,GAChBo9B,EAAE,IACC,CAAC,mBAAmB,GAAGA,EAAE,GACxB,oBAAoB,GAAGC,EAAE,GACzB,kBAAkB,GAAGF,CAAC,GACtB,mBAAmB,GAAGre,CAAC,GACvB,iBAAiB,CAAC,GACtBue,EAAE,IACC,CAAC,oBAAoB,GAAGA,EAAE,GACzB,oBAAoB,GAAGF,CAAC,GACxB,mBAAmB,GAAGre,CAAC,GACvB,gBAAgB,CAAC,GACrBqe,CAAC,IACE,oBAAoB,GAAGA,CAAC,GACvB,mBAAmB,GAAGre,CAAC,GACvB,gBAAgB,CAAC,GACrBA,CAAC,IAAI,CAAC,oBAAoB,GAAGA,CAAC,GAAG,iBAAiB,CAAC;MAErDnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GACT,gBAAgB,GAChBo9B,EAAE,IACC,mBAAmB,GAAGA,EAAE,GACvB,oBAAoB,GAAGC,EAAE,GACzB,oBAAoB,GAAGF,CAAC,GACxB,oBAAoB,GAAGre,CAAC,GACxB,iBAAiB,CAAC,GACtBue,EAAE,IACC,CAAC,oBAAoB,GAAGA,EAAE,GACzB,mBAAmB,GAAGF,CAAC,GACvB,oBAAoB,GAAGre,CAAC,GACxB,iBAAiB,CAAC,GACtBqe,CAAC,IACE,mBAAmB,GAAGA,CAAC,GACtB,mBAAmB,GAAGre,CAAC,GACvB,gBAAgB,CAAC,GACrBA,CAAC,IAAI,CAAC,oBAAoB,GAAGA,CAAC,GAAG,iBAAiB,CAAC;MAErDnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GACT,CAAC,eAAe,GAChBo9B,EAAE,IACC,CAAC,oBAAoB,GAAGA,EAAE,GACzB,mBAAmB,GAAGC,EAAE,GACxB,kBAAkB,GAAGF,CAAC,GACtB,mBAAmB,GAAGre,CAAC,GACvB,iBAAiB,CAAC,GACtBue,EAAE,IACC,CAAC,mBAAmB,GAAGA,EAAE,GACxB,oBAAoB,GAAGF,CAAC,GACxB,oBAAoB,GAAGre,CAAC,GACxB,iBAAiB,CAAC,GACtBqe,CAAC,IACE,mBAAmB,GAAGA,CAAC,GACtB,mBAAmB,GAAGre,CAAC,GACvB,iBAAiB,CAAC,GACtBA,CAAC,IAAI,CAAC,oBAAoB,GAAGA,CAAC,GAAG,gBAAgB,CAAC;MACpDnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;IACnB;IACA,OAAO2Q,IAAI;EACb;EAEA+sB,kBAAkBA,CAAC/sB,IAAI,EAAE;IACvB,IAAIwsB,CAAC,EAAEC,EAAE,EAAEC,EAAE;IACb,KAAK,IAAIr9B,CAAC,GAAG,CAAC,EAAE5C,MAAM,GAAGuT,IAAI,CAACvT,MAAM,EAAE4C,CAAC,GAAG5C,MAAM,EAAE4C,CAAC,IAAI,CAAC,EAAE;MACxDm9B,CAAC,GAAGxsB,IAAI,CAAC3Q,CAAC,CAAC;MACXo9B,EAAE,GAAGzsB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAChBq9B,EAAE,GAAG1sB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAChB2Q,IAAI,CAAC3Q,CAAC,CAAC,GAAG,OAAO,GAAGm9B,CAAC,GAAG,KAAK,GAAGE,EAAE;MAClC1sB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAGm9B,CAAC,GAAG,KAAK,GAAGC,EAAE,GAAG,KAAK,GAAGC,EAAE;MACnD1sB,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAGm9B,CAAC,GAAG,KAAK,GAAGC,EAAE;IAExC;IACA,OAAOzsB,IAAI;EACb;EAEAgtB,iBAAiBA,CAAChtB,IAAI,EAAE;IACtB,IAAIpM,CAAC,EAAEhB,CAAC,EAAE8C,CAAC,EAAEyY,CAAC;IACd,IAAIpN,MAAM,GAAG,CAAC;IACd,KAAK,IAAI1R,CAAC,GAAG,CAAC,EAAE5C,MAAM,GAAGuT,IAAI,CAACvT,MAAM,EAAE4C,CAAC,GAAG5C,MAAM,EAAE4C,CAAC,IAAI,CAAC,EAAE;MACxDuE,CAAC,GAAGoM,IAAI,CAAC3Q,CAAC,CAAC;MACXuD,CAAC,GAAGoN,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MACfqG,CAAC,GAAGsK,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MACf8e,CAAC,GAAGnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAEf2Q,IAAI,CAACe,MAAM,EAAE,CAAC,GACZ,GAAG,GACHnN,CAAC,IACE,CAAC,sBAAsB,GAAGA,CAAC,GAC1B,qBAAqB,GAAGhB,CAAC,GACzB,qBAAqB,GAAG8C,CAAC,GACzB,oBAAoB,GAAGyY,CAAC,GACxB,kBAAkB,CAAC,GACvBvb,CAAC,IACE,uBAAuB,GAAGA,CAAC,GAC1B,sBAAsB,GAAG8C,CAAC,GAC1B,qBAAqB,GAAGyY,CAAC,GACzB,mBAAmB,CAAC,GACxBzY,CAAC,IACE,CAAC,sBAAsB,GAAGA,CAAC,GAC1B,qBAAqB,GAAGyY,CAAC,GACzB,kBAAkB,CAAC,GACvBA,CAAC,IAAI,qBAAqB,GAAGA,CAAC,GAAG,kBAAkB,CAAC;MAEtDnO,IAAI,CAACe,MAAM,EAAE,CAAC,GACZ,GAAG,GACHnN,CAAC,IACE,sBAAsB,GAAGA,CAAC,GACzB,oBAAoB,GAAGhB,CAAC,GACxB,sBAAsB,GAAG8C,CAAC,GAC1B,qBAAqB,GAAGyY,CAAC,GACzB,kBAAkB,CAAC,GACvBvb,CAAC,IACE,CAAC,sBAAsB,GAAGA,CAAC,GAC1B,qBAAqB,GAAG8C,CAAC,GACzB,qBAAqB,GAAGyY,CAAC,GACzB,kBAAkB,CAAC,GACvBzY,CAAC,IACE,sBAAsB,GAAGA,CAAC,GACzB,sBAAsB,GAAGyY,CAAC,GAC1B,mBAAmB,CAAC,GACxBA,CAAC,IAAI,qBAAqB,GAAGA,CAAC,GAAG,kBAAkB,CAAC;MAEtDnO,IAAI,CAACe,MAAM,EAAE,CAAC,GACZ,GAAG,GACHnN,CAAC,IACE,uBAAuB,GAAGA,CAAC,GAC1B,sBAAsB,GAAGhB,CAAC,GAC1B,qBAAqB,GAAG8C,CAAC,GACzB,wBAAwB,GAAGyY,CAAC,GAC5B,mBAAmB,CAAC,GACxBvb,CAAC,IACE,sBAAsB,GAAGA,CAAC,GACzB,qBAAqB,GAAG8C,CAAC,GACzB,qBAAqB,GAAGyY,CAAC,GACzB,mBAAmB,CAAC,GACxBzY,CAAC,IACE,oBAAoB,GAAGA,CAAC,GACvB,qBAAqB,GAAGyY,CAAC,GACzB,kBAAkB,CAAC,GACvBA,CAAC,IAAI,qBAAqB,GAAGA,CAAC,GAAG,kBAAkB,CAAC;IACxD;IAEA,OAAOnO,IAAI,CAACtQ,QAAQ,CAAC,CAAC,EAAEqR,MAAM,CAAC;EACjC;EAEAksB,kBAAkBA,CAACjtB,IAAI,EAAE;IACvB,KAAK,IAAI3Q,CAAC,GAAG,CAAC,EAAE5C,MAAM,GAAGuT,IAAI,CAACvT,MAAM,EAAE4C,CAAC,GAAG5C,MAAM,EAAE4C,CAAC,IAAI,CAAC,EAAE;MACxD,MAAMuE,CAAC,GAAGoM,IAAI,CAAC3Q,CAAC,CAAC;MACjB,MAAMuD,CAAC,GAAGoN,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MACrB,MAAMqG,CAAC,GAAGsK,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MACrB,MAAM8e,CAAC,GAAGnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC;MAErB2Q,IAAI,CAAC3Q,CAAC,CAAC,GACL,GAAG,GACHuE,CAAC,IACE,CAAC,sBAAsB,GAAGA,CAAC,GAC1B,qBAAqB,GAAGhB,CAAC,GACzB,qBAAqB,GAAG8C,CAAC,GACzB,oBAAoB,GAAGyY,CAAC,GACxB,kBAAkB,CAAC,GACvBvb,CAAC,IACE,uBAAuB,GAAGA,CAAC,GAC1B,sBAAsB,GAAG8C,CAAC,GAC1B,qBAAqB,GAAGyY,CAAC,GACzB,mBAAmB,CAAC,GACxBzY,CAAC,IACE,CAAC,sBAAsB,GAAGA,CAAC,GAC1B,qBAAqB,GAAGyY,CAAC,GACzB,kBAAkB,CAAC,GACvBA,CAAC,IAAI,qBAAqB,GAAGA,CAAC,GAAG,kBAAkB,CAAC;MAEtDnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GACT,GAAG,GACHuE,CAAC,IACE,sBAAsB,GAAGA,CAAC,GACzB,oBAAoB,GAAGhB,CAAC,GACxB,sBAAsB,GAAG8C,CAAC,GAC1B,qBAAqB,GAAGyY,CAAC,GACzB,kBAAkB,CAAC,GACvBvb,CAAC,IACE,CAAC,sBAAsB,GAAGA,CAAC,GAC1B,qBAAqB,GAAG8C,CAAC,GACzB,qBAAqB,GAAGyY,CAAC,GACzB,kBAAkB,CAAC,GACvBzY,CAAC,IACE,sBAAsB,GAAGA,CAAC,GACzB,sBAAsB,GAAGyY,CAAC,GAC1B,mBAAmB,CAAC,GACxBA,CAAC,IAAI,qBAAqB,GAAGA,CAAC,GAAG,kBAAkB,CAAC;MAEtDnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GACT,GAAG,GACHuE,CAAC,IACE,uBAAuB,GAAGA,CAAC,GAC1B,sBAAsB,GAAGhB,CAAC,GAC1B,qBAAqB,GAAG8C,CAAC,GACzB,wBAAwB,GAAGyY,CAAC,GAC5B,mBAAmB,CAAC,GACxBvb,CAAC,IACE,sBAAsB,GAAGA,CAAC,GACzB,qBAAqB,GAAG8C,CAAC,GACzB,qBAAqB,GAAGyY,CAAC,GACzB,mBAAmB,CAAC,GACxBzY,CAAC,IACE,oBAAoB,GAAGA,CAAC,GACvB,qBAAqB,GAAGyY,CAAC,GACzB,kBAAkB,CAAC,GACvBA,CAAC,IAAI,qBAAqB,GAAGA,CAAC,GAAG,kBAAkB,CAAC;MACtDnO,IAAI,CAAC3Q,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;IACnB;IACA,OAAO2Q,IAAI;EACb;EAEAktB,OAAOA,CAAA3xB,IAAA,EAMJ;IAAA,IANK;MACNgK,KAAK;MACLC,MAAM;MACN2nB,SAAS,GAAG,KAAK;MACjBC,QAAQ,GAAG,KAAK;MAChBrB,WAAW,GAAG;IAChB,CAAC,GAAAxwB,IAAA;IAOC,IAAI,IAAI,CAACswB,aAAa,GAAG,CAAC,EAAE;MAC1B,MAAM,IAAIlK,SAAS,CAAC,wBAAwB,CAAC;IAC/C;IAEA,MAAM3hB,IAAI,GAAG,IAAI,CAAC8rB,uBAAuB,CAACvmB,KAAK,EAAEC,MAAM,EAAEumB,WAAW,CAAC;IAErE,IAAI,IAAI,CAACF,aAAa,KAAK,CAAC,KAAKsB,SAAS,IAAIC,QAAQ,CAAC,EAAE;MACvD,MAAMC,GAAG,GAAGrtB,IAAI,CAACvT,MAAM,IAAI0gC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;MAC7C,MAAMG,QAAQ,GAAG,IAAIlS,iBAAiB,CAACiS,GAAG,CAAC;MAC3C,IAAItsB,MAAM,GAAG,CAAC;MACd,IAAIosB,SAAS,EAAE;QACbzL,UAAU,CAAC1hB,IAAI,EAAE,IAAIrP,WAAW,CAAC28B,QAAQ,CAAC18B,MAAM,CAAC,CAAC;MACpD,CAAC,MAAM;QACL,KAAK,MAAM28B,SAAS,IAAIvtB,IAAI,EAAE;UAC5BstB,QAAQ,CAACvsB,MAAM,EAAE,CAAC,GAAGwsB,SAAS;UAC9BD,QAAQ,CAACvsB,MAAM,EAAE,CAAC,GAAGwsB,SAAS;UAC9BD,QAAQ,CAACvsB,MAAM,EAAE,CAAC,GAAGwsB,SAAS;QAChC;MACF;MACA,OAAOD,QAAQ;IACjB,CAAC,MAAM,IAAI,IAAI,CAACzB,aAAa,KAAK,CAAC,IAAI,IAAI,CAACS,wBAAwB,EAAE;MACpE,IAAIa,SAAS,EAAE;QACb,MAAMG,QAAQ,GAAG,IAAIlS,iBAAiB,CAAEpb,IAAI,CAACvT,MAAM,GAAG,CAAC,GAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,CAACkgC,iBAAiB,CAAC3sB,IAAI,EAAEstB,QAAQ,CAAC;MAC/C;MACA,OAAO,IAAI,CAACf,gBAAgB,CAACvsB,IAAI,CAAC;IACpC,CAAC,MAAM,IAAI,IAAI,CAAC6rB,aAAa,KAAK,CAAC,EAAE;MACnC,IAAI,IAAI,CAACS,wBAAwB,EAAE;QACjC,IAAIa,SAAS,EAAE;UACb,OAAO,IAAI,CAACL,kBAAkB,CAAC9sB,IAAI,CAAC;QACtC;QACA,IAAIotB,QAAQ,EAAE;UACZ,OAAO,IAAI,CAACP,iBAAiB,CAAC7sB,IAAI,CAAC;QACrC;QACA,OAAO,IAAI,CAAC+sB,kBAAkB,CAAC/sB,IAAI,CAAC;MACtC,CAAC,MAAM,IAAImtB,SAAS,EAAE;QACpB,OAAO,IAAI,CAACF,kBAAkB,CAACjtB,IAAI,CAAC;MACtC,CAAC,MAAM,IAAIotB,QAAQ,EAAE;QACnB,OAAO,IAAI,CAACJ,iBAAiB,CAAChtB,IAAI,CAAC;MACrC;IACF;IACA,OAAOA,IAAI;EACb;AACF;;;;;;;;;;;;;;;;AC7hD2E;AACZ;AACH;AAE5D,MAAMwtB,QAAQ,SAAS1/B,aAAa,CAAC;EACnCI,WAAWA,CAACvC,GAAG,EAAE;IACf,KAAK,CAAE,cAAaA,GAAI,EAAC,EAAE,UAAU,CAAC;EACxC;AACF;AAGA,MAAM8hC,gBAAgB,GAAG;EACvBC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE;AACN,CAAC;AAED,MAAMC,QAAQ,CAAC;EACb5/B,WAAWA,CAAA,EAAG;IACZ,IAAI,CAAC6/B,oBAAoB,GAAG,KAAK;EACnC;EAEA5N,KAAKA,CAACngB,IAAI,EAAE;IACV,MAAMguB,IAAI,GAAGhtB,UAAU,CAAChB,IAAI,EAAE,CAAC,CAAC;IAEhC,IAAIguB,IAAI,KAAK,MAAM,EAAE;MACnB,IAAI,CAACC,eAAe,CAACjuB,IAAI,EAAE,CAAC,EAAEA,IAAI,CAACvT,MAAM,CAAC;MAC1C;IACF;IAEA,MAAMA,MAAM,GAAGuT,IAAI,CAACvT,MAAM;IAC1B,IAAI2lB,QAAQ,GAAG,CAAC;IAChB,OAAOA,QAAQ,GAAG3lB,MAAM,EAAE;MACxB,IAAIyhC,UAAU,GAAG,CAAC;MAClB,IAAIC,IAAI,GAAGltB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC;MACrC,MAAMgc,IAAI,GAAGntB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC;MAC3CA,QAAQ,IAAI8b,UAAU;MACtB,IAAIC,IAAI,KAAK,CAAC,EAAE;QAGdA,IAAI,GACFltB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC,GAAG,UAAU,GACvCnR,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC;QAChCA,QAAQ,IAAI,CAAC;QACb8b,UAAU,IAAI,CAAC;MACjB;MACA,IAAIC,IAAI,KAAK,CAAC,EAAE;QACdA,IAAI,GAAG1hC,MAAM,GAAG2lB,QAAQ,GAAG8b,UAAU;MACvC;MACA,IAAIC,IAAI,GAAGD,UAAU,EAAE;QACrB,MAAM,IAAIV,QAAQ,CAAC,wBAAwB,CAAC;MAC9C;MACA,MAAM1tB,UAAU,GAAGquB,IAAI,GAAGD,UAAU;MACpC,IAAIG,cAAc,GAAG,IAAI;MACzB,QAAQD,IAAI;QACV,KAAK,UAAU;UACbC,cAAc,GAAG,KAAK;UACtB;QACF,KAAK,UAAU;UAEb,MAAMC,MAAM,GAAGtuB,IAAI,CAACoS,QAAQ,CAAC;UAC7B,IAAIkc,MAAM,KAAK,CAAC,EAAE;YAEhB,MAAMC,UAAU,GAAGttB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC;YACjD,QAAQmc,UAAU;cAChB,KAAK,EAAE;cACP,KAAK,EAAE;cACP,KAAK,EAAE;gBACL;cACF;gBACEziC,SAAI,CAAC,qBAAqB,GAAGyiC,UAAU,CAAC;gBACxC;YACJ;UACF,CAAC,MAAM,IAAID,MAAM,KAAK,CAAC,EAAE;YACvB5iC,IAAI,CAAC,2BAA2B,CAAC;UACnC;UACA;QACF,KAAK,UAAU;UACb,IAAI,CAACuiC,eAAe,CAACjuB,IAAI,EAAEoS,QAAQ,EAAEA,QAAQ,GAAGtS,UAAU,CAAC;UAC3D;QACF,KAAK,UAAU;UACb,IAAImB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,CAAC,KAAK,UAAU,EAAE;YAC7CtmB,SAAI,CAAC,uBAAuB,CAAC;UAC/B;UACA;QAEF,KAAK,UAAU;QACf,KAAK,UAAU;QACf,KAAK,UAAU;QACf,KAAK,UAAU;QACf,KAAK,UAAU;UACb;QACF;UACE,MAAM0iC,UAAU,GAAGv/B,MAAM,CAACC,YAAY,CACnCk/B,IAAI,IAAI,EAAE,GAAI,IAAI,EAClBA,IAAI,IAAI,EAAE,GAAI,IAAI,EAClBA,IAAI,IAAI,CAAC,GAAI,IAAI,EAClBA,IAAI,GAAG,IACT,CAAC;UACDtiC,SAAI,CAAE,2BAA0BsiC,IAAK,KAAII,UAAW,IAAG,CAAC;UACxD;MACJ;MACA,IAAIH,cAAc,EAAE;QAClBjc,QAAQ,IAAItS,UAAU;MACxB;IACF;EACF;EAEA2uB,oBAAoBA,CAACC,MAAM,EAAE;IAC3B,IAAIC,OAAO,GAAGD,MAAM,CAAC5wB,OAAO,CAAC,CAAC;IAC9B,OAAO6wB,OAAO,IAAI,CAAC,EAAE;MACnB,MAAMC,OAAO,GAAGD,OAAO;MACvBA,OAAO,GAAGD,MAAM,CAAC5wB,OAAO,CAAC,CAAC;MAC1B,MAAMzP,IAAI,GAAIugC,OAAO,IAAI,CAAC,GAAID,OAAO;MAErC,IAAItgC,IAAI,KAAK,MAAM,EAAE;QACnBqgC,MAAM,CAAC5vB,IAAI,CAAC,CAAC,CAAC;QACd,MAAM+vB,IAAI,GAAGH,MAAM,CAACnwB,QAAQ,CAAC,CAAC,KAAK,CAAC;QACpC,MAAMuwB,IAAI,GAAGJ,MAAM,CAACnwB,QAAQ,CAAC,CAAC,KAAK,CAAC;QACpC,MAAMwwB,KAAK,GAAGL,MAAM,CAACnwB,QAAQ,CAAC,CAAC,KAAK,CAAC;QACrC,MAAMywB,KAAK,GAAGN,MAAM,CAACnwB,QAAQ,CAAC,CAAC,KAAK,CAAC;QACrCmwB,MAAM,CAAC5vB,IAAI,CAAC,EAAE,CAAC;QACf,MAAMmwB,IAAI,GAAGP,MAAM,CAACtwB,SAAS,CAAC,CAAC;QAC/B,IAAI,CAACmH,KAAK,GAAGspB,IAAI,GAAGE,KAAK;QACzB,IAAI,CAACvpB,MAAM,GAAGspB,IAAI,GAAGE,KAAK;QAC1B,IAAI,CAACpE,eAAe,GAAGqE,IAAI;QAE3B,IAAI,CAACC,gBAAgB,GAAG,CAAC;QACzB;MACF;IACF;IACA,MAAM,IAAI1B,QAAQ,CAAC,oCAAoC,CAAC;EAC1D;EAEAS,eAAeA,CAACjuB,IAAI,EAAEd,KAAK,EAAEN,GAAG,EAAE;IAChC,MAAMuwB,OAAO,GAAG,CAAC,CAAC;IAClB,IAAIC,YAAY,GAAG,KAAK;IACxB,IAAI;MACF,IAAIhd,QAAQ,GAAGlT,KAAK;MACpB,OAAOkT,QAAQ,GAAG,CAAC,GAAGxT,GAAG,EAAE;QACzB,MAAMvQ,IAAI,GAAG2S,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;QACvCA,QAAQ,IAAI,CAAC;QAEb,IAAI3lB,MAAM,GAAG,CAAC;UACZigB,CAAC;UACD2iB,IAAI;UACJC,MAAM;UACNC,SAAS;UACTC,eAAe;UACfC,IAAI;QACN,QAAQphC,IAAI;UACV,KAAK,MAAM;YACT8gC,OAAO,CAACO,UAAU,GAAG,IAAI;YACzB;UACF,KAAK,MAAM;YACT;UACF,KAAK,MAAM;YACTjjC,MAAM,GAAGuU,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;YACnC,MAAMud,GAAG,GAAG,CAAC,CAAC;YACdA,GAAG,CAACd,IAAI,GAAG5tB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC;YACzCud,GAAG,CAACb,IAAI,GAAG7tB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC;YACzCud,GAAG,CAACZ,KAAK,GAAG9tB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,EAAE,CAAC;YAC3Cud,GAAG,CAACX,KAAK,GAAG/tB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,EAAE,CAAC;YAC3Cud,GAAG,CAACC,KAAK,GAAG3uB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,EAAE,CAAC;YAC3Cud,GAAG,CAACE,KAAK,GAAG5uB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,EAAE,CAAC;YAC3Cud,GAAG,CAACG,MAAM,GAAG7uB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,EAAE,CAAC;YAC5Cud,GAAG,CAACI,MAAM,GAAG9uB,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,EAAE,CAAC;YAC5C,MAAMwY,eAAe,GAAG5pB,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,GAAG,EAAE,CAAC;YACvDud,GAAG,CAACV,IAAI,GAAGrE,eAAe;YAC1B,MAAM5H,UAAU,GAAG,EAAE;YACrBtW,CAAC,GAAG0F,QAAQ,GAAG,EAAE;YACjB,KAAK,IAAI/iB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGu7B,eAAe,EAAEv7B,CAAC,EAAE,EAAE;cACxC,MAAMmS,SAAS,GAAG;gBAChBuiB,SAAS,EAAE,CAAC/jB,IAAI,CAAC0M,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;gBAC/BsjB,QAAQ,EAAE,CAAC,EAAEhwB,IAAI,CAAC0M,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC5BujB,KAAK,EAAEjwB,IAAI,CAAC0M,CAAC,GAAG,CAAC,CAAC;gBAClBwjB,KAAK,EAAElwB,IAAI,CAAC0M,CAAC,GAAG,CAAC;cACnB,CAAC;cACDA,CAAC,IAAI,CAAC;cACNyjB,4BAA4B,CAAC3uB,SAAS,EAAEmuB,GAAG,CAAC;cAC5C3M,UAAU,CAACrzB,IAAI,CAAC6R,SAAS,CAAC;YAC5B;YACA2tB,OAAO,CAACiB,GAAG,GAAGT,GAAG;YACjBR,OAAO,CAACnM,UAAU,GAAGA,UAAU;YAC/BqN,kBAAkB,CAAClB,OAAO,EAAEnM,UAAU,CAAC;YACvCmM,OAAO,CAACmB,GAAG,GAAG,EAAE;YAChBnB,OAAO,CAACoB,GAAG,GAAG,EAAE;YAChB;UACF,KAAK,MAAM;YACT9jC,MAAM,GAAGuU,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;YACnC,MAAMoe,GAAG,GAAG,CAAC,CAAC;YACd9jB,CAAC,GAAG0F,QAAQ,GAAG,CAAC;YAChBid,IAAI,GAAGrvB,IAAI,CAAC0M,CAAC,EAAE,CAAC;YAChB,QAAQ2iB,IAAI,GAAG,IAAI;cACjB,KAAK,CAAC;gBACJE,SAAS,GAAG,CAAC;gBACbC,eAAe,GAAG,IAAI;gBACtB;cACF,KAAK,CAAC;gBACJD,SAAS,GAAG,EAAE;gBACdC,eAAe,GAAG,KAAK;gBACvB;cACF,KAAK,CAAC;gBACJD,SAAS,GAAG,EAAE;gBACdC,eAAe,GAAG,IAAI;gBACtB;cACF;gBACE,MAAM,IAAIxjC,KAAK,CAAC,qBAAqB,GAAGqjC,IAAI,CAAC;YACjD;YACAmB,GAAG,CAACC,cAAc,GAAGlB,SAAS,KAAK,CAAC;YACpCiB,GAAG,CAAChB,eAAe,GAAGA,eAAe;YACrCgB,GAAG,CAACE,SAAS,GAAGrB,IAAI,IAAI,CAAC;YACzBC,MAAM,GAAG,EAAE;YACX,OAAO5iB,CAAC,GAAGjgB,MAAM,GAAG2lB,QAAQ,EAAE;cAC5B,MAAMue,KAAK,GAAG,CAAC,CAAC;cAChB,IAAIpB,SAAS,KAAK,CAAC,EAAE;gBACnBoB,KAAK,CAACC,OAAO,GAAG5wB,IAAI,CAAC0M,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC9BikB,KAAK,CAACE,EAAE,GAAG,CAAC;cACd,CAAC,MAAM;gBACLF,KAAK,CAACC,OAAO,GAAG5wB,IAAI,CAAC0M,CAAC,CAAC,IAAI,CAAC;gBAC5BikB,KAAK,CAACE,EAAE,GAAI,CAAC7wB,IAAI,CAAC0M,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAI1M,IAAI,CAAC0M,CAAC,GAAG,CAAC,CAAC;gBAC/CA,CAAC,IAAI,CAAC;cACR;cACA4iB,MAAM,CAAC3/B,IAAI,CAACghC,KAAK,CAAC;YACpB;YACAH,GAAG,CAACM,MAAM,GAAGxB,MAAM;YACnB,IAAIH,OAAO,CAACO,UAAU,EAAE;cACtBP,OAAO,CAAC4B,GAAG,GAAGP,GAAG;YACnB,CAAC,MAAM;cACLrB,OAAO,CAAC6B,WAAW,CAACD,GAAG,GAAGP,GAAG;cAC7BrB,OAAO,CAAC6B,WAAW,CAACV,GAAG,GAAG,EAAE;YAC9B;YACA;UACF,KAAK,MAAM;YACT7jC,MAAM,GAAGuU,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;YACnC,MAAM6e,GAAG,GAAG,CAAC,CAAC;YACdvkB,CAAC,GAAG0F,QAAQ,GAAG,CAAC;YAChB,IAAI8e,IAAI;YACR,IAAI/B,OAAO,CAACiB,GAAG,CAACnB,IAAI,GAAG,GAAG,EAAE;cAC1BiC,IAAI,GAAGlxB,IAAI,CAAC0M,CAAC,EAAE,CAAC;YAClB,CAAC,MAAM;cACLwkB,IAAI,GAAGlwB,UAAU,CAAChB,IAAI,EAAE0M,CAAC,CAAC;cAC1BA,CAAC,IAAI,CAAC;YACR;YACA2iB,IAAI,GAAGrvB,IAAI,CAAC0M,CAAC,EAAE,CAAC;YAChB,QAAQ2iB,IAAI,GAAG,IAAI;cACjB,KAAK,CAAC;gBACJE,SAAS,GAAG,CAAC;gBACbC,eAAe,GAAG,IAAI;gBACtB;cACF,KAAK,CAAC;gBACJD,SAAS,GAAG,EAAE;gBACdC,eAAe,GAAG,KAAK;gBACvB;cACF,KAAK,CAAC;gBACJD,SAAS,GAAG,EAAE;gBACdC,eAAe,GAAG,IAAI;gBACtB;cACF;gBACE,MAAM,IAAIxjC,KAAK,CAAC,qBAAqB,GAAGqjC,IAAI,CAAC;YACjD;YACA4B,GAAG,CAACR,cAAc,GAAGlB,SAAS,KAAK,CAAC;YACpC0B,GAAG,CAACzB,eAAe,GAAGA,eAAe;YACrCyB,GAAG,CAACP,SAAS,GAAGrB,IAAI,IAAI,CAAC;YACzBC,MAAM,GAAG,EAAE;YACX,OAAO5iB,CAAC,GAAGjgB,MAAM,GAAG2lB,QAAQ,EAAE;cAC5B,MAAMue,KAAK,GAAG,CAAC,CAAC;cAChB,IAAIpB,SAAS,KAAK,CAAC,EAAE;gBACnBoB,KAAK,CAACC,OAAO,GAAG5wB,IAAI,CAAC0M,CAAC,EAAE,CAAC,IAAI,CAAC;gBAC9BikB,KAAK,CAACE,EAAE,GAAG,CAAC;cACd,CAAC,MAAM;gBACLF,KAAK,CAACC,OAAO,GAAG5wB,IAAI,CAAC0M,CAAC,CAAC,IAAI,CAAC;gBAC5BikB,KAAK,CAACE,EAAE,GAAI,CAAC7wB,IAAI,CAAC0M,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAI1M,IAAI,CAAC0M,CAAC,GAAG,CAAC,CAAC;gBAC/CA,CAAC,IAAI,CAAC;cACR;cACA4iB,MAAM,CAAC3/B,IAAI,CAACghC,KAAK,CAAC;YACpB;YACAM,GAAG,CAACH,MAAM,GAAGxB,MAAM;YACnB,IAAIH,OAAO,CAACO,UAAU,EAAE;cACtBP,OAAO,CAACmB,GAAG,CAACY,IAAI,CAAC,GAAGD,GAAG;YACzB,CAAC,MAAM;cACL9B,OAAO,CAAC6B,WAAW,CAACV,GAAG,CAACY,IAAI,CAAC,GAAGD,GAAG;YACrC;YACA;UACF,KAAK,MAAM;YACTxkC,MAAM,GAAGuU,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;YACnC,MAAM+e,GAAG,GAAG,CAAC,CAAC;YACdzkB,CAAC,GAAG0F,QAAQ,GAAG,CAAC;YAChB,MAAMgf,IAAI,GAAGpxB,IAAI,CAAC0M,CAAC,EAAE,CAAC;YACtBykB,GAAG,CAACE,+BAA+B,GAAG,CAAC,EAAED,IAAI,GAAG,CAAC,CAAC;YAClDD,GAAG,CAACG,aAAa,GAAG,CAAC,EAAEF,IAAI,GAAG,CAAC,CAAC;YAChCD,GAAG,CAACI,aAAa,GAAG,CAAC,EAAEH,IAAI,GAAG,CAAC,CAAC;YAChCD,GAAG,CAACK,gBAAgB,GAAGxxB,IAAI,CAAC0M,CAAC,EAAE,CAAC;YAChCykB,GAAG,CAACM,WAAW,GAAGzwB,UAAU,CAAChB,IAAI,EAAE0M,CAAC,CAAC;YACrCA,CAAC,IAAI,CAAC;YACNykB,GAAG,CAACO,0BAA0B,GAAG1xB,IAAI,CAAC0M,CAAC,EAAE,CAAC;YAE1CykB,GAAG,CAACQ,wBAAwB,GAAG3xB,IAAI,CAAC0M,CAAC,EAAE,CAAC;YACxCykB,GAAG,CAACS,GAAG,GAAG,CAAC5xB,IAAI,CAAC0M,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC;YAC/BykB,GAAG,CAACU,GAAG,GAAG,CAAC7xB,IAAI,CAAC0M,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC;YAC/B,MAAMolB,UAAU,GAAG9xB,IAAI,CAAC0M,CAAC,EAAE,CAAC;YAC5BykB,GAAG,CAACY,+BAA+B,GAAG,CAAC,EAAED,UAAU,GAAG,CAAC,CAAC;YACxDX,GAAG,CAACa,yBAAyB,GAAG,CAAC,EAAEF,UAAU,GAAG,CAAC,CAAC;YAClDX,GAAG,CAACc,2BAA2B,GAAG,CAAC,EAAEH,UAAU,GAAG,CAAC,CAAC;YACpDX,GAAG,CAACe,gBAAgB,GAAG,CAAC,EAAEJ,UAAU,GAAG,CAAC,CAAC;YACzCX,GAAG,CAACgB,sBAAsB,GAAG,CAAC,EAAEL,UAAU,GAAG,EAAE,CAAC;YAChDX,GAAG,CAACiB,sBAAsB,GAAG,CAAC,EAAEN,UAAU,GAAG,EAAE,CAAC;YAChDX,GAAG,CAACkB,wBAAwB,GAAGryB,IAAI,CAAC0M,CAAC,EAAE,CAAC;YACxC,IAAIykB,GAAG,CAACE,+BAA+B,EAAE;cACvC,MAAMiB,cAAc,GAAG,EAAE;cACzB,OAAO5lB,CAAC,GAAGjgB,MAAM,GAAG2lB,QAAQ,EAAE;gBAC5B,MAAMmgB,aAAa,GAAGvyB,IAAI,CAAC0M,CAAC,EAAE,CAAC;gBAC/B4lB,cAAc,CAAC3iC,IAAI,CAAC;kBAClB6iC,GAAG,EAAED,aAAa,GAAG,GAAG;kBACxBE,GAAG,EAAEF,aAAa,IAAI;gBACxB,CAAC,CAAC;cACJ;cACApB,GAAG,CAACmB,cAAc,GAAGA,cAAc;YACrC;YACA,MAAMI,WAAW,GAAG,EAAE;YACtB,IAAIvB,GAAG,CAACY,+BAA+B,EAAE;cACvCW,WAAW,CAAC/iC,IAAI,CAAC,iCAAiC,CAAC;YACrD;YACA,IAAIwhC,GAAG,CAACc,2BAA2B,EAAE;cACnCS,WAAW,CAAC/iC,IAAI,CAAC,6BAA6B,CAAC;YACjD;YACA,IAAIwhC,GAAG,CAACe,gBAAgB,EAAE;cACxBQ,WAAW,CAAC/iC,IAAI,CAAC,kBAAkB,CAAC;YACtC;YACA,IAAIwhC,GAAG,CAACgB,sBAAsB,EAAE;cAC9BO,WAAW,CAAC/iC,IAAI,CAAC,wBAAwB,CAAC;YAC5C;YACA,IAAI+iC,WAAW,CAACjmC,MAAM,GAAG,CAAC,EAAE;cAC1B2iC,YAAY,GAAG,IAAI;cACnBtjC,SAAI,CAAE,iCAAgC4mC,WAAW,CAAC9iC,IAAI,CAAC,IAAI,CAAE,IAAG,CAAC;YACnE;YACA,IAAIu/B,OAAO,CAACO,UAAU,EAAE;cACtBP,OAAO,CAACwD,GAAG,GAAGxB,GAAG;YACnB,CAAC,MAAM;cACLhC,OAAO,CAAC6B,WAAW,CAAC2B,GAAG,GAAGxB,GAAG;cAC7BhC,OAAO,CAAC6B,WAAW,CAACT,GAAG,GAAG,EAAE;YAC9B;YACA;UACF,KAAK,MAAM;YACT9jC,MAAM,GAAGuU,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;YACnCqd,IAAI,GAAG,CAAC,CAAC;YACTA,IAAI,CAACpQ,KAAK,GAAGre,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC;YAC3Cqd,IAAI,CAAChjC,MAAM,GAAGwU,UAAU,CAACjB,IAAI,EAAEoS,QAAQ,GAAG,CAAC,CAAC;YAC5Cqd,IAAI,CAACxpB,OAAO,GAAGwpB,IAAI,CAAChjC,MAAM,GAAG2lB,QAAQ,GAAG,CAAC;YACzCqd,IAAI,CAACmD,SAAS,GAAG5yB,IAAI,CAACoS,QAAQ,GAAG,CAAC,CAAC;YACnCqd,IAAI,CAACoD,UAAU,GAAG7yB,IAAI,CAACoS,QAAQ,GAAG,CAAC,CAAC;YAEpC+c,OAAO,CAACO,UAAU,GAAG,KAAK;YAC1B,IAAID,IAAI,CAACmD,SAAS,KAAK,CAAC,EAAE;cAExBnD,IAAI,CAACkD,GAAG,GAAGxD,OAAO,CAACwD,GAAG;cACtBlD,IAAI,CAACc,GAAG,GAAGpB,OAAO,CAACoB,GAAG,CAACn9B,KAAK,CAAC,CAAC,CAAC;cAC/Bq8B,IAAI,CAACsB,GAAG,GAAG5B,OAAO,CAAC4B,GAAG;cACtBtB,IAAI,CAACa,GAAG,GAAGnB,OAAO,CAACmB,GAAG,CAACl9B,KAAK,CAAC,CAAC,CAAC;YACjC;YACA+7B,OAAO,CAAC6B,WAAW,GAAGvB,IAAI;YAC1B;UACF,KAAK,MAAM;YACTA,IAAI,GAAGN,OAAO,CAAC6B,WAAW;YAC1B,IAAIvB,IAAI,CAACmD,SAAS,KAAK,CAAC,EAAE;cACxBE,cAAc,CAAC3D,OAAO,EAAEM,IAAI,CAACpQ,KAAK,CAAC;cACnC0T,YAAY,CAAC5D,OAAO,CAAC;YACvB;YAGA1iC,MAAM,GAAGgjC,IAAI,CAACxpB,OAAO,GAAGmM,QAAQ;YAChC4gB,gBAAgB,CAAC7D,OAAO,EAAEnvB,IAAI,EAAEoS,QAAQ,EAAE3lB,MAAM,CAAC;YACjD;UACF,KAAK,MAAM;YACTX,SAAI,CAAC,uDAAuD,CAAC;UAE/D,KAAK,MAAM;UACX,KAAK,MAAM;UACX,KAAK,MAAM;UACX,KAAK,MAAM;YACTW,MAAM,GAAGuU,UAAU,CAAChB,IAAI,EAAEoS,QAAQ,CAAC;YAEnC;UACF;YACE,MAAM,IAAIpmB,KAAK,CAAC,2BAA2B,GAAGqC,IAAI,CAACyD,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpE;QACAsgB,QAAQ,IAAI3lB,MAAM;MACpB;IACF,CAAC,CAAC,OAAOy4B,CAAC,EAAE;MACV,IAAIkK,YAAY,IAAI,IAAI,CAACrB,oBAAoB,EAAE;QAC7C,MAAM,IAAIP,QAAQ,CAACtI,CAAC,CAACl3B,OAAO,CAAC;MAC/B,CAAC,MAAM;QACLlC,SAAI,CAAE,iCAAgCo5B,CAAC,CAACl3B,OAAQ,IAAG,CAAC;MACtD;IACF;IACA,IAAI,CAACilC,KAAK,GAAGC,mBAAmB,CAAC/D,OAAO,CAAC;IACzC,IAAI,CAAC5pB,KAAK,GAAG4pB,OAAO,CAACiB,GAAG,CAACvB,IAAI,GAAGM,OAAO,CAACiB,GAAG,CAACrB,KAAK;IACjD,IAAI,CAACvpB,MAAM,GAAG2pB,OAAO,CAACiB,GAAG,CAACtB,IAAI,GAAGK,OAAO,CAACiB,GAAG,CAACpB,KAAK;IAClD,IAAI,CAACpE,eAAe,GAAGuE,OAAO,CAACiB,GAAG,CAACnB,IAAI;EACzC;AACF;AAEA,SAASkB,4BAA4BA,CAAC3uB,SAAS,EAAEmuB,GAAG,EAAE;EAEpDnuB,SAAS,CAAC3M,EAAE,GAAGtF,IAAI,CAACsR,IAAI,CAAC8uB,GAAG,CAACZ,KAAK,GAAGvtB,SAAS,CAACyuB,KAAK,CAAC;EACrDzuB,SAAS,CAAC1M,EAAE,GAAGvF,IAAI,CAACsR,IAAI,CAAC8uB,GAAG,CAACd,IAAI,GAAGrtB,SAAS,CAACyuB,KAAK,CAAC;EACpDzuB,SAAS,CAACvM,EAAE,GAAG1F,IAAI,CAACsR,IAAI,CAAC8uB,GAAG,CAACX,KAAK,GAAGxtB,SAAS,CAAC0uB,KAAK,CAAC;EACrD1uB,SAAS,CAACtM,EAAE,GAAG3F,IAAI,CAACsR,IAAI,CAAC8uB,GAAG,CAACb,IAAI,GAAGttB,SAAS,CAAC0uB,KAAK,CAAC;EACpD1uB,SAAS,CAAC+D,KAAK,GAAG/D,SAAS,CAAC1M,EAAE,GAAG0M,SAAS,CAAC3M,EAAE;EAC7C2M,SAAS,CAACgE,MAAM,GAAGhE,SAAS,CAACtM,EAAE,GAAGsM,SAAS,CAACvM,EAAE;AAChD;AACA,SAASo7B,kBAAkBA,CAAClB,OAAO,EAAEnM,UAAU,EAAE;EAC/C,MAAM2M,GAAG,GAAGR,OAAO,CAACiB,GAAG;EAEvB,MAAM6C,KAAK,GAAG,EAAE;EAChB,IAAIxD,IAAI;EACR,MAAM0D,SAAS,GAAG5jC,IAAI,CAACsR,IAAI,CAAC,CAAC8uB,GAAG,CAACd,IAAI,GAAGc,GAAG,CAACG,MAAM,IAAIH,GAAG,CAACC,KAAK,CAAC;EAChE,MAAMwD,SAAS,GAAG7jC,IAAI,CAACsR,IAAI,CAAC,CAAC8uB,GAAG,CAACb,IAAI,GAAGa,GAAG,CAACI,MAAM,IAAIJ,GAAG,CAACE,KAAK,CAAC;EAChE,KAAK,IAAIxU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+X,SAAS,EAAE/X,CAAC,EAAE,EAAE;IAClC,KAAK,IAAI1oB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwgC,SAAS,EAAExgC,CAAC,EAAE,EAAE;MAClC88B,IAAI,GAAG,CAAC,CAAC;MACTA,IAAI,CAAC4D,GAAG,GAAG9jC,IAAI,CAACgE,GAAG,CAACo8B,GAAG,CAACG,MAAM,GAAGn9B,CAAC,GAAGg9B,GAAG,CAACC,KAAK,EAAED,GAAG,CAACZ,KAAK,CAAC;MAC1DU,IAAI,CAAC6D,GAAG,GAAG/jC,IAAI,CAACgE,GAAG,CAACo8B,GAAG,CAACI,MAAM,GAAG1U,CAAC,GAAGsU,GAAG,CAACE,KAAK,EAAEF,GAAG,CAACX,KAAK,CAAC;MAC1DS,IAAI,CAAC8D,GAAG,GAAGhkC,IAAI,CAACC,GAAG,CAACmgC,GAAG,CAACG,MAAM,GAAG,CAACn9B,CAAC,GAAG,CAAC,IAAIg9B,GAAG,CAACC,KAAK,EAAED,GAAG,CAACd,IAAI,CAAC;MAC/DY,IAAI,CAAC+D,GAAG,GAAGjkC,IAAI,CAACC,GAAG,CAACmgC,GAAG,CAACI,MAAM,GAAG,CAAC1U,CAAC,GAAG,CAAC,IAAIsU,GAAG,CAACE,KAAK,EAAEF,GAAG,CAACb,IAAI,CAAC;MAC/DW,IAAI,CAAClqB,KAAK,GAAGkqB,IAAI,CAAC8D,GAAG,GAAG9D,IAAI,CAAC4D,GAAG;MAChC5D,IAAI,CAACjqB,MAAM,GAAGiqB,IAAI,CAAC+D,GAAG,GAAG/D,IAAI,CAAC6D,GAAG;MACjC7D,IAAI,CAACzM,UAAU,GAAG,EAAE;MACpBiQ,KAAK,CAACtjC,IAAI,CAAC8/B,IAAI,CAAC;IAClB;EACF;EACAN,OAAO,CAAC8D,KAAK,GAAGA,KAAK;EAErB,MAAMrI,eAAe,GAAG+E,GAAG,CAACV,IAAI;EAChC,KAAK,IAAI5/B,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGg0B,eAAe,EAAEv7B,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;IACjD,MAAMmS,SAAS,GAAGwhB,UAAU,CAAC3zB,CAAC,CAAC;IAC/B,KAAK,IAAIqd,CAAC,GAAG,CAAC,EAAE+U,EAAE,GAAGwR,KAAK,CAACxmC,MAAM,EAAEigB,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAE;MAC9C,MAAM+mB,aAAa,GAAG,CAAC,CAAC;MACxBhE,IAAI,GAAGwD,KAAK,CAACvmB,CAAC,CAAC;MACf+mB,aAAa,CAACC,IAAI,GAAGnkC,IAAI,CAACsR,IAAI,CAAC4uB,IAAI,CAAC4D,GAAG,GAAG7xB,SAAS,CAACyuB,KAAK,CAAC;MAC1DwD,aAAa,CAACE,IAAI,GAAGpkC,IAAI,CAACsR,IAAI,CAAC4uB,IAAI,CAAC6D,GAAG,GAAG9xB,SAAS,CAAC0uB,KAAK,CAAC;MAC1DuD,aAAa,CAACG,IAAI,GAAGrkC,IAAI,CAACsR,IAAI,CAAC4uB,IAAI,CAAC8D,GAAG,GAAG/xB,SAAS,CAACyuB,KAAK,CAAC;MAC1DwD,aAAa,CAACI,IAAI,GAAGtkC,IAAI,CAACsR,IAAI,CAAC4uB,IAAI,CAAC+D,GAAG,GAAGhyB,SAAS,CAAC0uB,KAAK,CAAC;MAC1DuD,aAAa,CAACluB,KAAK,GAAGkuB,aAAa,CAACG,IAAI,GAAGH,aAAa,CAACC,IAAI;MAC7DD,aAAa,CAACjuB,MAAM,GAAGiuB,aAAa,CAACI,IAAI,GAAGJ,aAAa,CAACE,IAAI;MAC9DlE,IAAI,CAACzM,UAAU,CAAC3zB,CAAC,CAAC,GAAGokC,aAAa;IACpC;EACF;AACF;AACA,SAASK,mBAAmBA,CAAC3E,OAAO,EAAE3tB,SAAS,EAAEtP,CAAC,EAAE;EAClD,MAAM6hC,QAAQ,GAAGvyB,SAAS,CAACwyB,qBAAqB;EAChD,MAAMrpB,MAAM,GAAG,CAAC,CAAC;EACjB,IAAI,CAACopB,QAAQ,CAAC1C,+BAA+B,EAAE;IAC7C1mB,MAAM,CAAC6nB,GAAG,GAAG,EAAE;IACf7nB,MAAM,CAAC8nB,GAAG,GAAG,EAAE;EACjB,CAAC,MAAM;IACL9nB,MAAM,CAAC6nB,GAAG,GAAGuB,QAAQ,CAACzB,cAAc,CAACpgC,CAAC,CAAC,CAACsgC,GAAG;IAC3C7nB,MAAM,CAAC8nB,GAAG,GAAGsB,QAAQ,CAACzB,cAAc,CAACpgC,CAAC,CAAC,CAACugC,GAAG;EAC7C;EAEA9nB,MAAM,CAACspB,IAAI,GACT/hC,CAAC,GAAG,CAAC,GACD3C,IAAI,CAACC,GAAG,CAACukC,QAAQ,CAACnC,GAAG,EAAEjnB,MAAM,CAAC6nB,GAAG,GAAG,CAAC,CAAC,GACtCjjC,IAAI,CAACC,GAAG,CAACukC,QAAQ,CAACnC,GAAG,EAAEjnB,MAAM,CAAC6nB,GAAG,CAAC;EACxC7nB,MAAM,CAACupB,IAAI,GACThiC,CAAC,GAAG,CAAC,GACD3C,IAAI,CAACC,GAAG,CAACukC,QAAQ,CAAClC,GAAG,EAAElnB,MAAM,CAAC8nB,GAAG,GAAG,CAAC,CAAC,GACtCljC,IAAI,CAACC,GAAG,CAACukC,QAAQ,CAAClC,GAAG,EAAElnB,MAAM,CAAC8nB,GAAG,CAAC;EACxC,OAAO9nB,MAAM;AACf;AACA,SAASwpB,cAAcA,CAAChF,OAAO,EAAEiF,UAAU,EAAEC,UAAU,EAAE;EAEvD,MAAMC,aAAa,GAAG,CAAC,IAAID,UAAU,CAAC7B,GAAG;EACzC,MAAM+B,cAAc,GAAG,CAAC,IAAIF,UAAU,CAAC5B,GAAG;EAe1C,MAAM+B,SAAS,GAAGJ,UAAU,CAACK,QAAQ,KAAK,CAAC;EAC3C,MAAMC,sBAAsB,GAAG,CAAC,IAAKL,UAAU,CAAC7B,GAAG,IAAIgC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAE;EAC3E,MAAMG,uBAAuB,GAAG,CAAC,IAAKN,UAAU,CAAC5B,GAAG,IAAI+B,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAE;EAC5E,MAAMI,gBAAgB,GACpBR,UAAU,CAACS,IAAI,GAAGT,UAAU,CAACU,IAAI,GAC7BvlC,IAAI,CAACsR,IAAI,CAACuzB,UAAU,CAACS,IAAI,GAAGP,aAAa,CAAC,GAC1C/kC,IAAI,CAACqJ,KAAK,CAACw7B,UAAU,CAACU,IAAI,GAAGR,aAAa,CAAC,GAC3C,CAAC;EACP,MAAMS,gBAAgB,GACpBX,UAAU,CAACY,IAAI,GAAGZ,UAAU,CAACa,IAAI,GAC7B1lC,IAAI,CAACsR,IAAI,CAACuzB,UAAU,CAACY,IAAI,GAAGT,cAAc,CAAC,GAC3ChlC,IAAI,CAACqJ,KAAK,CAACw7B,UAAU,CAACa,IAAI,GAAGV,cAAc,CAAC,GAC5C,CAAC;EACP,MAAMW,YAAY,GAAGN,gBAAgB,GAAGG,gBAAgB;EAExDX,UAAU,CAACe,kBAAkB,GAAG;IAC9Bb,aAAa;IACbC,cAAc;IACdK,gBAAgB;IAChBG,gBAAgB;IAChBG,YAAY;IACZR,sBAAsB;IACtBC;EACF,CAAC;AACH;AACA,SAASS,eAAeA,CAACjG,OAAO,EAAEkG,OAAO,EAAEhB,UAAU,EAAE;EAErD,MAAMJ,IAAI,GAAGI,UAAU,CAACJ,IAAI;EAC5B,MAAMC,IAAI,GAAGG,UAAU,CAACH,IAAI;EAC5B,MAAMoB,cAAc,GAAG,CAAC,IAAIrB,IAAI;EAChC,MAAMsB,eAAe,GAAG,CAAC,IAAIrB,IAAI;EACjC,MAAMsB,IAAI,GAAGH,OAAO,CAACI,IAAI,IAAIxB,IAAI;EACjC,MAAMyB,IAAI,GAAGL,OAAO,CAACM,IAAI,IAAIzB,IAAI;EACjC,MAAM0B,IAAI,GAAIP,OAAO,CAACQ,IAAI,GAAGP,cAAc,GAAG,CAAC,IAAKrB,IAAI;EACxD,MAAM6B,IAAI,GAAIT,OAAO,CAACU,IAAI,GAAGR,eAAe,GAAG,CAAC,IAAKrB,IAAI;EACzD,MAAMiB,kBAAkB,GAAGE,OAAO,CAACjB,UAAU,CAACe,kBAAkB;EAChE,MAAMa,UAAU,GAAG,EAAE;EACrB,MAAMC,SAAS,GAAG,EAAE;EACpB,IAAI5mC,CAAC,EAAEqd,CAAC,EAAEwpB,SAAS,EAAEC,cAAc;EACnC,KAAKzpB,CAAC,GAAGgpB,IAAI,EAAEhpB,CAAC,GAAGopB,IAAI,EAAEppB,CAAC,EAAE,EAAE;IAC5B,KAAKrd,CAAC,GAAGmmC,IAAI,EAAEnmC,CAAC,GAAGumC,IAAI,EAAEvmC,CAAC,EAAE,EAAE;MAC5B6mC,SAAS,GAAG;QACVE,GAAG,EAAE/mC,CAAC;QACNgnC,GAAG,EAAE3pB,CAAC;QACN+oB,IAAI,EAAEH,cAAc,GAAGjmC,CAAC;QACxBsmC,IAAI,EAAEJ,eAAe,GAAG7oB,CAAC;QACzBmpB,IAAI,EAAEP,cAAc,IAAIjmC,CAAC,GAAG,CAAC,CAAC;QAC9B0mC,IAAI,EAAER,eAAe,IAAI7oB,CAAC,GAAG,CAAC;MAChC,CAAC;MAEDwpB,SAAS,CAACI,KAAK,GAAG/mC,IAAI,CAACgE,GAAG,CAAC8hC,OAAO,CAACI,IAAI,EAAES,SAAS,CAACT,IAAI,CAAC;MACxDS,SAAS,CAACK,KAAK,GAAGhnC,IAAI,CAACgE,GAAG,CAAC8hC,OAAO,CAACM,IAAI,EAAEO,SAAS,CAACP,IAAI,CAAC;MACxDO,SAAS,CAACM,KAAK,GAAGjnC,IAAI,CAACC,GAAG,CAAC6lC,OAAO,CAACQ,IAAI,EAAEK,SAAS,CAACL,IAAI,CAAC;MACxDK,SAAS,CAACO,KAAK,GAAGlnC,IAAI,CAACC,GAAG,CAAC6lC,OAAO,CAACU,IAAI,EAAEG,SAAS,CAACH,IAAI,CAAC;MAKxD,MAAMW,EAAE,GAAGnnC,IAAI,CAACqJ,KAAK,CACnB,CAACs9B,SAAS,CAACI,KAAK,GAAGjB,OAAO,CAACI,IAAI,IAC7BN,kBAAkB,CAACT,sBACvB,CAAC;MACD,MAAMiC,EAAE,GAAGpnC,IAAI,CAACqJ,KAAK,CACnB,CAACs9B,SAAS,CAACK,KAAK,GAAGlB,OAAO,CAACM,IAAI,IAC7BR,kBAAkB,CAACR,uBACvB,CAAC;MACDwB,cAAc,GAAGO,EAAE,GAAGC,EAAE,GAAGxB,kBAAkB,CAACP,gBAAgB;MAE9DsB,SAAS,CAACC,cAAc,GAAGA,cAAc;MACzCD,SAAS,CAACU,WAAW,GAAGvB,OAAO,CAACt5C,IAAI;MACpCm6C,SAAS,CAACW,MAAM,GAAG,CAAC;MAEpB,IACEX,SAAS,CAACM,KAAK,IAAIN,SAAS,CAACI,KAAK,IAClCJ,SAAS,CAACO,KAAK,IAAIP,SAAS,CAACK,KAAK,EAClC;QACA;MACF;MACAP,UAAU,CAACrmC,IAAI,CAACumC,SAAS,CAAC;MAE1B,IAAIY,QAAQ,GAAGb,SAAS,CAACE,cAAc,CAAC;MACxC,IAAIW,QAAQ,KAAKpqC,SAAS,EAAE;QAC1B,IAAI2C,CAAC,GAAGynC,QAAQ,CAACC,MAAM,EAAE;UACvBD,QAAQ,CAACC,MAAM,GAAG1nC,CAAC;QACrB,CAAC,MAAM,IAAIA,CAAC,GAAGynC,QAAQ,CAACE,MAAM,EAAE;UAC9BF,QAAQ,CAACE,MAAM,GAAG3nC,CAAC;QACrB;QACA,IAAIqd,CAAC,GAAGoqB,QAAQ,CAACG,MAAM,EAAE;UACvBH,QAAQ,CAACC,MAAM,GAAGrqB,CAAC;QACrB,CAAC,MAAM,IAAIA,CAAC,GAAGoqB,QAAQ,CAACI,MAAM,EAAE;UAC9BJ,QAAQ,CAACI,MAAM,GAAGxqB,CAAC;QACrB;MACF,CAAC,MAAM;QACLupB,SAAS,CAACE,cAAc,CAAC,GAAGW,QAAQ,GAAG;UACrCC,MAAM,EAAE1nC,CAAC;UACT4nC,MAAM,EAAEvqB,CAAC;UACTsqB,MAAM,EAAE3nC,CAAC;UACT6nC,MAAM,EAAExqB;QACV,CAAC;MACH;MACAwpB,SAAS,CAACY,QAAQ,GAAGA,QAAQ;IAC/B;EACF;EACAzB,OAAO,CAAC8B,mBAAmB,GAAG;IAC5B7B,cAAc,EAAErB,IAAI;IACpBsB,eAAe,EAAErB,IAAI;IACrBkD,gBAAgB,EAAExB,IAAI,GAAGJ,IAAI,GAAG,CAAC;IACjC6B,gBAAgB,EAAEvB,IAAI,GAAGJ,IAAI,GAAG;EAClC,CAAC;EACDL,OAAO,CAACW,UAAU,GAAGA,UAAU;EAC/BX,OAAO,CAACY,SAAS,GAAGA,SAAS;AAC/B;AACA,SAASqB,YAAYA,CAAClD,UAAU,EAAE+B,cAAc,EAAEoB,WAAW,EAAE;EAC7D,MAAMC,kBAAkB,GAAG,EAAE;EAE7B,MAAMC,QAAQ,GAAGrD,UAAU,CAACqD,QAAQ;EAEpC,KAAK,IAAIpoC,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAG6gC,QAAQ,CAAChrC,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;IACjD,MAAMgmC,OAAO,GAAGoC,QAAQ,CAACpoC,CAAC,CAAC;IAC3B,MAAM2mC,UAAU,GAAGX,OAAO,CAACW,UAAU;IACrC,KAAK,IAAItpB,CAAC,GAAG,CAAC,EAAE+U,EAAE,GAAGuU,UAAU,CAACvpC,MAAM,EAAEigB,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAE;MACnD,MAAMwpB,SAAS,GAAGF,UAAU,CAACtpB,CAAC,CAAC;MAC/B,IAAIwpB,SAAS,CAACC,cAAc,KAAKA,cAAc,EAAE;QAC/C;MACF;MACAqB,kBAAkB,CAAC7nC,IAAI,CAACumC,SAAS,CAAC;IACpC;EACF;EACA,OAAO;IACLqB,WAAW;IACXvB,UAAU,EAAEwB;EACd,CAAC;AACH;AACA,SAASE,wCAAwCA,CAACvI,OAAO,EAAE;EACzD,MAAMQ,GAAG,GAAGR,OAAO,CAACiB,GAAG;EACvB,MAAMuH,SAAS,GAAGxI,OAAO,CAAC6B,WAAW,CAAC3R,KAAK;EAC3C,MAAMoQ,IAAI,GAAGN,OAAO,CAAC8D,KAAK,CAAC0E,SAAS,CAAC;EACrC,MAAMlG,WAAW,GAAGhC,IAAI,CAACmI,4BAA4B,CAACnG,WAAW;EACjE,MAAM7G,eAAe,GAAG+E,GAAG,CAACV,IAAI;EAChC,IAAI4I,2BAA2B,GAAG,CAAC;EACnC,KAAK,IAAIxc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuP,eAAe,EAAEvP,CAAC,EAAE,EAAE;IACxCwc,2BAA2B,GAAGtoC,IAAI,CAACgE,GAAG,CACpCskC,2BAA2B,EAC3BpI,IAAI,CAACzM,UAAU,CAAC3H,CAAC,CAAC,CAAC2Y,qBAAqB,CAACrC,wBAC3C,CAAC;EACH;EAEA,IAAIpI,CAAC,GAAG,CAAC;IACPr3B,CAAC,GAAG,CAAC;IACL7C,CAAC,GAAG,CAAC;IACL8e,CAAC,GAAG,CAAC;EAEP,IAAI,CAAC2pB,UAAU,GAAG,SAASC,mBAAmBA,CAAA,EAAG;IAE/C,OAAOxO,CAAC,GAAGkI,WAAW,EAAElI,CAAC,EAAE,EAAE;MAC3B,OAAOr3B,CAAC,IAAI2lC,2BAA2B,EAAE3lC,CAAC,EAAE,EAAE;QAC5C,OAAO7C,CAAC,GAAGu7B,eAAe,EAAEv7B,CAAC,EAAE,EAAE;UAC/B,MAAMmS,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAAC3zB,CAAC,CAAC;UACpC,IAAI6C,CAAC,GAAGsP,SAAS,CAACwyB,qBAAqB,CAACrC,wBAAwB,EAAE;YAChE;UACF;UAEA,MAAMyC,UAAU,GAAG5yB,SAAS,CAACw2B,WAAW,CAAC9lC,CAAC,CAAC;UAC3C,MAAMgjC,YAAY,GAAGd,UAAU,CAACe,kBAAkB,CAACD,YAAY;UAC/D,OAAO/mB,CAAC,GAAG+mB,YAAY,GAAI;YACzB,MAAM+C,MAAM,GAAGX,YAAY,CAAClD,UAAU,EAAEjmB,CAAC,EAAEob,CAAC,CAAC;YAC7Cpb,CAAC,EAAE;YACH,OAAO8pB,MAAM;UACf;UACA9pB,CAAC,GAAG,CAAC;QACP;QACA9e,CAAC,GAAG,CAAC;MACP;MACA6C,CAAC,GAAG,CAAC;IACP;IACA,MAAM,IAAIs7B,QAAQ,CAAC,gBAAgB,CAAC;EACtC,CAAC;AACH;AACA,SAAS0K,wCAAwCA,CAAC/I,OAAO,EAAE;EACzD,MAAMQ,GAAG,GAAGR,OAAO,CAACiB,GAAG;EACvB,MAAMuH,SAAS,GAAGxI,OAAO,CAAC6B,WAAW,CAAC3R,KAAK;EAC3C,MAAMoQ,IAAI,GAAGN,OAAO,CAAC8D,KAAK,CAAC0E,SAAS,CAAC;EACrC,MAAMlG,WAAW,GAAGhC,IAAI,CAACmI,4BAA4B,CAACnG,WAAW;EACjE,MAAM7G,eAAe,GAAG+E,GAAG,CAACV,IAAI;EAChC,IAAI4I,2BAA2B,GAAG,CAAC;EACnC,KAAK,IAAIxc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuP,eAAe,EAAEvP,CAAC,EAAE,EAAE;IACxCwc,2BAA2B,GAAGtoC,IAAI,CAACgE,GAAG,CACpCskC,2BAA2B,EAC3BpI,IAAI,CAACzM,UAAU,CAAC3H,CAAC,CAAC,CAAC2Y,qBAAqB,CAACrC,wBAC3C,CAAC;EACH;EAEA,IAAIz/B,CAAC,GAAG,CAAC;IACPq3B,CAAC,GAAG,CAAC;IACLl6B,CAAC,GAAG,CAAC;IACL8e,CAAC,GAAG,CAAC;EAEP,IAAI,CAAC2pB,UAAU,GAAG,SAASC,mBAAmBA,CAAA,EAAG;IAE/C,OAAO7lC,CAAC,IAAI2lC,2BAA2B,EAAE3lC,CAAC,EAAE,EAAE;MAC5C,OAAOq3B,CAAC,GAAGkI,WAAW,EAAElI,CAAC,EAAE,EAAE;QAC3B,OAAOl6B,CAAC,GAAGu7B,eAAe,EAAEv7B,CAAC,EAAE,EAAE;UAC/B,MAAMmS,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAAC3zB,CAAC,CAAC;UACpC,IAAI6C,CAAC,GAAGsP,SAAS,CAACwyB,qBAAqB,CAACrC,wBAAwB,EAAE;YAChE;UACF;UAEA,MAAMyC,UAAU,GAAG5yB,SAAS,CAACw2B,WAAW,CAAC9lC,CAAC,CAAC;UAC3C,MAAMgjC,YAAY,GAAGd,UAAU,CAACe,kBAAkB,CAACD,YAAY;UAC/D,OAAO/mB,CAAC,GAAG+mB,YAAY,GAAI;YACzB,MAAM+C,MAAM,GAAGX,YAAY,CAAClD,UAAU,EAAEjmB,CAAC,EAAEob,CAAC,CAAC;YAC7Cpb,CAAC,EAAE;YACH,OAAO8pB,MAAM;UACf;UACA9pB,CAAC,GAAG,CAAC;QACP;QACA9e,CAAC,GAAG,CAAC;MACP;MACAk6B,CAAC,GAAG,CAAC;IACP;IACA,MAAM,IAAIiE,QAAQ,CAAC,gBAAgB,CAAC;EACtC,CAAC;AACH;AACA,SAAS2K,wCAAwCA,CAAChJ,OAAO,EAAE;EACzD,MAAMQ,GAAG,GAAGR,OAAO,CAACiB,GAAG;EACvB,MAAMuH,SAAS,GAAGxI,OAAO,CAAC6B,WAAW,CAAC3R,KAAK;EAC3C,MAAMoQ,IAAI,GAAGN,OAAO,CAAC8D,KAAK,CAAC0E,SAAS,CAAC;EACrC,MAAMlG,WAAW,GAAGhC,IAAI,CAACmI,4BAA4B,CAACnG,WAAW;EACjE,MAAM7G,eAAe,GAAG+E,GAAG,CAACV,IAAI;EAChC,IAAI1F,CAAC,EAAEr3B,CAAC,EAAE0B,CAAC,EAAEjB,CAAC;EACd,IAAIklC,2BAA2B,GAAG,CAAC;EACnC,KAAKjkC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg3B,eAAe,EAAEh3B,CAAC,EAAE,EAAE;IACpC,MAAM4N,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAACpvB,CAAC,CAAC;IACpCikC,2BAA2B,GAAGtoC,IAAI,CAACgE,GAAG,CACpCskC,2BAA2B,EAC3Br2B,SAAS,CAACwyB,qBAAqB,CAACrC,wBAClC,CAAC;EACH;EACA,MAAMyG,sBAAsB,GAAG,IAAI3oB,UAAU,CAC3CooB,2BAA2B,GAAG,CAChC,CAAC;EACD,KAAK3lC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI2lC,2BAA2B,EAAE,EAAE3lC,CAAC,EAAE;IACjD,IAAImmC,eAAe,GAAG,CAAC;IACvB,KAAKzkC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg3B,eAAe,EAAE,EAAEh3B,CAAC,EAAE;MACpC,MAAMokC,WAAW,GAAGvI,IAAI,CAACzM,UAAU,CAACpvB,CAAC,CAAC,CAACokC,WAAW;MAClD,IAAI9lC,CAAC,GAAG8lC,WAAW,CAACvrC,MAAM,EAAE;QAC1B4rC,eAAe,GAAG9oC,IAAI,CAACgE,GAAG,CACxB8kC,eAAe,EACfL,WAAW,CAAC9lC,CAAC,CAAC,CAACijC,kBAAkB,CAACD,YACpC,CAAC;MACH;IACF;IACAkD,sBAAsB,CAAClmC,CAAC,CAAC,GAAGmmC,eAAe;EAC7C;EACA9O,CAAC,GAAG,CAAC;EACLr3B,CAAC,GAAG,CAAC;EACL0B,CAAC,GAAG,CAAC;EACLjB,CAAC,GAAG,CAAC;EAEL,IAAI,CAACmlC,UAAU,GAAG,SAASC,mBAAmBA,CAAA,EAAG;IAE/C,OAAO7lC,CAAC,IAAI2lC,2BAA2B,EAAE3lC,CAAC,EAAE,EAAE;MAC5C,OAAOS,CAAC,GAAGylC,sBAAsB,CAAClmC,CAAC,CAAC,EAAES,CAAC,EAAE,EAAE;QACzC,OAAOiB,CAAC,GAAGg3B,eAAe,EAAEh3B,CAAC,EAAE,EAAE;UAC/B,MAAM4N,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAACpvB,CAAC,CAAC;UACpC,IAAI1B,CAAC,GAAGsP,SAAS,CAACwyB,qBAAqB,CAACrC,wBAAwB,EAAE;YAChE;UACF;UACA,MAAMyC,UAAU,GAAG5yB,SAAS,CAACw2B,WAAW,CAAC9lC,CAAC,CAAC;UAC3C,MAAMgjC,YAAY,GAAGd,UAAU,CAACe,kBAAkB,CAACD,YAAY;UAC/D,IAAIviC,CAAC,IAAIuiC,YAAY,EAAE;YACrB;UACF;UACA,OAAO3L,CAAC,GAAGkI,WAAW,GAAI;YACxB,MAAMwG,MAAM,GAAGX,YAAY,CAAClD,UAAU,EAAEzhC,CAAC,EAAE42B,CAAC,CAAC;YAC7CA,CAAC,EAAE;YACH,OAAO0O,MAAM;UACf;UACA1O,CAAC,GAAG,CAAC;QACP;QACA31B,CAAC,GAAG,CAAC;MACP;MACAjB,CAAC,GAAG,CAAC;IACP;IACA,MAAM,IAAI66B,QAAQ,CAAC,gBAAgB,CAAC;EACtC,CAAC;AACH;AACA,SAAS8K,wCAAwCA,CAACnJ,OAAO,EAAE;EACzD,MAAMQ,GAAG,GAAGR,OAAO,CAACiB,GAAG;EACvB,MAAMuH,SAAS,GAAGxI,OAAO,CAAC6B,WAAW,CAAC3R,KAAK;EAC3C,MAAMoQ,IAAI,GAAGN,OAAO,CAAC8D,KAAK,CAAC0E,SAAS,CAAC;EACrC,MAAMlG,WAAW,GAAGhC,IAAI,CAACmI,4BAA4B,CAACnG,WAAW;EACjE,MAAM7G,eAAe,GAAG+E,GAAG,CAACV,IAAI;EAChC,MAAMqD,cAAc,GAAGiG,4BAA4B,CAAC9I,IAAI,CAAC;EACzD,MAAM+I,uBAAuB,GAAGlG,cAAc;EAC9C,IAAI/I,CAAC,GAAG,CAAC;IACPr3B,CAAC,GAAG,CAAC;IACL0B,CAAC,GAAG,CAAC;IACL6kC,EAAE,GAAG,CAAC;IACNC,EAAE,GAAG,CAAC;EAER,IAAI,CAACZ,UAAU,GAAG,SAASC,mBAAmBA,CAAA,EAAG;IAE/C,OAAOW,EAAE,GAAGF,uBAAuB,CAACG,UAAU,EAAED,EAAE,EAAE,EAAE;MACpD,OAAOD,EAAE,GAAGD,uBAAuB,CAACI,UAAU,EAAEH,EAAE,EAAE,EAAE;QACpD,OAAO7kC,CAAC,GAAGg3B,eAAe,EAAEh3B,CAAC,EAAE,EAAE;UAC/B,MAAM4N,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAACpvB,CAAC,CAAC;UACpC,MAAM+9B,wBAAwB,GAC5BnwB,SAAS,CAACwyB,qBAAqB,CAACrC,wBAAwB;UAC1D,OAAOz/B,CAAC,IAAIy/B,wBAAwB,EAAEz/B,CAAC,EAAE,EAAE;YACzC,MAAMkiC,UAAU,GAAG5yB,SAAS,CAACw2B,WAAW,CAAC9lC,CAAC,CAAC;YAC3C,MAAM2mC,gBAAgB,GACpBvG,cAAc,CAACtP,UAAU,CAACpvB,CAAC,CAAC,CAACokC,WAAW,CAAC9lC,CAAC,CAAC;YAC7C,MAAMic,CAAC,GAAG2qB,uBAAuB,CAC/BL,EAAE,EACFC,EAAE,EACFG,gBAAgB,EAChBL,uBAAuB,EACvBpE,UACF,CAAC;YACD,IAAIjmB,CAAC,KAAK,IAAI,EAAE;cACd;YACF;YACA,OAAOob,CAAC,GAAGkI,WAAW,GAAI;cACxB,MAAMwG,MAAM,GAAGX,YAAY,CAAClD,UAAU,EAAEjmB,CAAC,EAAEob,CAAC,CAAC;cAC7CA,CAAC,EAAE;cACH,OAAO0O,MAAM;YACf;YACA1O,CAAC,GAAG,CAAC;UACP;UACAr3B,CAAC,GAAG,CAAC;QACP;QACA0B,CAAC,GAAG,CAAC;MACP;MACA6kC,EAAE,GAAG,CAAC;IACR;IACA,MAAM,IAAIjL,QAAQ,CAAC,gBAAgB,CAAC;EACtC,CAAC;AACH;AACA,SAASuL,wCAAwCA,CAAC5J,OAAO,EAAE;EACzD,MAAMQ,GAAG,GAAGR,OAAO,CAACiB,GAAG;EACvB,MAAMuH,SAAS,GAAGxI,OAAO,CAAC6B,WAAW,CAAC3R,KAAK;EAC3C,MAAMoQ,IAAI,GAAGN,OAAO,CAAC8D,KAAK,CAAC0E,SAAS,CAAC;EACrC,MAAMlG,WAAW,GAAGhC,IAAI,CAACmI,4BAA4B,CAACnG,WAAW;EACjE,MAAM7G,eAAe,GAAG+E,GAAG,CAACV,IAAI;EAChC,MAAMqD,cAAc,GAAGiG,4BAA4B,CAAC9I,IAAI,CAAC;EACzD,IAAIlG,CAAC,GAAG,CAAC;IACPr3B,CAAC,GAAG,CAAC;IACL0B,CAAC,GAAG,CAAC;IACL6kC,EAAE,GAAG,CAAC;IACNC,EAAE,GAAG,CAAC;EAER,IAAI,CAACZ,UAAU,GAAG,SAASC,mBAAmBA,CAAA,EAAG;IAE/C,OAAOnkC,CAAC,GAAGg3B,eAAe,EAAE,EAAEh3B,CAAC,EAAE;MAC/B,MAAM4N,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAACpvB,CAAC,CAAC;MACpC,MAAM4kC,uBAAuB,GAAGlG,cAAc,CAACtP,UAAU,CAACpvB,CAAC,CAAC;MAC5D,MAAM+9B,wBAAwB,GAC5BnwB,SAAS,CAACwyB,qBAAqB,CAACrC,wBAAwB;MAC1D,OAAO+G,EAAE,GAAGF,uBAAuB,CAACG,UAAU,EAAED,EAAE,EAAE,EAAE;QACpD,OAAOD,EAAE,GAAGD,uBAAuB,CAACI,UAAU,EAAEH,EAAE,EAAE,EAAE;UACpD,OAAOvmC,CAAC,IAAIy/B,wBAAwB,EAAEz/B,CAAC,EAAE,EAAE;YACzC,MAAMkiC,UAAU,GAAG5yB,SAAS,CAACw2B,WAAW,CAAC9lC,CAAC,CAAC;YAC3C,MAAM2mC,gBAAgB,GAAGL,uBAAuB,CAACR,WAAW,CAAC9lC,CAAC,CAAC;YAC/D,MAAMic,CAAC,GAAG2qB,uBAAuB,CAC/BL,EAAE,EACFC,EAAE,EACFG,gBAAgB,EAChBL,uBAAuB,EACvBpE,UACF,CAAC;YACD,IAAIjmB,CAAC,KAAK,IAAI,EAAE;cACd;YACF;YACA,OAAOob,CAAC,GAAGkI,WAAW,GAAI;cACxB,MAAMwG,MAAM,GAAGX,YAAY,CAAClD,UAAU,EAAEjmB,CAAC,EAAEob,CAAC,CAAC;cAC7CA,CAAC,EAAE;cACH,OAAO0O,MAAM;YACf;YACA1O,CAAC,GAAG,CAAC;UACP;UACAr3B,CAAC,GAAG,CAAC;QACP;QACAumC,EAAE,GAAG,CAAC;MACR;MACAC,EAAE,GAAG,CAAC;IACR;IACA,MAAM,IAAIlL,QAAQ,CAAC,gBAAgB,CAAC;EACtC,CAAC;AACH;AACA,SAASsL,uBAAuBA,CAC9BE,OAAO,EACPC,OAAO,EACPJ,gBAAgB,EAChBK,sBAAsB,EACtB9E,UAAU,EACV;EACA,MAAM+E,IAAI,GAAGH,OAAO,GAAGE,sBAAsB,CAACE,QAAQ;EACtD,MAAMC,IAAI,GAAGJ,OAAO,GAAGC,sBAAsB,CAACI,SAAS;EACvD,IACEH,IAAI,GAAGN,gBAAgB,CAACtzB,KAAK,KAAK,CAAC,IACnC8zB,IAAI,GAAGR,gBAAgB,CAACrzB,MAAM,KAAK,CAAC,EACpC;IACA,OAAO,IAAI;EACb;EACA,MAAM+zB,qBAAqB,GACxBF,IAAI,GAAGR,gBAAgB,CAACtzB,KAAK,GAC9B6uB,UAAU,CAACe,kBAAkB,CAACP,gBAAgB;EAChD,OAAOuE,IAAI,GAAGN,gBAAgB,CAACrzB,MAAM,GAAG+zB,qBAAqB;AAC/D;AACA,SAAShB,4BAA4BA,CAAC9I,IAAI,EAAE;EAC1C,MAAM7E,eAAe,GAAG6E,IAAI,CAACzM,UAAU,CAACv2B,MAAM;EAC9C,IAAI2sC,QAAQ,GAAG7tC,MAAM,CAACiuC,SAAS;EAC/B,IAAIF,SAAS,GAAG/tC,MAAM,CAACiuC,SAAS;EAChC,IAAIZ,UAAU,GAAG,CAAC;EAClB,IAAID,UAAU,GAAG,CAAC;EAClB,MAAMc,gBAAgB,GAAG,IAAI9nC,KAAK,CAACi5B,eAAe,CAAC;EACnD,KAAK,IAAIh3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg3B,eAAe,EAAEh3B,CAAC,EAAE,EAAE;IACxC,MAAM4N,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAACpvB,CAAC,CAAC;IACpC,MAAM+9B,wBAAwB,GAC5BnwB,SAAS,CAACwyB,qBAAqB,CAACrC,wBAAwB;IAC1D,MAAM+H,iBAAiB,GAAG,IAAI/nC,KAAK,CAACggC,wBAAwB,GAAG,CAAC,CAAC;IACjE,IAAIgI,wBAAwB,GAAGpuC,MAAM,CAACiuC,SAAS;IAC/C,IAAII,yBAAyB,GAAGruC,MAAM,CAACiuC,SAAS;IAChD,IAAIK,0BAA0B,GAAG,CAAC;IAClC,IAAIC,0BAA0B,GAAG,CAAC;IAClC,IAAIC,KAAK,GAAG,CAAC;IACb,KAAK,IAAI7nC,CAAC,GAAGy/B,wBAAwB,EAAEz/B,CAAC,IAAI,CAAC,EAAE,EAAEA,CAAC,EAAE;MAClD,MAAMkiC,UAAU,GAAG5yB,SAAS,CAACw2B,WAAW,CAAC9lC,CAAC,CAAC;MAC3C,MAAM8nC,sBAAsB,GAC1BD,KAAK,GAAG3F,UAAU,CAACe,kBAAkB,CAACb,aAAa;MACrD,MAAM2F,uBAAuB,GAC3BF,KAAK,GAAG3F,UAAU,CAACe,kBAAkB,CAACZ,cAAc;MACtDoF,wBAAwB,GAAGpqC,IAAI,CAACC,GAAG,CACjCmqC,wBAAwB,EACxBK,sBACF,CAAC;MACDJ,yBAAyB,GAAGrqC,IAAI,CAACC,GAAG,CAClCoqC,yBAAyB,EACzBK,uBACF,CAAC;MACDJ,0BAA0B,GAAGtqC,IAAI,CAACgE,GAAG,CACnCsmC,0BAA0B,EAC1BzF,UAAU,CAACe,kBAAkB,CAACP,gBAChC,CAAC;MACDkF,0BAA0B,GAAGvqC,IAAI,CAACgE,GAAG,CACnCumC,0BAA0B,EAC1B1F,UAAU,CAACe,kBAAkB,CAACJ,gBAChC,CAAC;MACD2E,iBAAiB,CAACxnC,CAAC,CAAC,GAAG;QACrBqT,KAAK,EAAEy0B,sBAAsB;QAC7Bx0B,MAAM,EAAEy0B;MACV,CAAC;MACDF,KAAK,KAAK,CAAC;IACb;IACAX,QAAQ,GAAG7pC,IAAI,CAACC,GAAG,CAAC4pC,QAAQ,EAAEO,wBAAwB,CAAC;IACvDL,SAAS,GAAG/pC,IAAI,CAACC,GAAG,CAAC8pC,SAAS,EAAEM,yBAAyB,CAAC;IAC1DhB,UAAU,GAAGrpC,IAAI,CAACgE,GAAG,CAACqlC,UAAU,EAAEiB,0BAA0B,CAAC;IAC7DlB,UAAU,GAAGppC,IAAI,CAACgE,GAAG,CAAColC,UAAU,EAAEmB,0BAA0B,CAAC;IAC7DL,gBAAgB,CAAC7lC,CAAC,CAAC,GAAG;MACpBokC,WAAW,EAAE0B,iBAAiB;MAC9BN,QAAQ,EAAEO,wBAAwB;MAClCL,SAAS,EAAEM,yBAAyB;MACpChB,UAAU,EAAEiB,0BAA0B;MACtClB,UAAU,EAAEmB;IACd,CAAC;EACH;EACA,OAAO;IACL9W,UAAU,EAAEyW,gBAAgB;IAC5BL,QAAQ;IACRE,SAAS;IACTV,UAAU;IACVD;EACF,CAAC;AACH;AACA,SAAS5F,YAAYA,CAAC5D,OAAO,EAAE;EAC7B,MAAMQ,GAAG,GAAGR,OAAO,CAACiB,GAAG;EACvB,MAAMuH,SAAS,GAAGxI,OAAO,CAAC6B,WAAW,CAAC3R,KAAK;EAC3C,MAAMoQ,IAAI,GAAGN,OAAO,CAAC8D,KAAK,CAAC0E,SAAS,CAAC;EACrC,MAAM/M,eAAe,GAAG+E,GAAG,CAACV,IAAI;EAEhC,KAAK,IAAIr7B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg3B,eAAe,EAAEh3B,CAAC,EAAE,EAAE;IACxC,MAAM4N,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAACpvB,CAAC,CAAC;IACpC,MAAM+9B,wBAAwB,GAC5BnwB,SAAS,CAACwyB,qBAAqB,CAACrC,wBAAwB;IAE1D,MAAMqG,WAAW,GAAG,EAAE;IACtB,MAAMP,QAAQ,GAAG,EAAE;IACnB,KAAK,IAAIvlC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIy/B,wBAAwB,EAAEz/B,CAAC,EAAE,EAAE;MAClD,MAAMgoC,gBAAgB,GAAGpG,mBAAmB,CAAC3E,OAAO,EAAE3tB,SAAS,EAAEtP,CAAC,CAAC;MACnE,MAAMkiC,UAAU,GAAG,CAAC,CAAC;MACrB,MAAM2F,KAAK,GAAG,CAAC,IAAKpI,wBAAwB,GAAGz/B,CAAE;MACjDkiC,UAAU,CAACU,IAAI,GAAGvlC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACkyB,IAAI,GAAGqG,KAAK,CAAC;MACnD3F,UAAU,CAACa,IAAI,GAAG1lC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACmyB,IAAI,GAAGoG,KAAK,CAAC;MACnD3F,UAAU,CAACS,IAAI,GAAGtlC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACoyB,IAAI,GAAGmG,KAAK,CAAC;MACnD3F,UAAU,CAACY,IAAI,GAAGzlC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACqyB,IAAI,GAAGkG,KAAK,CAAC;MACnD3F,UAAU,CAACK,QAAQ,GAAGviC,CAAC;MACvBiiC,cAAc,CAAChF,OAAO,EAAEiF,UAAU,EAAE8F,gBAAgB,CAAC;MACrDlC,WAAW,CAACroC,IAAI,CAACykC,UAAU,CAAC;MAE5B,IAAIiB,OAAO;MACX,IAAInjC,CAAC,KAAK,CAAC,EAAE;QAEXmjC,OAAO,GAAG,CAAC,CAAC;QACZA,OAAO,CAACt5C,IAAI,GAAG,IAAI;QACnBs5C,OAAO,CAACI,IAAI,GAAGlmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACkyB,IAAI,GAAGqG,KAAK,CAAC;QAChD1E,OAAO,CAACM,IAAI,GAAGpmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACmyB,IAAI,GAAGoG,KAAK,CAAC;QAChD1E,OAAO,CAACQ,IAAI,GAAGtmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACoyB,IAAI,GAAGmG,KAAK,CAAC;QAChD1E,OAAO,CAACU,IAAI,GAAGxmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACqyB,IAAI,GAAGkG,KAAK,CAAC;QAChD1E,OAAO,CAACjB,UAAU,GAAGA,UAAU;QAC/BgB,eAAe,CAACjG,OAAO,EAAEkG,OAAO,EAAE6E,gBAAgB,CAAC;QACnDzC,QAAQ,CAAC9nC,IAAI,CAAC0lC,OAAO,CAAC;QACtBjB,UAAU,CAACqD,QAAQ,GAAG,CAACpC,OAAO,CAAC;MACjC,CAAC,MAAM;QACL,MAAM8E,MAAM,GAAG,CAAC,IAAKxI,wBAAwB,GAAGz/B,CAAC,GAAG,CAAE;QACtD,MAAMkoC,kBAAkB,GAAG,EAAE;QAE7B/E,OAAO,GAAG,CAAC,CAAC;QACZA,OAAO,CAACt5C,IAAI,GAAG,IAAI;QACnBs5C,OAAO,CAACI,IAAI,GAAGlmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACkyB,IAAI,GAAGyG,MAAM,GAAG,GAAG,CAAC;QACvD9E,OAAO,CAACM,IAAI,GAAGpmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACmyB,IAAI,GAAGwG,MAAM,CAAC;QACjD9E,OAAO,CAACQ,IAAI,GAAGtmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACoyB,IAAI,GAAGuG,MAAM,GAAG,GAAG,CAAC;QACvD9E,OAAO,CAACU,IAAI,GAAGxmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACqyB,IAAI,GAAGsG,MAAM,CAAC;QACjD9E,OAAO,CAACjB,UAAU,GAAGA,UAAU;QAC/BgB,eAAe,CAACjG,OAAO,EAAEkG,OAAO,EAAE6E,gBAAgB,CAAC;QACnDzC,QAAQ,CAAC9nC,IAAI,CAAC0lC,OAAO,CAAC;QACtB+E,kBAAkB,CAACzqC,IAAI,CAAC0lC,OAAO,CAAC;QAEhCA,OAAO,GAAG,CAAC,CAAC;QACZA,OAAO,CAACt5C,IAAI,GAAG,IAAI;QACnBs5C,OAAO,CAACI,IAAI,GAAGlmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACkyB,IAAI,GAAGyG,MAAM,CAAC;QACjD9E,OAAO,CAACM,IAAI,GAAGpmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACmyB,IAAI,GAAGwG,MAAM,GAAG,GAAG,CAAC;QACvD9E,OAAO,CAACQ,IAAI,GAAGtmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACoyB,IAAI,GAAGuG,MAAM,CAAC;QACjD9E,OAAO,CAACU,IAAI,GAAGxmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACqyB,IAAI,GAAGsG,MAAM,GAAG,GAAG,CAAC;QACvD9E,OAAO,CAACjB,UAAU,GAAGA,UAAU;QAC/BgB,eAAe,CAACjG,OAAO,EAAEkG,OAAO,EAAE6E,gBAAgB,CAAC;QACnDzC,QAAQ,CAAC9nC,IAAI,CAAC0lC,OAAO,CAAC;QACtB+E,kBAAkB,CAACzqC,IAAI,CAAC0lC,OAAO,CAAC;QAEhCA,OAAO,GAAG,CAAC,CAAC;QACZA,OAAO,CAACt5C,IAAI,GAAG,IAAI;QACnBs5C,OAAO,CAACI,IAAI,GAAGlmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACkyB,IAAI,GAAGyG,MAAM,GAAG,GAAG,CAAC;QACvD9E,OAAO,CAACM,IAAI,GAAGpmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACmyB,IAAI,GAAGwG,MAAM,GAAG,GAAG,CAAC;QACvD9E,OAAO,CAACQ,IAAI,GAAGtmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACoyB,IAAI,GAAGuG,MAAM,GAAG,GAAG,CAAC;QACvD9E,OAAO,CAACU,IAAI,GAAGxmC,IAAI,CAACsR,IAAI,CAACW,SAAS,CAACqyB,IAAI,GAAGsG,MAAM,GAAG,GAAG,CAAC;QACvD9E,OAAO,CAACjB,UAAU,GAAGA,UAAU;QAC/BgB,eAAe,CAACjG,OAAO,EAAEkG,OAAO,EAAE6E,gBAAgB,CAAC;QACnDzC,QAAQ,CAAC9nC,IAAI,CAAC0lC,OAAO,CAAC;QACtB+E,kBAAkB,CAACzqC,IAAI,CAAC0lC,OAAO,CAAC;QAEhCjB,UAAU,CAACqD,QAAQ,GAAG2C,kBAAkB;MAC1C;IACF;IACA54B,SAAS,CAACw2B,WAAW,GAAGA,WAAW;IACnCx2B,SAAS,CAACi2B,QAAQ,GAAGA,QAAQ;EAC/B;EAEA,MAAMjG,gBAAgB,GAAG/B,IAAI,CAACmI,4BAA4B,CAACpG,gBAAgB;EAC3E,QAAQA,gBAAgB;IACtB,KAAK,CAAC;MACJ/B,IAAI,CAAC4K,eAAe,GAAG,IAAI3C,wCAAwC,CACjEvI,OACF,CAAC;MACD;IACF,KAAK,CAAC;MACJM,IAAI,CAAC4K,eAAe,GAAG,IAAInC,wCAAwC,CACjE/I,OACF,CAAC;MACD;IACF,KAAK,CAAC;MACJM,IAAI,CAAC4K,eAAe,GAAG,IAAIlC,wCAAwC,CACjEhJ,OACF,CAAC;MACD;IACF,KAAK,CAAC;MACJM,IAAI,CAAC4K,eAAe,GAAG,IAAI/B,wCAAwC,CACjEnJ,OACF,CAAC;MACD;IACF,KAAK,CAAC;MACJM,IAAI,CAAC4K,eAAe,GAAG,IAAItB,wCAAwC,CACjE5J,OACF,CAAC;MACD;IACF;MACE,MAAM,IAAI3B,QAAQ,CAAE,iCAAgCgE,gBAAiB,EAAC,CAAC;EAC3E;AACF;AACA,SAASwB,gBAAgBA,CAAC7D,OAAO,EAAEnvB,IAAI,EAAEe,MAAM,EAAEjB,UAAU,EAAE;EAC3D,IAAIsS,QAAQ,GAAG,CAAC;EAChB,IAAIxhB,MAAM;IACR0pC,UAAU,GAAG,CAAC;IACdC,WAAW,GAAG,KAAK;EACrB,SAAS9uB,QAAQA,CAAC+uB,KAAK,EAAE;IACvB,OAAOF,UAAU,GAAGE,KAAK,EAAE;MACzB,MAAMpoC,CAAC,GAAG4N,IAAI,CAACe,MAAM,GAAGqR,QAAQ,CAAC;MACjCA,QAAQ,EAAE;MACV,IAAImoB,WAAW,EAAE;QACf3pC,MAAM,GAAIA,MAAM,IAAI,CAAC,GAAIwB,CAAC;QAC1BkoC,UAAU,IAAI,CAAC;QACfC,WAAW,GAAG,KAAK;MACrB,CAAC,MAAM;QACL3pC,MAAM,GAAIA,MAAM,IAAI,CAAC,GAAIwB,CAAC;QAC1BkoC,UAAU,IAAI,CAAC;MACjB;MACA,IAAIloC,CAAC,KAAK,IAAI,EAAE;QACdmoC,WAAW,GAAG,IAAI;MACpB;IACF;IACAD,UAAU,IAAIE,KAAK;IACnB,OAAQ5pC,MAAM,KAAK0pC,UAAU,GAAK,CAAC,CAAC,IAAIE,KAAK,IAAI,CAAE;EACrD;EACA,SAASC,iBAAiBA,CAACltC,KAAK,EAAE;IAChC,IACEyS,IAAI,CAACe,MAAM,GAAGqR,QAAQ,GAAG,CAAC,CAAC,KAAK,IAAI,IACpCpS,IAAI,CAACe,MAAM,GAAGqR,QAAQ,CAAC,KAAK7kB,KAAK,EACjC;MACAmtC,SAAS,CAAC,CAAC,CAAC;MACZ,OAAO,IAAI;IACb,CAAC,MAAM,IACL16B,IAAI,CAACe,MAAM,GAAGqR,QAAQ,CAAC,KAAK,IAAI,IAChCpS,IAAI,CAACe,MAAM,GAAGqR,QAAQ,GAAG,CAAC,CAAC,KAAK7kB,KAAK,EACrC;MACAmtC,SAAS,CAAC,CAAC,CAAC;MACZ,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EACA,SAASA,SAASA,CAACF,KAAK,EAAE;IACxBpoB,QAAQ,IAAIooB,KAAK;EACnB;EACA,SAASG,WAAWA,CAAA,EAAG;IACrBL,UAAU,GAAG,CAAC;IACd,IAAIC,WAAW,EAAE;MACfnoB,QAAQ,EAAE;MACVmoB,WAAW,GAAG,KAAK;IACrB;EACF;EACA,SAASK,gBAAgBA,CAAA,EAAG;IAC1B,IAAInvB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;MACrB,OAAO,CAAC;IACV;IACA,IAAIA,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;MACrB,OAAO,CAAC;IACV;IACA,IAAIle,KAAK,GAAGke,QAAQ,CAAC,CAAC,CAAC;IACvB,IAAIle,KAAK,GAAG,CAAC,EAAE;MACb,OAAOA,KAAK,GAAG,CAAC;IAClB;IACAA,KAAK,GAAGke,QAAQ,CAAC,CAAC,CAAC;IACnB,IAAIle,KAAK,GAAG,EAAE,EAAE;MACd,OAAOA,KAAK,GAAG,CAAC;IAClB;IACAA,KAAK,GAAGke,QAAQ,CAAC,CAAC,CAAC;IACnB,OAAOle,KAAK,GAAG,EAAE;EACnB;EACA,MAAMoqC,SAAS,GAAGxI,OAAO,CAAC6B,WAAW,CAAC3R,KAAK;EAC3C,MAAMoQ,IAAI,GAAGN,OAAO,CAAC8D,KAAK,CAAC0E,SAAS,CAAC;EACrC,MAAMrG,aAAa,GAAGnC,OAAO,CAACwD,GAAG,CAACrB,aAAa;EAC/C,MAAMC,aAAa,GAAGpC,OAAO,CAACwD,GAAG,CAACpB,aAAa;EAC/C,MAAM8I,eAAe,GAAG5K,IAAI,CAAC4K,eAAe;EAC5C,OAAOjoB,QAAQ,GAAGtS,UAAU,EAAE;IAC5B66B,WAAW,CAAC,CAAC;IACb,IAAIrJ,aAAa,IAAImJ,iBAAiB,CAAC,IAAI,CAAC,EAAE;MAE5CC,SAAS,CAAC,CAAC,CAAC;IACd;IACA,MAAMzC,MAAM,GAAGoC,eAAe,CAACvC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAACrsB,QAAQ,CAAC,CAAC,CAAC,EAAE;MAChB;IACF;IACA,MAAM8rB,WAAW,GAAGU,MAAM,CAACV,WAAW;MACpCsD,KAAK,GAAG,EAAE;IACZ,IAAI3E,SAAS;IACb,KAAK,IAAI7mC,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGqhC,MAAM,CAACjC,UAAU,CAACvpC,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;MAC1D6mC,SAAS,GAAG+B,MAAM,CAACjC,UAAU,CAAC3mC,CAAC,CAAC;MAChC,IAAIynC,QAAQ,GAAGZ,SAAS,CAACY,QAAQ;MACjC,MAAMgE,eAAe,GAAG5E,SAAS,CAACE,GAAG,GAAGU,QAAQ,CAACC,MAAM;MACvD,MAAMgE,YAAY,GAAG7E,SAAS,CAACG,GAAG,GAAGS,QAAQ,CAACG,MAAM;MACpD,IAAI+D,iBAAiB,GAAG,KAAK;MAC7B,IAAIC,kBAAkB,GAAG,KAAK;MAC9B,IAAIC,UAAU,EAAEC,iBAAiB;MACjC,IAAIjF,SAAS,CAACkF,QAAQ,KAAK1uC,SAAS,EAAE;QACpCsuC,iBAAiB,GAAG,CAAC,CAACvvB,QAAQ,CAAC,CAAC,CAAC;MACnC,CAAC,MAAM;QAELqrB,QAAQ,GAAGZ,SAAS,CAACY,QAAQ;QAC7B,IAAIuE,aAAa;QACjB,IAAIvE,QAAQ,CAACuE,aAAa,KAAK3uC,SAAS,EAAE;UACxC2uC,aAAa,GAAGvE,QAAQ,CAACuE,aAAa;QACxC,CAAC,MAAM;UAEL,MAAM91B,KAAK,GAAGuxB,QAAQ,CAACE,MAAM,GAAGF,QAAQ,CAACC,MAAM,GAAG,CAAC;UACnD,MAAMvxB,MAAM,GAAGsxB,QAAQ,CAACI,MAAM,GAAGJ,QAAQ,CAACG,MAAM,GAAG,CAAC;UACpDoE,aAAa,GAAG,IAAIC,aAAa,CAAC/1B,KAAK,EAAEC,MAAM,EAAE+xB,WAAW,CAAC;UAC7D4D,iBAAiB,GAAG,IAAII,OAAO,CAACh2B,KAAK,EAAEC,MAAM,CAAC;UAC9CsxB,QAAQ,CAACuE,aAAa,GAAGA,aAAa;UACtCvE,QAAQ,CAACqE,iBAAiB,GAAGA,iBAAiB;UAC9C,KAAK,IAAI5R,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgO,WAAW,EAAEhO,CAAC,EAAE,EAAE;YACpC,IAAI9d,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;cACrB,MAAM,IAAI+hB,QAAQ,CAAC,kBAAkB,CAAC;YACxC;UACF;QACF;QAEA,IAAI6N,aAAa,CAACt8B,KAAK,CAAC+7B,eAAe,EAAEC,YAAY,EAAExD,WAAW,CAAC,EAAE;UACnE,OAAO,IAAI,EAAE;YACX,IAAI9rB,QAAQ,CAAC,CAAC,CAAC,EAAE;cACfyvB,UAAU,GAAG,CAACG,aAAa,CAACG,SAAS,CAAC,CAAC;cACvC,IAAIN,UAAU,EAAE;gBACdhF,SAAS,CAACkF,QAAQ,GAAG,IAAI;gBACzBJ,iBAAiB,GAAGC,kBAAkB,GAAG,IAAI;gBAC7C;cACF;YACF,CAAC,MAAM;cACLI,aAAa,CAACI,cAAc,CAAClE,WAAW,CAAC;cACzC;YACF;UACF;QACF;MACF;MACA,IAAI,CAACyD,iBAAiB,EAAE;QACtB;MACF;MACA,IAAIC,kBAAkB,EAAE;QACtBE,iBAAiB,GAAGrE,QAAQ,CAACqE,iBAAiB;QAC9CA,iBAAiB,CAACp8B,KAAK,CAAC+7B,eAAe,EAAEC,YAAY,CAAC;QACtD,OAAO,IAAI,EAAE;UACX,IAAItvB,QAAQ,CAAC,CAAC,CAAC,EAAE;YACfyvB,UAAU,GAAG,CAACC,iBAAiB,CAACK,SAAS,CAAC,CAAC;YAC3C,IAAIN,UAAU,EAAE;cACd;YACF;UACF,CAAC,MAAM;YACLC,iBAAiB,CAACM,cAAc,CAAC,CAAC;UACpC;QACF;QACAvF,SAAS,CAACwF,aAAa,GAAGP,iBAAiB,CAAC5tC,KAAK;MACnD;MACA,MAAMouC,YAAY,GAAGf,gBAAgB,CAAC,CAAC;MACvC,OAAOnvB,QAAQ,CAAC,CAAC,CAAC,EAAE;QAClByqB,SAAS,CAACW,MAAM,EAAE;MACpB;MACA,MAAM+E,gBAAgB,GAAGh7B,IAAI,CAAC+6B,YAAY,CAAC;MAE3C,MAAM/xB,IAAI,GACR,CAAC+xB,YAAY,GAAG,CAAC,IAAIC,gBAAgB,GACjCA,gBAAgB,GAAG,CAAC,GACpBA,gBAAgB,IAAI1F,SAAS,CAACW,MAAM;MAC1C,MAAMgF,eAAe,GAAGpwB,QAAQ,CAAC7B,IAAI,CAAC;MACtCixB,KAAK,CAAClrC,IAAI,CAAC;QACTumC,SAAS;QACTyF,YAAY;QACZ77B,UAAU,EAAE+7B;MACd,CAAC,CAAC;IACJ;IACAlB,WAAW,CAAC,CAAC;IACb,IAAIpJ,aAAa,EAAE;MACjBkJ,iBAAiB,CAAC,IAAI,CAAC;IACzB;IACA,OAAOI,KAAK,CAACpuC,MAAM,GAAG,CAAC,EAAE;MACvB,MAAMqvC,UAAU,GAAGjB,KAAK,CAAC7rB,KAAK,CAAC,CAAC;MAChCknB,SAAS,GAAG4F,UAAU,CAAC5F,SAAS;MAChC,IAAIA,SAAS,CAACl2B,IAAI,KAAKtT,SAAS,EAAE;QAChCwpC,SAAS,CAACl2B,IAAI,GAAG,EAAE;MACrB;MACAk2B,SAAS,CAACl2B,IAAI,CAACrQ,IAAI,CAAC;QAClBqQ,IAAI;QACJd,KAAK,EAAE6B,MAAM,GAAGqR,QAAQ;QACxBxT,GAAG,EAAEmC,MAAM,GAAGqR,QAAQ,GAAG0pB,UAAU,CAACh8B,UAAU;QAC9C67B,YAAY,EAAEG,UAAU,CAACH;MAC3B,CAAC,CAAC;MACFvpB,QAAQ,IAAI0pB,UAAU,CAACh8B,UAAU;IACnC;EACF;EACA,OAAOsS,QAAQ;AACjB;AACA,SAAS2pB,gBAAgBA,CACvBC,YAAY,EACZC,UAAU,EACVC,WAAW,EACX7G,OAAO,EACPv/B,KAAK,EACLqmC,EAAE,EACFC,UAAU,EACVhK,sBAAsB,EACtBJ,yBAAyB,EACzB;EACA,MAAMn9B,EAAE,GAAGwgC,OAAO,CAACI,IAAI;EACvB,MAAMxgC,EAAE,GAAGogC,OAAO,CAACM,IAAI;EACvB,MAAMpwB,KAAK,GAAG8vB,OAAO,CAACQ,IAAI,GAAGR,OAAO,CAACI,IAAI;EACzC,MAAMO,UAAU,GAAGX,OAAO,CAACW,UAAU;EACrC,MAAMqG,KAAK,GAAGhH,OAAO,CAACt5C,IAAI,CAAC+a,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;EACpD,MAAMwlC,MAAM,GAAGjH,OAAO,CAACt5C,IAAI,CAAC+a,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAGmlC,UAAU,GAAG,CAAC;EAE9D,KAAK,IAAI5sC,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGo/B,UAAU,CAACvpC,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAE,EAAEvH,CAAC,EAAE;IACnD,MAAM6mC,SAAS,GAAGF,UAAU,CAAC3mC,CAAC,CAAC;IAC/B,MAAMktC,UAAU,GAAGrG,SAAS,CAACM,KAAK,GAAGN,SAAS,CAACI,KAAK;IACpD,MAAMkG,WAAW,GAAGtG,SAAS,CAACO,KAAK,GAAGP,SAAS,CAACK,KAAK;IACrD,IAAIgG,UAAU,KAAK,CAAC,IAAIC,WAAW,KAAK,CAAC,EAAE;MACzC;IACF;IACA,IAAItG,SAAS,CAACl2B,IAAI,KAAKtT,SAAS,EAAE;MAChC;IACF;IAEA,MAAM+vC,QAAQ,GAAG,IAAIC,QAAQ,CAC3BH,UAAU,EACVC,WAAW,EACXtG,SAAS,CAACU,WAAW,EACrBV,SAAS,CAACwF,aAAa,EACvBS,EACF,CAAC;IACD,IAAIQ,qBAAqB,GAAG,CAAC;IAG7B,MAAM38B,IAAI,GAAGk2B,SAAS,CAACl2B,IAAI;IAC3B,IAAI48B,WAAW,GAAG,CAAC;MACjBjB,YAAY,GAAG,CAAC;IAClB,IAAIjvB,CAAC,EAAE+U,EAAE,EAAEob,QAAQ;IACnB,KAAKnwB,CAAC,GAAG,CAAC,EAAE+U,EAAE,GAAGzhB,IAAI,CAACvT,MAAM,EAAEigB,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAE;MACzCmwB,QAAQ,GAAG78B,IAAI,CAAC0M,CAAC,CAAC;MAClBkwB,WAAW,IAAIC,QAAQ,CAACj+B,GAAG,GAAGi+B,QAAQ,CAAC39B,KAAK;MAC5Cy8B,YAAY,IAAIkB,QAAQ,CAAClB,YAAY;IACvC;IACA,MAAMmB,WAAW,GAAG,IAAI/sC,UAAU,CAAC6sC,WAAW,CAAC;IAC/C,IAAIxqB,QAAQ,GAAG,CAAC;IAChB,KAAK1F,CAAC,GAAG,CAAC,EAAE+U,EAAE,GAAGzhB,IAAI,CAACvT,MAAM,EAAEigB,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAE;MACzCmwB,QAAQ,GAAG78B,IAAI,CAAC0M,CAAC,CAAC;MAClB,MAAMjd,KAAK,GAAGotC,QAAQ,CAAC78B,IAAI,CAACtQ,QAAQ,CAACmtC,QAAQ,CAAC39B,KAAK,EAAE29B,QAAQ,CAACj+B,GAAG,CAAC;MAClEk+B,WAAW,CAAC9hC,GAAG,CAACvL,KAAK,EAAE2iB,QAAQ,CAAC;MAChCA,QAAQ,IAAI3iB,KAAK,CAAChD,MAAM;IAC1B;IAEA,MAAM4J,OAAO,GAAG,IAAI0P,iBAAiB,CAAC+2B,WAAW,EAAE,CAAC,EAAEF,WAAW,CAAC;IAClEH,QAAQ,CAACM,UAAU,CAAC1mC,OAAO,CAAC;IAE5B,KAAKqW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGivB,YAAY,EAAEjvB,CAAC,EAAE,EAAE;MACjC,QAAQiwB,qBAAqB;QAC3B,KAAK,CAAC;UACJF,QAAQ,CAACO,8BAA8B,CAAC,CAAC;UACzC;QACF,KAAK,CAAC;UACJP,QAAQ,CAACQ,0BAA0B,CAAC,CAAC;UACrC;QACF,KAAK,CAAC;UACJR,QAAQ,CAACS,cAAc,CAAC,CAAC;UACzB,IAAI9K,sBAAsB,EAAE;YAC1BqK,QAAQ,CAACU,uBAAuB,CAAC,CAAC;UACpC;UACA;MACJ;MAEA,IAAInL,yBAAyB,EAAE;QAC7ByK,QAAQ,CAAC19B,KAAK,CAAC,CAAC;MAClB;MAEA49B,qBAAqB,GAAG,CAACA,qBAAqB,GAAG,CAAC,IAAI,CAAC;IACzD;IAEA,IAAI57B,MAAM,GAAGm1B,SAAS,CAACI,KAAK,GAAGzhC,EAAE,GAAG,CAACqhC,SAAS,CAACK,KAAK,GAAGthC,EAAE,IAAIsQ,KAAK;IAClE,MAAMoG,IAAI,GAAG8wB,QAAQ,CAACW,eAAe;IACrC,MAAMC,SAAS,GAAGZ,QAAQ,CAACa,oBAAoB;IAC/C,MAAMC,WAAW,GAAGd,QAAQ,CAACc,WAAW;IACxC,MAAMC,mBAAmB,GAAGpB,UAAU,GAAG,CAAC,GAAG,GAAG;IAChD,IAAIjuB,CAAC,EAAEtc,CAAC,EAAE4rC,EAAE;IACZrrB,QAAQ,GAAG,CAAC;IAGZ,MAAMsrB,UAAU,GAAGrI,OAAO,CAACt5C,IAAI,KAAK,IAAI;IACxC,KAAK2wB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8vB,WAAW,EAAE9vB,CAAC,EAAE,EAAE;MAChC,MAAM1D,GAAG,GAAIjI,MAAM,GAAGwE,KAAK,GAAI,CAAC;MAChC,MAAMo4B,WAAW,GAAG,CAAC,GAAG30B,GAAG,IAAIizB,UAAU,GAAG12B,KAAK,CAAC,GAAG82B,KAAK,GAAGC,MAAM;MACnE,KAAKnuB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGouB,UAAU,EAAEpuB,CAAC,EAAE,EAAE;QAC/Btc,CAAC,GAAGwrC,SAAS,CAACjrB,QAAQ,CAAC;QACvB,IAAIvgB,CAAC,KAAK,CAAC,EAAE;UACXA,CAAC,GAAG,CAACA,CAAC,GAAG2rC,mBAAmB,IAAI1nC,KAAK;UACrC,IAAI6V,IAAI,CAACyG,QAAQ,CAAC,KAAK,CAAC,EAAE;YACxBvgB,CAAC,GAAG,CAACA,CAAC;UACR;UACA4rC,EAAE,GAAGF,WAAW,CAACnrB,QAAQ,CAAC;UAC1B,MAAMlU,GAAG,GAAGw/B,UAAU,GAAGC,WAAW,IAAI58B,MAAM,IAAI,CAAC,CAAC,GAAGA,MAAM;UAC7Di7B,YAAY,CAAC99B,GAAG,CAAC,GAAGk+B,UAAU,IAAIqB,EAAE,IAAItB,EAAE,GAAGtqC,CAAC,GAAGA,CAAC,IAAI,CAAC,IAAKsqC,EAAE,GAAGsB,EAAG,CAAC;QACvE;QACA18B,MAAM,EAAE;QACRqR,QAAQ,EAAE;MACZ;MACArR,MAAM,IAAIwE,KAAK,GAAGg3B,UAAU;IAC9B;EACF;AACF;AACA,SAASqB,aAAaA,CAACzO,OAAO,EAAEM,IAAI,EAAE77B,CAAC,EAAE;EACvC,MAAM4N,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAACpvB,CAAC,CAAC;EACpC,MAAMogC,qBAAqB,GAAGxyB,SAAS,CAACwyB,qBAAqB;EAC7D,MAAM6J,sBAAsB,GAAGr8B,SAAS,CAACq8B,sBAAsB;EAC/D,MAAMlM,wBAAwB,GAC5BqC,qBAAqB,CAACrC,wBAAwB;EAChD,MAAMrC,MAAM,GAAGuO,sBAAsB,CAAC/M,MAAM;EAC5C,MAAMtB,eAAe,GAAGqO,sBAAsB,CAACrO,eAAe;EAC9D,MAAMkB,SAAS,GAAGmN,sBAAsB,CAACnN,SAAS;EAClD,MAAM0B,sBAAsB,GAAG4B,qBAAqB,CAAC5B,sBAAsB;EAC3E,MAAMJ,yBAAyB,GAC7BgC,qBAAqB,CAAChC,yBAAyB;EACjD,MAAMjO,SAAS,GAAGoL,OAAO,CAACnM,UAAU,CAACpvB,CAAC,CAAC,CAACmwB,SAAS;EAEjD,MAAMqY,UAAU,GAAGpI,qBAAqB,CAAC3B,wBAAwB;EACjE,MAAMjsC,SAAS,GAAGg2C,UAAU,GACxB,IAAI0B,mBAAmB,CAAC,CAAC,GACzB,IAAIC,qBAAqB,CAAC,CAAC;EAE/B,MAAMC,mBAAmB,GAAG,EAAE;EAC9B,IAAI5rC,CAAC,GAAG,CAAC;EACT,KAAK,IAAI/C,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIsiC,wBAAwB,EAAEtiC,CAAC,EAAE,EAAE;IAClD,MAAM+kC,UAAU,GAAG5yB,SAAS,CAACw2B,WAAW,CAAC3oC,CAAC,CAAC;IAE3C,MAAMkW,KAAK,GAAG6uB,UAAU,CAACS,IAAI,GAAGT,UAAU,CAACU,IAAI;IAC/C,MAAMtvB,MAAM,GAAG4uB,UAAU,CAACY,IAAI,GAAGZ,UAAU,CAACa,IAAI;IAEhD,MAAM+G,YAAY,GAAG,IAAIiC,YAAY,CAAC14B,KAAK,GAAGC,MAAM,CAAC;IAErD,KAAK,IAAIkH,CAAC,GAAG,CAAC,EAAE+U,EAAE,GAAG2S,UAAU,CAACqD,QAAQ,CAAChrC,MAAM,EAAEigB,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAE;MAC5D,IAAImkB,EAAE,EAAED,OAAO;MACf,IAAI,CAACpB,eAAe,EAAE;QAEpBqB,EAAE,GAAGvB,MAAM,CAAC,CAAC,CAAC,CAACuB,EAAE;QACjBD,OAAO,GAAGtB,MAAM,CAAC,CAAC,CAAC,CAACsB,OAAO,IAAIvhC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGA,CAAC,GAAG,CAAC,CAAC;MACnD,CAAC,MAAM;QACLwhC,EAAE,GAAGvB,MAAM,CAACl9B,CAAC,CAAC,CAACy+B,EAAE;QACjBD,OAAO,GAAGtB,MAAM,CAACl9B,CAAC,CAAC,CAACw+B,OAAO;QAC3Bx+B,CAAC,EAAE;MACL;MAEA,MAAMijC,OAAO,GAAGjB,UAAU,CAACqD,QAAQ,CAAC/qB,CAAC,CAAC;MACtC,MAAMwxB,QAAQ,GAAGzQ,gBAAgB,CAAC4H,OAAO,CAACt5C,IAAI,CAAC;MAG/C,MAAM+Z,KAAK,GAAGsmC,UAAU,GACpB,CAAC,GACD,CAAC,KAAKrY,SAAS,GAAGma,QAAQ,GAAGtN,OAAO,CAAC,IAAI,CAAC,GAAGC,EAAE,GAAG,IAAI,CAAC;MAC3D,MAAMsL,EAAE,GAAGzL,SAAS,GAAGE,OAAO,GAAG,CAAC;MAOlCmL,gBAAgB,CACdC,YAAY,EACZz2B,KAAK,EACLC,MAAM,EACN6vB,OAAO,EACPv/B,KAAK,EACLqmC,EAAE,EACFC,UAAU,EACVhK,sBAAsB,EACtBJ,yBACF,CAAC;IACH;IACAgM,mBAAmB,CAACruC,IAAI,CAAC;MACvB4V,KAAK;MACLC,MAAM;MACN24B,KAAK,EAAEnC;IACT,CAAC,CAAC;EACJ;EAEA,MAAMrxB,MAAM,GAAGvkB,SAAS,CAACg4C,SAAS,CAChCJ,mBAAmB,EACnBx8B,SAAS,CAACkyB,IAAI,EACdlyB,SAAS,CAACmyB,IACZ,CAAC;EACD,OAAO;IACL0K,IAAI,EAAE78B,SAAS,CAACkyB,IAAI;IACpB4K,GAAG,EAAE98B,SAAS,CAACmyB,IAAI;IACnBpuB,KAAK,EAAEoF,MAAM,CAACpF,KAAK;IACnBC,MAAM,EAAEmF,MAAM,CAACnF,MAAM;IACrB24B,KAAK,EAAExzB,MAAM,CAACwzB;EAChB,CAAC;AACH;AACA,SAASjL,mBAAmBA,CAAC/D,OAAO,EAAE;EACpC,MAAMQ,GAAG,GAAGR,OAAO,CAACiB,GAAG;EACvB,MAAMpN,UAAU,GAAGmM,OAAO,CAACnM,UAAU;EACrC,MAAM4H,eAAe,GAAG+E,GAAG,CAACV,IAAI;EAChC,MAAMsP,YAAY,GAAG,EAAE;EACvB,KAAK,IAAIlvC,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAGu4B,OAAO,CAAC8D,KAAK,CAACxmC,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;IACtD,MAAMogC,IAAI,GAAGN,OAAO,CAAC8D,KAAK,CAAC5jC,CAAC,CAAC;IAC7B,MAAMmvC,gBAAgB,GAAG,EAAE;IAC3B,KAAK,IAAI5qC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg3B,eAAe,EAAEh3B,CAAC,EAAE,EAAE;MACxC4qC,gBAAgB,CAAC5qC,CAAC,CAAC,GAAGgqC,aAAa,CAACzO,OAAO,EAAEM,IAAI,EAAE77B,CAAC,CAAC;IACvD;IACA,MAAM6qC,KAAK,GAAGD,gBAAgB,CAAC,CAAC,CAAC;IACjC,MAAM5R,GAAG,GAAG,IAAIxR,iBAAiB,CAACqjB,KAAK,CAACN,KAAK,CAAC1xC,MAAM,GAAGm+B,eAAe,CAAC;IACvE,MAAMjgB,MAAM,GAAG;MACb0zB,IAAI,EAAEI,KAAK,CAACJ,IAAI;MAChBC,GAAG,EAAEG,KAAK,CAACH,GAAG;MACd/4B,KAAK,EAAEk5B,KAAK,CAACl5B,KAAK;MAClBC,MAAM,EAAEi5B,KAAK,CAACj5B,MAAM;MACpB24B,KAAK,EAAEvR;IACT,CAAC;IAGD,IAAI5d,KAAK,EAAEjO,MAAM;IACjB,IAAI7C,GAAG,GAAG,CAAC;MACTwO,CAAC;MACD+U,EAAE;MACFxsB,EAAE;MACFC,EAAE;MACFC,EAAE;IACJ,IAAIs6B,IAAI,CAACmI,4BAA4B,CAAClG,0BAA0B,EAAE;MAChE,MAAMgN,cAAc,GAAG9T,eAAe,KAAK,CAAC;MAC5C,MAAM+T,OAAO,GAAGH,gBAAgB,CAAC,CAAC,CAAC,CAACL,KAAK;MACzC,MAAMS,OAAO,GAAGJ,gBAAgB,CAAC,CAAC,CAAC,CAACL,KAAK;MACzC,MAAMU,OAAO,GAAGL,gBAAgB,CAAC,CAAC,CAAC,CAACL,KAAK;MACzC,MAAMW,OAAO,GAAGJ,cAAc,GAAGF,gBAAgB,CAAC,CAAC,CAAC,CAACL,KAAK,GAAG,IAAI;MAKjEnvB,KAAK,GAAGgU,UAAU,CAAC,CAAC,CAAC,CAACe,SAAS,GAAG,CAAC;MACnChjB,MAAM,GAAG,CAAC,GAAG,IAAIiO,KAAK,IAAI,GAAG;MAE7B,MAAM+vB,UAAU,GAAGtP,IAAI,CAACzM,UAAU,CAAC,CAAC,CAAC;MACrC,MAAMgc,OAAO,GAAGpU,eAAe,GAAG,CAAC;MACnCnJ,EAAE,GAAGkd,OAAO,CAAClyC,MAAM;MACnB,IAAI,CAACsyC,UAAU,CAAC/K,qBAAqB,CAAC3B,wBAAwB,EAAE;QAE9D,KAAK3lB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAExO,GAAG,IAAI8gC,OAAO,EAAE;UACvC/pC,EAAE,GAAG0pC,OAAO,CAACjyB,CAAC,CAAC,GAAG3L,MAAM;UACxB7L,EAAE,GAAG0pC,OAAO,CAAClyB,CAAC,CAAC;UACfvX,EAAE,GAAG0pC,OAAO,CAACnyB,CAAC,CAAC;UACfkgB,GAAG,CAAC1uB,GAAG,EAAE,CAAC,GAAIjJ,EAAE,GAAG,KAAK,GAAGE,EAAE,IAAK6Z,KAAK;UACvC4d,GAAG,CAAC1uB,GAAG,EAAE,CAAC,GAAIjJ,EAAE,GAAG,OAAO,GAAGC,EAAE,GAAG,OAAO,GAAGC,EAAE,IAAK6Z,KAAK;UACxD4d,GAAG,CAAC1uB,GAAG,EAAE,CAAC,GAAIjJ,EAAE,GAAG,KAAK,GAAGC,EAAE,IAAK8Z,KAAK;QACzC;MACF,CAAC,MAAM;QAEL,KAAKtC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAExO,GAAG,IAAI8gC,OAAO,EAAE;UACvC/pC,EAAE,GAAG0pC,OAAO,CAACjyB,CAAC,CAAC,GAAG3L,MAAM;UACxB7L,EAAE,GAAG0pC,OAAO,CAAClyB,CAAC,CAAC;UACfvX,EAAE,GAAG0pC,OAAO,CAACnyB,CAAC,CAAC;UACf,MAAMva,CAAC,GAAG8C,EAAE,IAAKE,EAAE,GAAGD,EAAE,IAAK,CAAC,CAAC;UAE/B03B,GAAG,CAAC1uB,GAAG,EAAE,CAAC,GAAI/L,CAAC,GAAGgD,EAAE,IAAK6Z,KAAK;UAC9B4d,GAAG,CAAC1uB,GAAG,EAAE,CAAC,GAAG/L,CAAC,IAAI6c,KAAK;UACvB4d,GAAG,CAAC1uB,GAAG,EAAE,CAAC,GAAI/L,CAAC,GAAG+C,EAAE,IAAK8Z,KAAK;QAChC;MACF;MACA,IAAI0vB,cAAc,EAAE;QAClB,KAAKhyB,CAAC,GAAG,CAAC,EAAExO,GAAG,GAAG,CAAC,EAAEwO,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAExO,GAAG,IAAI,CAAC,EAAE;UAC1C0uB,GAAG,CAAC1uB,GAAG,CAAC,GAAI4gC,OAAO,CAACpyB,CAAC,CAAC,GAAG3L,MAAM,IAAKiO,KAAK;QAC3C;MACF;IACF,CAAC,MAAM;MAEL,KAAK,IAAIpb,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg3B,eAAe,EAAEh3B,CAAC,EAAE,EAAE;QACxC,MAAMuqC,KAAK,GAAGK,gBAAgB,CAAC5qC,CAAC,CAAC,CAACuqC,KAAK;QACvCnvB,KAAK,GAAGgU,UAAU,CAACpvB,CAAC,CAAC,CAACmwB,SAAS,GAAG,CAAC;QACnChjB,MAAM,GAAG,CAAC,GAAG,IAAIiO,KAAK,IAAI,GAAG;QAC7B,KAAK9Q,GAAG,GAAGtK,CAAC,EAAE8Y,CAAC,GAAG,CAAC,EAAE+U,EAAE,GAAG0c,KAAK,CAAC1xC,MAAM,EAAEigB,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAE;UACnDkgB,GAAG,CAAC1uB,GAAG,CAAC,GAAIigC,KAAK,CAACzxB,CAAC,CAAC,GAAG3L,MAAM,IAAKiO,KAAK;UACvC9Q,GAAG,IAAI0sB,eAAe;QACxB;MACF;IACF;IACA2T,YAAY,CAAC5uC,IAAI,CAACgb,MAAM,CAAC;EAC3B;EACA,OAAO4zB,YAAY;AACrB;AACA,SAASzL,cAAcA,CAAC3D,OAAO,EAAEwI,SAAS,EAAE;EAC1C,MAAMhI,GAAG,GAAGR,OAAO,CAACiB,GAAG;EACvB,MAAMxF,eAAe,GAAG+E,GAAG,CAACV,IAAI;EAChC,MAAMQ,IAAI,GAAGN,OAAO,CAAC8D,KAAK,CAAC0E,SAAS,CAAC;EACrC,KAAK,IAAI/jC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg3B,eAAe,EAAEh3B,CAAC,EAAE,EAAE;IACxC,MAAM4N,SAAS,GAAGiuB,IAAI,CAACzM,UAAU,CAACpvB,CAAC,CAAC;IACpC,MAAMqrC,QAAQ,GACZ9P,OAAO,CAAC6B,WAAW,CAACV,GAAG,CAAC18B,CAAC,CAAC,KAAKlH,SAAS,GACpCyiC,OAAO,CAAC6B,WAAW,CAACV,GAAG,CAAC18B,CAAC,CAAC,GAC1Bu7B,OAAO,CAAC6B,WAAW,CAACD,GAAG;IAC7BvvB,SAAS,CAACq8B,sBAAsB,GAAGoB,QAAQ;IAC3C,MAAMlL,QAAQ,GACZ5E,OAAO,CAAC6B,WAAW,CAACT,GAAG,CAAC38B,CAAC,CAAC,KAAKlH,SAAS,GACpCyiC,OAAO,CAAC6B,WAAW,CAACT,GAAG,CAAC38B,CAAC,CAAC,GAC1Bu7B,OAAO,CAAC6B,WAAW,CAAC2B,GAAG;IAC7BnxB,SAAS,CAACwyB,qBAAqB,GAAGD,QAAQ;EAC5C;EACAtE,IAAI,CAACmI,4BAA4B,GAAGzI,OAAO,CAAC6B,WAAW,CAAC2B,GAAG;AAC7D;AAGA,MAAM4I,OAAO,CAAC;EACZrtC,WAAWA,CAACqX,KAAK,EAAEC,MAAM,EAAE;IACzB,MAAM05B,YAAY,GAAGt+B,IAAI,CAACrR,IAAI,CAACgE,GAAG,CAACgS,KAAK,EAAEC,MAAM,CAAC,CAAC,GAAG,CAAC;IACtD,IAAI,CAAC25B,MAAM,GAAG,EAAE;IAChB,KAAK,IAAI9vC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6vC,YAAY,EAAE7vC,CAAC,EAAE,EAAE;MACrC,MAAM/D,KAAK,GAAG;QACZia,KAAK;QACLC,MAAM;QACN24B,KAAK,EAAE;MACT,CAAC;MACD,IAAI,CAACgB,MAAM,CAACxvC,IAAI,CAACrE,KAAK,CAAC;MACvBia,KAAK,GAAGhW,IAAI,CAACsR,IAAI,CAAC0E,KAAK,GAAG,CAAC,CAAC;MAC5BC,MAAM,GAAGjW,IAAI,CAACsR,IAAI,CAAC2E,MAAM,GAAG,CAAC,CAAC;IAChC;EACF;EAEAzG,KAAKA,CAAC1P,CAAC,EAAEqd,CAAC,EAAE;IACV,IAAI0yB,YAAY,GAAG,CAAC;MAClB7xC,KAAK,GAAG,CAAC;MACTjC,KAAK;IACP,OAAO8zC,YAAY,GAAG,IAAI,CAACD,MAAM,CAAC1yC,MAAM,EAAE;MACxCnB,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAACC,YAAY,CAAC;MACjC,MAAM/f,KAAK,GAAGhwB,CAAC,GAAGqd,CAAC,GAAGphB,KAAK,CAACia,KAAK;MACjC,IAAIja,KAAK,CAAC6yC,KAAK,CAAC9e,KAAK,CAAC,KAAK3yB,SAAS,EAAE;QACpCa,KAAK,GAAGjC,KAAK,CAAC6yC,KAAK,CAAC9e,KAAK,CAAC;QAC1B;MACF;MACA/zB,KAAK,CAAC+zB,KAAK,GAAGA,KAAK;MACnBhwB,CAAC,KAAK,CAAC;MACPqd,CAAC,KAAK,CAAC;MACP0yB,YAAY,EAAE;IAChB;IACAA,YAAY,EAAE;IACd9zC,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAACC,YAAY,CAAC;IACjC9zC,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC,GAAG9xB,KAAK;IAChC,IAAI,CAAC6xC,YAAY,GAAGA,YAAY;IAChC,OAAO,IAAI,CAAC7xC,KAAK;EACnB;EAEAkuC,cAAcA,CAAA,EAAG;IACf,MAAMnwC,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAAC,IAAI,CAACC,YAAY,CAAC;IAC5C9zC,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC,EAAE;EAC5B;EAEAmc,SAASA,CAAA,EAAG;IACV,IAAI4D,YAAY,GAAG,IAAI,CAACA,YAAY;IACpC,IAAI9zC,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAACC,YAAY,CAAC;IACrC,MAAM7xC,KAAK,GAAGjC,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC;IACtC+f,YAAY,EAAE;IACd,IAAIA,YAAY,GAAG,CAAC,EAAE;MACpB,IAAI,CAAC7xC,KAAK,GAAGA,KAAK;MAClB,OAAO,KAAK;IACd;IAEA,IAAI,CAAC6xC,YAAY,GAAGA,YAAY;IAChC9zC,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAACC,YAAY,CAAC;IACjC9zC,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC,GAAG9xB,KAAK;IAChC,OAAO,IAAI;EACb;AACF;AAEA,MAAM+tC,aAAa,CAAC;EAClBptC,WAAWA,CAACqX,KAAK,EAAEC,MAAM,EAAE65B,YAAY,EAAE;IACvC,MAAMH,YAAY,GAAGt+B,IAAI,CAACrR,IAAI,CAACgE,GAAG,CAACgS,KAAK,EAAEC,MAAM,CAAC,CAAC,GAAG,CAAC;IACtD,IAAI,CAAC25B,MAAM,GAAG,EAAE;IAChB,KAAK,IAAI9vC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6vC,YAAY,EAAE7vC,CAAC,EAAE,EAAE;MACrC,MAAM8uC,KAAK,GAAG,IAAIpuC,UAAU,CAACwV,KAAK,GAAGC,MAAM,CAAC;MAC5C,KAAK,IAAIkH,CAAC,GAAG,CAAC,EAAE+U,EAAE,GAAG0c,KAAK,CAAC1xC,MAAM,EAAEigB,CAAC,GAAG+U,EAAE,EAAE/U,CAAC,EAAE,EAAE;QAC9CyxB,KAAK,CAACzxB,CAAC,CAAC,GAAG2yB,YAAY;MACzB;MAEA,MAAM/zC,KAAK,GAAG;QACZia,KAAK;QACLC,MAAM;QACN24B;MACF,CAAC;MACD,IAAI,CAACgB,MAAM,CAACxvC,IAAI,CAACrE,KAAK,CAAC;MAEvBia,KAAK,GAAGhW,IAAI,CAACsR,IAAI,CAAC0E,KAAK,GAAG,CAAC,CAAC;MAC5BC,MAAM,GAAGjW,IAAI,CAACsR,IAAI,CAAC2E,MAAM,GAAG,CAAC,CAAC;IAChC;EACF;EAEAzG,KAAKA,CAAC1P,CAAC,EAAEqd,CAAC,EAAE4yB,SAAS,EAAE;IACrB,IAAIF,YAAY,GAAG,CAAC;IACpB,OAAOA,YAAY,GAAG,IAAI,CAACD,MAAM,CAAC1yC,MAAM,EAAE;MACxC,MAAMnB,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAACC,YAAY,CAAC;MACvC,MAAM/f,KAAK,GAAGhwB,CAAC,GAAGqd,CAAC,GAAGphB,KAAK,CAACia,KAAK;MACjCja,KAAK,CAAC+zB,KAAK,GAAGA,KAAK;MACnB,MAAM9xB,KAAK,GAAGjC,KAAK,CAAC6yC,KAAK,CAAC9e,KAAK,CAAC;MAEhC,IAAI9xB,KAAK,KAAK,IAAI,EAAE;QAClB;MACF;MAEA,IAAIA,KAAK,GAAG+xC,SAAS,EAAE;QACrB,IAAI,CAACF,YAAY,GAAGA,YAAY;QAEhC,IAAI,CAACG,eAAe,CAAC,CAAC;QACtB,OAAO,KAAK;MACd;MAEAlwC,CAAC,KAAK,CAAC;MACPqd,CAAC,KAAK,CAAC;MACP0yB,YAAY,EAAE;IAChB;IACA,IAAI,CAACA,YAAY,GAAGA,YAAY,GAAG,CAAC;IACpC,OAAO,IAAI;EACb;EAEA3D,cAAcA,CAAC6D,SAAS,EAAE;IACxB,MAAMh0C,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAAC,IAAI,CAACC,YAAY,CAAC;IAC5C9zC,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC,GAAGigB,SAAS,GAAG,CAAC;IACxC,IAAI,CAACC,eAAe,CAAC,CAAC;EACxB;EAEAA,eAAeA,CAAA,EAAG;IAChB,IAAIC,UAAU,GAAG,IAAI,CAACJ,YAAY;IAClC,IAAI9zC,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAACK,UAAU,CAAC;IACnC,MAAMC,YAAY,GAAGn0C,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC;IAC7C,OAAO,EAAEmgB,UAAU,IAAI,CAAC,EAAE;MACxBl0C,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAACK,UAAU,CAAC;MAC/Bl0C,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC,GAAGogB,YAAY;IACzC;EACF;EAEAjE,SAASA,CAAA,EAAG;IACV,IAAI4D,YAAY,GAAG,IAAI,CAACA,YAAY;IACpC,IAAI9zC,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAACC,YAAY,CAAC;IACrC,MAAM7xC,KAAK,GAAGjC,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC;IACtC/zB,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC,GAAG,IAAI;IAC/B+f,YAAY,EAAE;IACd,IAAIA,YAAY,GAAG,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,IAAI,CAACA,YAAY,GAAGA,YAAY;IAChC9zC,KAAK,GAAG,IAAI,CAAC6zC,MAAM,CAACC,YAAY,CAAC;IACjC9zC,KAAK,CAAC6yC,KAAK,CAAC7yC,KAAK,CAAC+zB,KAAK,CAAC,GAAG9xB,KAAK;IAChC,OAAO,IAAI;EACb;AACF;AAGA,MAAMmvC,QAAQ,CAAC;EACb,OAAOgD,eAAe,GAAG,EAAE;EAE3B,OAAOC,iBAAiB,GAAG,EAAE;EAK7B,OAAOC,oBAAoB,GAAG,IAAI7vC,UAAU,CAAC,CAC3C,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACzE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACzE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAC1E,CAAC;EAEF,OAAO8vC,cAAc,GAAG,IAAI9vC,UAAU,CAAC,CACrC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACzE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACzE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAC1E,CAAC;EAEF,OAAO+vC,cAAc,GAAG,IAAI/vC,UAAU,CAAC,CACrC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACzE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACzE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAC1E,CAAC;EAEF7B,WAAWA,CAACqX,KAAK,EAAEC,MAAM,EAAE6vB,OAAO,EAAEqG,aAAa,EAAES,EAAE,EAAE;IACrD,IAAI,CAAC52B,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,MAAM,GAAGA,MAAM;IAEpB,IAAIu6B,iBAAiB;IACrB,IAAI1K,OAAO,KAAK,IAAI,EAAE;MACpB0K,iBAAiB,GAAGrD,QAAQ,CAACoD,cAAc;IAC7C,CAAC,MAAM,IAAIzK,OAAO,KAAK,IAAI,EAAE;MAC3B0K,iBAAiB,GAAGrD,QAAQ,CAACmD,cAAc;IAC7C,CAAC,MAAM;MACLE,iBAAiB,GAAGrD,QAAQ,CAACkD,oBAAoB;IACnD;IACA,IAAI,CAACG,iBAAiB,GAAGA,iBAAiB;IAE1C,MAAMC,gBAAgB,GAAGz6B,KAAK,GAAGC,MAAM;IAIvC,IAAI,CAACy6B,qBAAqB,GAAG,IAAIlwC,UAAU,CAACiwC,gBAAgB,CAAC;IAC7D,IAAI,CAAC5C,eAAe,GAAG,IAAIrtC,UAAU,CAACiwC,gBAAgB,CAAC;IACvD,IAAI1C,oBAAoB;IACxB,IAAInB,EAAE,GAAG,EAAE,EAAE;MACXmB,oBAAoB,GAAG,IAAI3sC,WAAW,CAACqvC,gBAAgB,CAAC;IAC1D,CAAC,MAAM,IAAI7D,EAAE,GAAG,CAAC,EAAE;MACjBmB,oBAAoB,GAAG,IAAI9uB,WAAW,CAACwxB,gBAAgB,CAAC;IAC1D,CAAC,MAAM;MACL1C,oBAAoB,GAAG,IAAIvtC,UAAU,CAACiwC,gBAAgB,CAAC;IACzD;IACA,IAAI,CAAC1C,oBAAoB,GAAGA,oBAAoB;IAChD,IAAI,CAAC4C,eAAe,GAAG,IAAInwC,UAAU,CAACiwC,gBAAgB,CAAC;IAEvD,MAAMzC,WAAW,GAAG,IAAIxtC,UAAU,CAACiwC,gBAAgB,CAAC;IACpD,IAAItE,aAAa,KAAK,CAAC,EAAE;MACvB,KAAK,IAAIrsC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2wC,gBAAgB,EAAE3wC,CAAC,EAAE,EAAE;QACzCkuC,WAAW,CAACluC,CAAC,CAAC,GAAGqsC,aAAa;MAChC;IACF;IACA,IAAI,CAAC6B,WAAW,GAAGA,WAAW;IAE9B,IAAI,CAACx+B,KAAK,CAAC,CAAC;EACd;EAEAg+B,UAAUA,CAAC1mC,OAAO,EAAE;IAClB,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;EAEA0I,KAAKA,CAAA,EAAG;IAGN,IAAI,CAACwH,QAAQ,GAAG,IAAIyE,SAAS,CAAC,EAAE,CAAC;IAIjC,IAAI,CAACzE,QAAQ,CAAC,CAAC,CAAC,GAAI,CAAC,IAAI,CAAC,GAAI,CAAC;IAC/B,IAAI,CAACA,QAAQ,CAACm2B,QAAQ,CAACgD,eAAe,CAAC,GAAI,EAAE,IAAI,CAAC,GAAI,CAAC;IACvD,IAAI,CAACn5B,QAAQ,CAACm2B,QAAQ,CAACiD,iBAAiB,CAAC,GAAI,CAAC,IAAI,CAAC,GAAI,CAAC;EAC1D;EAEAQ,wBAAwBA,CAACn3B,GAAG,EAAEo3B,MAAM,EAAE/gB,KAAK,EAAE;IAC3C,MAAM4gB,qBAAqB,GAAG,IAAI,CAACA,qBAAqB;IACxD,MAAM16B,KAAK,GAAG,IAAI,CAACA,KAAK;MACtBC,MAAM,GAAG,IAAI,CAACA,MAAM;IACtB,MAAM64B,IAAI,GAAG+B,MAAM,GAAG,CAAC;IACvB,MAAM/D,KAAK,GAAG+D,MAAM,GAAG,CAAC,GAAG76B,KAAK;IAChC,IAAIlW,CAAC;IAEL,IAAI2Z,GAAG,GAAG,CAAC,EAAE;MACX3Z,CAAC,GAAGgwB,KAAK,GAAG9Z,KAAK;MACjB,IAAI84B,IAAI,EAAE;QACR4B,qBAAqB,CAAC5wC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;MACtC;MACA,IAAIgtC,KAAK,EAAE;QACT4D,qBAAqB,CAAC5wC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;MACtC;MACA4wC,qBAAqB,CAAC5wC,CAAC,CAAC,IAAI,IAAI;IAClC;IAEA,IAAI2Z,GAAG,GAAG,CAAC,GAAGxD,MAAM,EAAE;MACpBnW,CAAC,GAAGgwB,KAAK,GAAG9Z,KAAK;MACjB,IAAI84B,IAAI,EAAE;QACR4B,qBAAqB,CAAC5wC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;MACtC;MACA,IAAIgtC,KAAK,EAAE;QACT4D,qBAAqB,CAAC5wC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;MACtC;MACA4wC,qBAAqB,CAAC5wC,CAAC,CAAC,IAAI,IAAI;IAClC;IAEA,IAAIgvC,IAAI,EAAE;MACR4B,qBAAqB,CAAC5gB,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI;IAC1C;IACA,IAAIgd,KAAK,EAAE;MACT4D,qBAAqB,CAAC5gB,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI;IAC1C;IACA4gB,qBAAqB,CAAC5gB,KAAK,CAAC,IAAI,IAAI;EACtC;EAEA2d,8BAA8BA,CAAA,EAAG;IAC/B,MAAM3mC,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,MAAMkP,KAAK,GAAG,IAAI,CAACA,KAAK;MACtBC,MAAM,GAAG,IAAI,CAACA,MAAM;IACtB,MAAM83B,oBAAoB,GAAG,IAAI,CAACA,oBAAoB;IACtD,MAAMF,eAAe,GAAG,IAAI,CAACA,eAAe;IAC5C,MAAM6C,qBAAqB,GAAG,IAAI,CAACA,qBAAqB;IACxD,MAAMC,eAAe,GAAG,IAAI,CAACA,eAAe;IAC5C,MAAM35B,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC9B,MAAM85B,MAAM,GAAG,IAAI,CAACN,iBAAiB;IACrC,MAAMxC,WAAW,GAAG,IAAI,CAACA,WAAW;IACpC,MAAM+C,oBAAoB,GAAG,CAAC,CAAC;IAC/B,MAAMC,aAAa,GAAG,CAAC;IACvB,MAAMC,qBAAqB,GAAG,CAAC;IAE/B,KAAK,IAAI1xB,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGtJ,MAAM,EAAEsJ,EAAE,IAAI,CAAC,EAAE;MACrC,KAAK,IAAIpC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;QAC9B,IAAI2S,KAAK,GAAGvQ,EAAE,GAAGvJ,KAAK,GAAGmH,CAAC;QAC1B,KAAK,IAAI+zB,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAG,CAAC,EAAEA,EAAE,EAAE,EAAEphB,KAAK,IAAI9Z,KAAK,EAAE;UAC7C,MAAMlW,CAAC,GAAGyf,EAAE,GAAG2xB,EAAE;UACjB,IAAIpxC,CAAC,IAAImW,MAAM,EAAE;YACf;UACF;UAEA06B,eAAe,CAAC7gB,KAAK,CAAC,IAAIihB,oBAAoB;UAE9C,IAAIhD,oBAAoB,CAACje,KAAK,CAAC,IAAI,CAAC4gB,qBAAqB,CAAC5gB,KAAK,CAAC,EAAE;YAChE;UACF;UAEA,MAAM5S,YAAY,GAAG4zB,MAAM,CAACJ,qBAAqB,CAAC5gB,KAAK,CAAC,CAAC;UACzD,MAAMqhB,QAAQ,GAAGrqC,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEkG,YAAY,CAAC;UACxD,IAAIi0B,QAAQ,EAAE;YACZ,MAAM/0B,IAAI,GAAG,IAAI,CAACg1B,aAAa,CAACtxC,CAAC,EAAEqd,CAAC,EAAE2S,KAAK,CAAC;YAC5C+d,eAAe,CAAC/d,KAAK,CAAC,GAAG1T,IAAI;YAC7B2xB,oBAAoB,CAACje,KAAK,CAAC,GAAG,CAAC;YAC/B,IAAI,CAAC8gB,wBAAwB,CAAC9wC,CAAC,EAAEqd,CAAC,EAAE2S,KAAK,CAAC;YAC1C6gB,eAAe,CAAC7gB,KAAK,CAAC,IAAImhB,qBAAqB;UACjD;UACAjD,WAAW,CAACle,KAAK,CAAC,EAAE;UACpB6gB,eAAe,CAAC7gB,KAAK,CAAC,IAAIkhB,aAAa;QACzC;MACF;IACF;EACF;EAEAI,aAAaA,CAAC33B,GAAG,EAAEo3B,MAAM,EAAE/gB,KAAK,EAAE;IAChC,MAAM9Z,KAAK,GAAG,IAAI,CAACA,KAAK;MACtBC,MAAM,GAAG,IAAI,CAACA,MAAM;IACtB,MAAM83B,oBAAoB,GAAG,IAAI,CAACA,oBAAoB;IACtD,MAAMF,eAAe,GAAG,IAAI,CAACA,eAAe;IAC5C,IAAIwD,YAAY,EAAEC,KAAK,EAAEC,KAAK,EAAEC,aAAa;IAC7C,IAAIt0B,YAAY,EAAEjW,OAAO;IAGzBuqC,aAAa,GAAGX,MAAM,GAAG,CAAC,IAAI9C,oBAAoB,CAACje,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACnE,IAAI+gB,MAAM,GAAG,CAAC,GAAG76B,KAAK,IAAI+3B,oBAAoB,CAACje,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;MAC/DyhB,KAAK,GAAG1D,eAAe,CAAC/d,KAAK,GAAG,CAAC,CAAC;MAClC,IAAI0hB,aAAa,EAAE;QACjBF,KAAK,GAAGzD,eAAe,CAAC/d,KAAK,GAAG,CAAC,CAAC;QAClCuhB,YAAY,GAAG,CAAC,GAAGE,KAAK,GAAGD,KAAK;MAClC,CAAC,MAAM;QACLD,YAAY,GAAG,CAAC,GAAGE,KAAK,GAAGA,KAAK;MAClC;IACF,CAAC,MAAM,IAAIC,aAAa,EAAE;MACxBF,KAAK,GAAGzD,eAAe,CAAC/d,KAAK,GAAG,CAAC,CAAC;MAClCuhB,YAAY,GAAG,CAAC,GAAGC,KAAK,GAAGA,KAAK;IAClC,CAAC,MAAM;MACLD,YAAY,GAAG,CAAC;IAClB;IACA,MAAMI,sBAAsB,GAAG,CAAC,GAAGJ,YAAY;IAG/CG,aAAa,GAAG/3B,GAAG,GAAG,CAAC,IAAIs0B,oBAAoB,CAACje,KAAK,GAAG9Z,KAAK,CAAC,KAAK,CAAC;IACpE,IAAIyD,GAAG,GAAG,CAAC,GAAGxD,MAAM,IAAI83B,oBAAoB,CAACje,KAAK,GAAG9Z,KAAK,CAAC,KAAK,CAAC,EAAE;MACjEu7B,KAAK,GAAG1D,eAAe,CAAC/d,KAAK,GAAG9Z,KAAK,CAAC;MACtC,IAAIw7B,aAAa,EAAE;QACjBF,KAAK,GAAGzD,eAAe,CAAC/d,KAAK,GAAG9Z,KAAK,CAAC;QACtCq7B,YAAY,GAAG,CAAC,GAAGE,KAAK,GAAGD,KAAK,GAAGG,sBAAsB;MAC3D,CAAC,MAAM;QACLJ,YAAY,GAAG,CAAC,GAAGE,KAAK,GAAGA,KAAK,GAAGE,sBAAsB;MAC3D;IACF,CAAC,MAAM,IAAID,aAAa,EAAE;MACxBF,KAAK,GAAGzD,eAAe,CAAC/d,KAAK,GAAG9Z,KAAK,CAAC;MACtCq7B,YAAY,GAAG,CAAC,GAAGC,KAAK,GAAGA,KAAK,GAAGG,sBAAsB;IAC3D,CAAC,MAAM;MACLJ,YAAY,GAAGI,sBAAsB;IACvC;IAEA,IAAIJ,YAAY,IAAI,CAAC,EAAE;MACrBn0B,YAAY,GAAG,CAAC,GAAGm0B,YAAY;MAC/BpqC,OAAO,GAAG,IAAI,CAACH,OAAO,CAACiQ,OAAO,CAAC,IAAI,CAACC,QAAQ,EAAEkG,YAAY,CAAC;IAC7D,CAAC,MAAM;MACLA,YAAY,GAAG,CAAC,GAAGm0B,YAAY;MAC/BpqC,OAAO,GAAG,IAAI,CAACH,OAAO,CAACiQ,OAAO,CAAC,IAAI,CAACC,QAAQ,EAAEkG,YAAY,CAAC,GAAG,CAAC;IACjE;IACA,OAAOjW,OAAO;EAChB;EAEAymC,0BAA0BA,CAAA,EAAG;IAC3B,MAAM5mC,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,MAAMkP,KAAK,GAAG,IAAI,CAACA,KAAK;MACtBC,MAAM,GAAG,IAAI,CAACA,MAAM;IACtB,MAAM83B,oBAAoB,GAAG,IAAI,CAACA,oBAAoB;IACtD,MAAM2C,qBAAqB,GAAG,IAAI,CAACA,qBAAqB;IACxD,MAAM15B,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC9B,MAAMg3B,WAAW,GAAG,IAAI,CAACA,WAAW;IACpC,MAAM2C,eAAe,GAAG,IAAI,CAACA,eAAe;IAC5C,MAAMK,aAAa,GAAG,CAAC;IACvB,MAAMC,qBAAqB,GAAG,CAAC;IAC/B,MAAM/zC,MAAM,GAAG8Y,KAAK,GAAGC,MAAM;IAC7B,MAAMy7B,MAAM,GAAG17B,KAAK,GAAG,CAAC;IAExB,KAAK,IAAI27B,MAAM,GAAG,CAAC,EAAEC,SAAS,EAAED,MAAM,GAAGz0C,MAAM,EAAEy0C,MAAM,GAAGC,SAAS,EAAE;MACnEA,SAAS,GAAG5xC,IAAI,CAACC,GAAG,CAAC/C,MAAM,EAAEy0C,MAAM,GAAGD,MAAM,CAAC;MAC7C,KAAK,IAAIv0B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;QAC9B,KAAK,IAAI2S,KAAK,GAAG6hB,MAAM,GAAGx0B,CAAC,EAAE2S,KAAK,GAAG8hB,SAAS,EAAE9hB,KAAK,IAAI9Z,KAAK,EAAE;UAE9D,IACE,CAAC+3B,oBAAoB,CAACje,KAAK,CAAC,IAC5B,CAAC6gB,eAAe,CAAC7gB,KAAK,CAAC,GAAGkhB,aAAa,MAAM,CAAC,EAC9C;YACA;UACF;UAEA,IAAI9zB,YAAY,GAAG,EAAE;UACrB,IAAI,CAACyzB,eAAe,CAAC7gB,KAAK,CAAC,GAAGmhB,qBAAqB,MAAM,CAAC,EAAE;YAC1DN,eAAe,CAAC7gB,KAAK,CAAC,IAAImhB,qBAAqB;YAE/C,MAAMY,YAAY,GAAGnB,qBAAqB,CAAC5gB,KAAK,CAAC,GAAG,GAAG;YACvD5S,YAAY,GAAG20B,YAAY,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;UAC7C;UAEA,MAAM11B,GAAG,GAAGrV,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEkG,YAAY,CAAC;UACnD6wB,oBAAoB,CAACje,KAAK,CAAC,GACxBie,oBAAoB,CAACje,KAAK,CAAC,IAAI,CAAC,GAAI3T,GAAG;UAC1C6xB,WAAW,CAACle,KAAK,CAAC,EAAE;UACpB6gB,eAAe,CAAC7gB,KAAK,CAAC,IAAIkhB,aAAa;QACzC;MACF;IACF;EACF;EAEArD,cAAcA,CAAA,EAAG;IACf,MAAM7mC,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,MAAMkP,KAAK,GAAG,IAAI,CAACA,KAAK;MACtBC,MAAM,GAAG,IAAI,CAACA,MAAM;IACtB,MAAMy6B,qBAAqB,GAAG,IAAI,CAACA,qBAAqB;IACxD,MAAM3C,oBAAoB,GAAG,IAAI,CAACA,oBAAoB;IACtD,MAAMF,eAAe,GAAG,IAAI,CAACA,eAAe;IAC5C,MAAM72B,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC9B,MAAM85B,MAAM,GAAG,IAAI,CAACN,iBAAiB;IACrC,MAAMxC,WAAW,GAAG,IAAI,CAACA,WAAW;IACpC,MAAM2C,eAAe,GAAG,IAAI,CAACA,eAAe;IAC5C,MAAMK,aAAa,GAAG,CAAC;IACvB,MAAMC,qBAAqB,GAAG,CAAC;IAC/B,MAAMa,UAAU,GAAG97B,KAAK;IACxB,MAAM+7B,WAAW,GAAG/7B,KAAK,GAAG,CAAC;IAC7B,MAAMg8B,aAAa,GAAGh8B,KAAK,GAAG,CAAC;IAC/B,IAAIi8B,KAAK;IACT,KAAK,IAAI1yB,EAAE,GAAG,CAAC,EAAEA,EAAE,GAAGtJ,MAAM,EAAEsJ,EAAE,GAAG0yB,KAAK,EAAE;MACxCA,KAAK,GAAGjyC,IAAI,CAACC,GAAG,CAACsf,EAAE,GAAG,CAAC,EAAEtJ,MAAM,CAAC;MAChC,MAAMi8B,SAAS,GAAG3yB,EAAE,GAAGvJ,KAAK;MAC5B,MAAMm8B,aAAa,GAAG5yB,EAAE,GAAG,CAAC,GAAGtJ,MAAM;MACrC,KAAK,IAAIkH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGnH,KAAK,EAAEmH,CAAC,EAAE,EAAE;QAC9B,MAAMw0B,MAAM,GAAGO,SAAS,GAAG/0B,CAAC;QAG5B,MAAMi1B,QAAQ,GACZD,aAAa,IACbxB,eAAe,CAACgB,MAAM,CAAC,KAAK,CAAC,IAC7BhB,eAAe,CAACgB,MAAM,GAAGG,UAAU,CAAC,KAAK,CAAC,IAC1CnB,eAAe,CAACgB,MAAM,GAAGI,WAAW,CAAC,KAAK,CAAC,IAC3CpB,eAAe,CAACgB,MAAM,GAAGK,aAAa,CAAC,KAAK,CAAC,IAC7CtB,qBAAqB,CAACiB,MAAM,CAAC,KAAK,CAAC,IACnCjB,qBAAqB,CAACiB,MAAM,GAAGG,UAAU,CAAC,KAAK,CAAC,IAChDpB,qBAAqB,CAACiB,MAAM,GAAGI,WAAW,CAAC,KAAK,CAAC,IACjDrB,qBAAqB,CAACiB,MAAM,GAAGK,aAAa,CAAC,KAAK,CAAC;QACrD,IAAId,EAAE,GAAG,CAAC;UACRphB,KAAK,GAAG6hB,MAAM;QAChB,IAAI7xC,CAAC,GAAGyf,EAAE;UACRnD,IAAI;QACN,IAAIg2B,QAAQ,EAAE;UACZ,MAAMC,wBAAwB,GAAGvrC,OAAO,CAACiQ,OAAO,CAC9CC,QAAQ,EACRm2B,QAAQ,CAACiD,iBACX,CAAC;UACD,IAAI,CAACiC,wBAAwB,EAAE;YAC7BrE,WAAW,CAAC2D,MAAM,CAAC,EAAE;YACrB3D,WAAW,CAAC2D,MAAM,GAAGG,UAAU,CAAC,EAAE;YAClC9D,WAAW,CAAC2D,MAAM,GAAGI,WAAW,CAAC,EAAE;YACnC/D,WAAW,CAAC2D,MAAM,GAAGK,aAAa,CAAC,EAAE;YACrC;UACF;UACAd,EAAE,GACCpqC,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEm2B,QAAQ,CAACgD,eAAe,CAAC,IAAI,CAAC,GACzDrpC,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEm2B,QAAQ,CAACgD,eAAe,CAAC;UACrD,IAAIe,EAAE,KAAK,CAAC,EAAE;YACZpxC,CAAC,GAAGyf,EAAE,GAAG2xB,EAAE;YACXphB,KAAK,IAAIohB,EAAE,GAAGl7B,KAAK;UACrB;UAEAoG,IAAI,GAAG,IAAI,CAACg1B,aAAa,CAACtxC,CAAC,EAAEqd,CAAC,EAAE2S,KAAK,CAAC;UACtC+d,eAAe,CAAC/d,KAAK,CAAC,GAAG1T,IAAI;UAC7B2xB,oBAAoB,CAACje,KAAK,CAAC,GAAG,CAAC;UAC/B,IAAI,CAAC8gB,wBAAwB,CAAC9wC,CAAC,EAAEqd,CAAC,EAAE2S,KAAK,CAAC;UAC1C6gB,eAAe,CAAC7gB,KAAK,CAAC,IAAImhB,qBAAqB;UAE/CnhB,KAAK,GAAG6hB,MAAM;UACd,KAAK,IAAIW,EAAE,GAAG/yB,EAAE,EAAE+yB,EAAE,IAAIxyC,CAAC,EAAEwyC,EAAE,EAAE,EAAExiB,KAAK,IAAI9Z,KAAK,EAAE;YAC/Cg4B,WAAW,CAACle,KAAK,CAAC,EAAE;UACtB;UAEAohB,EAAE,EAAE;QACN;QACA,KAAKpxC,CAAC,GAAGyf,EAAE,GAAG2xB,EAAE,EAAEpxC,CAAC,GAAGmyC,KAAK,EAAEnyC,CAAC,EAAE,EAAEgwB,KAAK,IAAI9Z,KAAK,EAAE;UAChD,IACE+3B,oBAAoB,CAACje,KAAK,CAAC,IAC3B,CAAC6gB,eAAe,CAAC7gB,KAAK,CAAC,GAAGkhB,aAAa,MAAM,CAAC,EAC9C;YACA;UACF;UAEA,MAAM9zB,YAAY,GAAG4zB,MAAM,CAACJ,qBAAqB,CAAC5gB,KAAK,CAAC,CAAC;UACzD,MAAMqhB,QAAQ,GAAGrqC,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEkG,YAAY,CAAC;UACxD,IAAIi0B,QAAQ,KAAK,CAAC,EAAE;YAClB/0B,IAAI,GAAG,IAAI,CAACg1B,aAAa,CAACtxC,CAAC,EAAEqd,CAAC,EAAE2S,KAAK,CAAC;YACtC+d,eAAe,CAAC/d,KAAK,CAAC,GAAG1T,IAAI;YAC7B2xB,oBAAoB,CAACje,KAAK,CAAC,GAAG,CAAC;YAC/B,IAAI,CAAC8gB,wBAAwB,CAAC9wC,CAAC,EAAEqd,CAAC,EAAE2S,KAAK,CAAC;YAC1C6gB,eAAe,CAAC7gB,KAAK,CAAC,IAAImhB,qBAAqB;UACjD;UACAjD,WAAW,CAACle,KAAK,CAAC,EAAE;QACtB;MACF;IACF;EACF;EAEA8d,uBAAuBA,CAAA,EAAG;IACxB,MAAM9mC,OAAO,GAAG,IAAI,CAACA,OAAO;IAC5B,MAAMkQ,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAC9B,MAAMsL,MAAM,GACTxb,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEm2B,QAAQ,CAACgD,eAAe,CAAC,IAAI,CAAC,GACxDrpC,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEm2B,QAAQ,CAACgD,eAAe,CAAC,IAAI,CAAE,GACzDrpC,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEm2B,QAAQ,CAACgD,eAAe,CAAC,IAAI,CAAE,GAC1DrpC,OAAO,CAACiQ,OAAO,CAACC,QAAQ,EAAEm2B,QAAQ,CAACgD,eAAe,CAAC;IACrD,IAAI7tB,MAAM,KAAK,GAAG,EAAE;MAClB,MAAM,IAAI2b,QAAQ,CAAC,6BAA6B,CAAC;IACnD;EACF;AACF;AAGA,MAAMsU,SAAS,CAAC;EACd5zC,WAAWA,CAAA,EAAG;IACZ,IAAI,IAAI,CAACA,WAAW,KAAK4zC,SAAS,EAAE;MAClC/1C,gBAAW,CAAC,8BAA8B,CAAC;IAC7C;EACF;EAEAqyC,SAASA,CAAC3G,QAAQ,EAAEsK,EAAE,EAAElb,EAAE,EAAE;IAC1B,IAAImb,EAAE,GAAGvK,QAAQ,CAAC,CAAC,CAAC;IACpB,KAAK,IAAIpoC,CAAC,GAAG,CAAC,EAAEuH,EAAE,GAAG6gC,QAAQ,CAAChrC,MAAM,EAAE4C,CAAC,GAAGuH,EAAE,EAAEvH,CAAC,EAAE,EAAE;MACjD2yC,EAAE,GAAG,IAAI,CAACC,OAAO,CAACD,EAAE,EAAEvK,QAAQ,CAACpoC,CAAC,CAAC,EAAE0yC,EAAE,EAAElb,EAAE,CAAC;IAC5C;IACA,OAAOmb,EAAE;EACX;EAEAE,MAAMA,CAACtxC,MAAM,EAAEmQ,MAAM,EAAE7G,IAAI,EAAE;IAE3B,IAAIumC,EAAE,GAAG1/B,MAAM,GAAG,CAAC;MACjBohC,EAAE,GAAGphC,MAAM,GAAG,CAAC;IACjB,IAAI8gC,EAAE,GAAG9gC,MAAM,GAAG7G,IAAI,GAAG,CAAC;MACxBkoC,EAAE,GAAGrhC,MAAM,GAAG7G,IAAI;IACpBtJ,MAAM,CAAC6vC,EAAE,EAAE,CAAC,GAAG7vC,MAAM,CAACuxC,EAAE,EAAE,CAAC;IAC3BvxC,MAAM,CAACwxC,EAAE,EAAE,CAAC,GAAGxxC,MAAM,CAACixC,EAAE,EAAE,CAAC;IAC3BjxC,MAAM,CAAC6vC,EAAE,EAAE,CAAC,GAAG7vC,MAAM,CAACuxC,EAAE,EAAE,CAAC;IAC3BvxC,MAAM,CAACwxC,EAAE,EAAE,CAAC,GAAGxxC,MAAM,CAACixC,EAAE,EAAE,CAAC;IAC3BjxC,MAAM,CAAC6vC,EAAE,EAAE,CAAC,GAAG7vC,MAAM,CAACuxC,EAAE,EAAE,CAAC;IAC3BvxC,MAAM,CAACwxC,EAAE,EAAE,CAAC,GAAGxxC,MAAM,CAACixC,EAAE,EAAE,CAAC;IAC3BjxC,MAAM,CAAC6vC,EAAE,CAAC,GAAG7vC,MAAM,CAACuxC,EAAE,CAAC;IACvBvxC,MAAM,CAACwxC,EAAE,CAAC,GAAGxxC,MAAM,CAACixC,EAAE,CAAC;EACzB;EAEAQ,MAAMA,CAAC5sC,CAAC,EAAEsL,MAAM,EAAEtU,MAAM,EAAE;IACxBV,gBAAW,CAAC,iCAAiC,CAAC;EAChD;EAEAk2C,OAAOA,CAACD,EAAE,EAAEM,QAAQ,EAAEP,EAAE,EAAElb,EAAE,EAAE;IAC5B,MAAM0b,OAAO,GAAGP,EAAE,CAACz8B,KAAK;MACtBi9B,QAAQ,GAAGR,EAAE,CAACx8B,MAAM;IACtB,IAAIi9B,OAAO,GAAGT,EAAE,CAAC7D,KAAK;IACtB,MAAM54B,KAAK,GAAG+8B,QAAQ,CAAC/8B,KAAK;IAC5B,MAAMC,MAAM,GAAG88B,QAAQ,CAAC98B,MAAM;IAC9B,MAAM24B,KAAK,GAAGmE,QAAQ,CAACnE,KAAK;IAC5B,IAAI9uC,CAAC,EAAEqd,CAAC,EAAEyB,CAAC,EAAEob,CAAC,EAAEmZ,CAAC,EAAErlC,CAAC;IAGpB,KAAK8Q,CAAC,GAAG,CAAC,EAAE9e,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmzC,QAAQ,EAAEnzC,CAAC,EAAE,EAAE;MACpCk6B,CAAC,GAAGl6B,CAAC,GAAG,CAAC,GAAGkW,KAAK;MACjB,KAAKmH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG61B,OAAO,EAAE71B,CAAC,EAAE,EAAEyB,CAAC,EAAE,EAAEob,CAAC,IAAI,CAAC,EAAE;QACzC4U,KAAK,CAAC5U,CAAC,CAAC,GAAGkZ,OAAO,CAACt0B,CAAC,CAAC;MACvB;IACF;IAEAs0B,OAAO,GAAGT,EAAE,CAAC7D,KAAK,GAAG,IAAI;IAEzB,MAAMwE,aAAa,GAAG,CAAC;IACvB,MAAMC,SAAS,GAAG,IAAI3E,YAAY,CAAC14B,KAAK,GAAG,CAAC,GAAGo9B,aAAa,CAAC;IAG7D,IAAIp9B,KAAK,KAAK,CAAC,EAAE;MAEf,IAAI,CAACw8B,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;QAClB,KAAK1kC,CAAC,GAAG,CAAC,EAAE8Q,CAAC,GAAG,CAAC,EAAE9Q,CAAC,GAAGmI,MAAM,EAAEnI,CAAC,EAAE,EAAE8Q,CAAC,IAAI5I,KAAK,EAAE;UAC9C44B,KAAK,CAAChwB,CAAC,CAAC,IAAI,GAAG;QACjB;MACF;IACF,CAAC,MAAM;MACL,KAAK9Q,CAAC,GAAG,CAAC,EAAE8Q,CAAC,GAAG,CAAC,EAAE9Q,CAAC,GAAGmI,MAAM,EAAEnI,CAAC,EAAE,EAAE8Q,CAAC,IAAI5I,KAAK,EAAE;QAC9Cq9B,SAAS,CAAC5nC,GAAG,CAACmjC,KAAK,CAACzuC,QAAQ,CAACye,CAAC,EAAEA,CAAC,GAAG5I,KAAK,CAAC,EAAEo9B,aAAa,CAAC;QAE1D,IAAI,CAACT,MAAM,CAACU,SAAS,EAAED,aAAa,EAAEp9B,KAAK,CAAC;QAC5C,IAAI,CAAC88B,MAAM,CAACO,SAAS,EAAED,aAAa,EAAEp9B,KAAK,CAAC;QAE5C44B,KAAK,CAACnjC,GAAG,CAAC4nC,SAAS,CAAClzC,QAAQ,CAACizC,aAAa,EAAEA,aAAa,GAAGp9B,KAAK,CAAC,EAAE4I,CAAC,CAAC;MACxE;IACF;IAQA,IAAI00B,UAAU,GAAG,EAAE;IACnB,MAAMC,UAAU,GAAG,EAAE;IACrB,KAAKzzC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwzC,UAAU,EAAExzC,CAAC,EAAE,EAAE;MAC/ByzC,UAAU,CAACnzC,IAAI,CAAC,IAAIsuC,YAAY,CAACz4B,MAAM,GAAG,CAAC,GAAGm9B,aAAa,CAAC,CAAC;IAC/D;IACA,IAAIvwC,CAAC;MACH2wC,aAAa,GAAG,CAAC;IACnBf,EAAE,GAAGW,aAAa,GAAGn9B,MAAM;IAG3B,IAAIA,MAAM,KAAK,CAAC,EAAE;MAEhB,IAAI,CAACqhB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;QAClB,KAAK6b,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGn9B,KAAK,EAAEm9B,CAAC,EAAE,EAAE;UAC1BvE,KAAK,CAACuE,CAAC,CAAC,IAAI,GAAG;QACjB;MACF;IACF,CAAC,MAAM;MACL,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGn9B,KAAK,EAAEm9B,CAAC,EAAE,EAAE;QAE1B,IAAIK,aAAa,KAAK,CAAC,EAAE;UACvBF,UAAU,GAAGtzC,IAAI,CAACC,GAAG,CAAC+V,KAAK,GAAGm9B,CAAC,EAAEG,UAAU,CAAC;UAC5C,KAAK10B,CAAC,GAAGu0B,CAAC,EAAEnZ,CAAC,GAAGoZ,aAAa,EAAEpZ,CAAC,GAAGyY,EAAE,EAAE7zB,CAAC,IAAI5I,KAAK,EAAEgkB,CAAC,EAAE,EAAE;YACtD,KAAKn3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGywC,UAAU,EAAEzwC,CAAC,EAAE,EAAE;cAC/B0wC,UAAU,CAAC1wC,CAAC,CAAC,CAACm3B,CAAC,CAAC,GAAG4U,KAAK,CAAChwB,CAAC,GAAG/b,CAAC,CAAC;YACjC;UACF;UACA2wC,aAAa,GAAGF,UAAU;QAC5B;QAEAE,aAAa,EAAE;QACf,MAAMnyC,MAAM,GAAGkyC,UAAU,CAACC,aAAa,CAAC;QACxC,IAAI,CAACb,MAAM,CAACtxC,MAAM,EAAE+xC,aAAa,EAAEn9B,MAAM,CAAC;QAC1C,IAAI,CAAC68B,MAAM,CAACzxC,MAAM,EAAE+xC,aAAa,EAAEn9B,MAAM,CAAC;QAG1C,IAAIu9B,aAAa,KAAK,CAAC,EAAE;UACvB50B,CAAC,GAAGu0B,CAAC,GAAGG,UAAU,GAAG,CAAC;UACtB,KAAKtZ,CAAC,GAAGoZ,aAAa,EAAEpZ,CAAC,GAAGyY,EAAE,EAAE7zB,CAAC,IAAI5I,KAAK,EAAEgkB,CAAC,EAAE,EAAE;YAC/C,KAAKn3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGywC,UAAU,EAAEzwC,CAAC,EAAE,EAAE;cAC/B+rC,KAAK,CAAChwB,CAAC,GAAG/b,CAAC,CAAC,GAAG0wC,UAAU,CAAC1wC,CAAC,CAAC,CAACm3B,CAAC,CAAC;YACjC;UACF;QACF;MACF;IACF;IAEA,OAAO;MAAEhkB,KAAK;MAAEC,MAAM;MAAE24B;IAAM,CAAC;EACjC;AACF;AAGA,MAAMJ,qBAAqB,SAAS+D,SAAS,CAAC;EAC5CO,MAAMA,CAAC5sC,CAAC,EAAEsL,MAAM,EAAEtU,MAAM,EAAE;IACxB,MAAM4gC,GAAG,GAAG5gC,MAAM,IAAI,CAAC;IACvBsU,MAAM,IAAI,CAAC;IACX,IAAI2L,CAAC,EAAE7a,CAAC,EAAEmxC,OAAO,EAAEj7B,IAAI;IAEvB,MAAMk7B,KAAK,GAAG,CAAC,iBAAiB;IAChC,MAAMC,IAAI,GAAG,CAAC,iBAAiB;IAC/B,MAAMC,KAAK,GAAG,iBAAiB;IAC/B,MAAMrtC,KAAK,GAAG,iBAAiB;IAC/B,MAAMxR,CAAC,GAAG,iBAAiB;IAC3B,MAAM8+C,EAAE,GAAG,CAAC,GAAG9+C,CAAC;IAKhBooB,CAAC,GAAG3L,MAAM,GAAG,CAAC;IACd,KAAKlP,CAAC,GAAGw7B,GAAG,GAAG,CAAC,EAAEx7B,CAAC,EAAE,EAAE6a,CAAC,IAAI,CAAC,EAAE;MAC7BjX,CAAC,CAACiX,CAAC,CAAC,IAAI02B,EAAE;IACZ;IAGA12B,CAAC,GAAG3L,MAAM,GAAG,CAAC;IACdiiC,OAAO,GAAGltC,KAAK,GAAGL,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;IAC1B,KAAK7a,CAAC,GAAGw7B,GAAG,GAAG,CAAC,EAAEx7B,CAAC,EAAE,EAAE6a,CAAC,IAAI,CAAC,EAAE;MAC7B3E,IAAI,GAAGjS,KAAK,GAAGL,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;MACvBjX,CAAC,CAACiX,CAAC,CAAC,GAAGpoB,CAAC,GAAGmR,CAAC,CAACiX,CAAC,CAAC,GAAGs2B,OAAO,GAAGj7B,IAAI;MAChC,IAAIlW,CAAC,EAAE,EAAE;QACP6a,CAAC,IAAI,CAAC;QACNs2B,OAAO,GAAGltC,KAAK,GAAGL,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;QAC1BjX,CAAC,CAACiX,CAAC,CAAC,GAAGpoB,CAAC,GAAGmR,CAAC,CAACiX,CAAC,CAAC,GAAGs2B,OAAO,GAAGj7B,IAAI;MAClC,CAAC,MAAM;QACL;MACF;IACF;IAGA2E,CAAC,GAAG3L,MAAM,GAAG,CAAC;IACdiiC,OAAO,GAAGG,KAAK,GAAG1tC,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;IAC1B,KAAK7a,CAAC,GAAGw7B,GAAG,GAAG,CAAC,EAAEx7B,CAAC,EAAE,EAAE6a,CAAC,IAAI,CAAC,EAAE;MAC7B3E,IAAI,GAAGo7B,KAAK,GAAG1tC,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;MACvBjX,CAAC,CAACiX,CAAC,CAAC,IAAIs2B,OAAO,GAAGj7B,IAAI;MACtB,IAAIlW,CAAC,EAAE,EAAE;QACP6a,CAAC,IAAI,CAAC;QACNs2B,OAAO,GAAGG,KAAK,GAAG1tC,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;QAC1BjX,CAAC,CAACiX,CAAC,CAAC,IAAIs2B,OAAO,GAAGj7B,IAAI;MACxB,CAAC,MAAM;QACL;MACF;IACF;IAGA2E,CAAC,GAAG3L,MAAM;IACViiC,OAAO,GAAGE,IAAI,GAAGztC,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK7a,CAAC,GAAGw7B,GAAG,GAAG,CAAC,EAAEx7B,CAAC,EAAE,EAAE6a,CAAC,IAAI,CAAC,EAAE;MAC7B3E,IAAI,GAAGm7B,IAAI,GAAGztC,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;MACtBjX,CAAC,CAACiX,CAAC,CAAC,IAAIs2B,OAAO,GAAGj7B,IAAI;MACtB,IAAIlW,CAAC,EAAE,EAAE;QACP6a,CAAC,IAAI,CAAC;QACNs2B,OAAO,GAAGE,IAAI,GAAGztC,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;QACzBjX,CAAC,CAACiX,CAAC,CAAC,IAAIs2B,OAAO,GAAGj7B,IAAI;MACxB,CAAC,MAAM;QACL;MACF;IACF;IAGA,IAAIslB,GAAG,KAAK,CAAC,EAAE;MACb3gB,CAAC,GAAG3L,MAAM,GAAG,CAAC;MACdiiC,OAAO,GAAGC,KAAK,GAAGxtC,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;MAC1B,KAAK7a,CAAC,GAAGw7B,GAAG,EAAEx7B,CAAC,EAAE,EAAE6a,CAAC,IAAI,CAAC,EAAE;QACzB3E,IAAI,GAAGk7B,KAAK,GAAGxtC,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;QACvBjX,CAAC,CAACiX,CAAC,CAAC,IAAIs2B,OAAO,GAAGj7B,IAAI;QACtB,IAAIlW,CAAC,EAAE,EAAE;UACP6a,CAAC,IAAI,CAAC;UACNs2B,OAAO,GAAGC,KAAK,GAAGxtC,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC;UAC1BjX,CAAC,CAACiX,CAAC,CAAC,IAAIs2B,OAAO,GAAGj7B,IAAI;QACxB,CAAC,MAAM;UACL;QACF;MACF;IACF;EACF;AACF;AAGA,MAAM+1B,mBAAmB,SAASgE,SAAS,CAAC;EAC1CO,MAAMA,CAAC5sC,CAAC,EAAEsL,MAAM,EAAEtU,MAAM,EAAE;IACxB,MAAM4gC,GAAG,GAAG5gC,MAAM,IAAI,CAAC;IACvBsU,MAAM,IAAI,CAAC;IACX,IAAI2L,CAAC,EAAE7a,CAAC;IAER,KAAK6a,CAAC,GAAG3L,MAAM,EAAElP,CAAC,GAAGw7B,GAAG,GAAG,CAAC,EAAEx7B,CAAC,EAAE,EAAE6a,CAAC,IAAI,CAAC,EAAE;MACzCjX,CAAC,CAACiX,CAAC,CAAC,IAAKjX,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC,GAAGjX,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAK,CAAC;IACxC;IAEA,KAAKA,CAAC,GAAG3L,MAAM,GAAG,CAAC,EAAElP,CAAC,GAAGw7B,GAAG,EAAEx7B,CAAC,EAAE,EAAE6a,CAAC,IAAI,CAAC,EAAE;MACzCjX,CAAC,CAACiX,CAAC,CAAC,IAAKjX,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC,GAAGjX,CAAC,CAACiX,CAAC,GAAG,CAAC,CAAC,IAAK,CAAC;IACpC;EACF;AACF;;;ACvxE0B;AACmB;AACH;AACD;AAGzC,MAAM22B,YAAY,GACkB,SAAwC;AAE5E,MAAMC,UAAU,GACoB,WAAsC","sources":["webpack://pdf.js/./node_modules/core-js/internals/a-callable.js","webpack://pdf.js/./node_modules/core-js/internals/a-possible-prototype.js","webpack://pdf.js/./node_modules/core-js/internals/a-set.js","webpack://pdf.js/./node_modules/core-js/internals/an-instance.js","webpack://pdf.js/./node_modules/core-js/internals/an-object.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-byte-length.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-is-detached.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-transfer.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdf.js/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://pdf.js/./node_modules/core-js/internals/array-includes.js","webpack://pdf.js/./node_modules/core-js/internals/array-set-length.js","webpack://pdf.js/./node_modules/core-js/internals/array-to-reversed.js","webpack://pdf.js/./node_modules/core-js/internals/array-with.js","webpack://pdf.js/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdf.js/./node_modules/core-js/internals/classof-raw.js","webpack://pdf.js/./node_modules/core-js/internals/classof.js","webpack://pdf.js/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdf.js/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdf.js/./node_modules/core-js/internals/create-iter-result-object.js","webpack://pdf.js/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdf.js/./node_modules/core-js/internals/create-property-descriptor.js","webpack://pdf.js/./node_modules/core-js/internals/create-property.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-ins.js","webpack://pdf.js/./node_modules/core-js/internals/define-global-property.js","webpack://pdf.js/./node_modules/core-js/internals/descriptors.js","webpack://pdf.js/./node_modules/core-js/internals/detach-transferable.js","webpack://pdf.js/./node_modules/core-js/internals/document-create-element.js","webpack://pdf.js/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://pdf.js/./node_modules/core-js/internals/engine-is-browser.js","webpack://pdf.js/./node_modules/core-js/internals/engine-is-deno.js","webpack://pdf.js/./node_modules/core-js/internals/engine-is-node.js","webpack://pdf.js/./node_modules/core-js/internals/engine-user-agent.js","webpack://pdf.js/./node_modules/core-js/internals/engine-v8-version.js","webpack://pdf.js/./node_modules/core-js/internals/enum-bug-keys.js","webpack://pdf.js/./node_modules/core-js/internals/export.js","webpack://pdf.js/./node_modules/core-js/internals/fails.js","webpack://pdf.js/./node_modules/core-js/internals/function-bind-native.js","webpack://pdf.js/./node_modules/core-js/internals/function-call.js","webpack://pdf.js/./node_modules/core-js/internals/function-name.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this.js","webpack://pdf.js/./node_modules/core-js/internals/get-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator-direct.js","webpack://pdf.js/./node_modules/core-js/internals/get-method.js","webpack://pdf.js/./node_modules/core-js/internals/get-set-record.js","webpack://pdf.js/./node_modules/core-js/internals/global.js","webpack://pdf.js/./node_modules/core-js/internals/has-own-property.js","webpack://pdf.js/./node_modules/core-js/internals/hidden-keys.js","webpack://pdf.js/./node_modules/core-js/internals/html.js","webpack://pdf.js/./node_modules/core-js/internals/ie8-dom-define.js","webpack://pdf.js/./node_modules/core-js/internals/indexed-object.js","webpack://pdf.js/./node_modules/core-js/internals/inspect-source.js","webpack://pdf.js/./node_modules/core-js/internals/internal-state.js","webpack://pdf.js/./node_modules/core-js/internals/is-array.js","webpack://pdf.js/./node_modules/core-js/internals/is-big-int-array.js","webpack://pdf.js/./node_modules/core-js/internals/is-callable.js","webpack://pdf.js/./node_modules/core-js/internals/is-forced.js","webpack://pdf.js/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://pdf.js/./node_modules/core-js/internals/is-object.js","webpack://pdf.js/./node_modules/core-js/internals/is-possible-prototype.js","webpack://pdf.js/./node_modules/core-js/internals/is-pure.js","webpack://pdf.js/./node_modules/core-js/internals/is-symbol.js","webpack://pdf.js/./node_modules/core-js/internals/iterate-simple.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-close.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-create-proxy.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-map.js","webpack://pdf.js/./node_modules/core-js/internals/iterators-core.js","webpack://pdf.js/./node_modules/core-js/internals/length-of-array-like.js","webpack://pdf.js/./node_modules/core-js/internals/make-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/math-trunc.js","webpack://pdf.js/./node_modules/core-js/internals/object-create.js","webpack://pdf.js/./node_modules/core-js/internals/object-define-properties.js","webpack://pdf.js/./node_modules/core-js/internals/object-define-property.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/object-keys-internal.js","webpack://pdf.js/./node_modules/core-js/internals/object-keys.js","webpack://pdf.js/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdf.js/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdf.js/./node_modules/core-js/internals/own-keys.js","webpack://pdf.js/./node_modules/core-js/internals/require-object-coercible.js","webpack://pdf.js/./node_modules/core-js/internals/set-clone.js","webpack://pdf.js/./node_modules/core-js/internals/set-difference.js","webpack://pdf.js/./node_modules/core-js/internals/set-helpers.js","webpack://pdf.js/./node_modules/core-js/internals/set-intersection.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-disjoint-from.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-subset-of.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-superset-of.js","webpack://pdf.js/./node_modules/core-js/internals/set-iterate.js","webpack://pdf.js/./node_modules/core-js/internals/set-method-accept-set-like.js","webpack://pdf.js/./node_modules/core-js/internals/set-size.js","webpack://pdf.js/./node_modules/core-js/internals/set-symmetric-difference.js","webpack://pdf.js/./node_modules/core-js/internals/set-union.js","webpack://pdf.js/./node_modules/core-js/internals/shared-key.js","webpack://pdf.js/./node_modules/core-js/internals/shared-store.js","webpack://pdf.js/./node_modules/core-js/internals/shared.js","webpack://pdf.js/./node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://pdf.js/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://pdf.js/./node_modules/core-js/internals/to-absolute-index.js","webpack://pdf.js/./node_modules/core-js/internals/to-big-int.js","webpack://pdf.js/./node_modules/core-js/internals/to-index.js","webpack://pdf.js/./node_modules/core-js/internals/to-indexed-object.js","webpack://pdf.js/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdf.js/./node_modules/core-js/internals/to-length.js","webpack://pdf.js/./node_modules/core-js/internals/to-object.js","webpack://pdf.js/./node_modules/core-js/internals/to-primitive.js","webpack://pdf.js/./node_modules/core-js/internals/to-property-key.js","webpack://pdf.js/./node_modules/core-js/internals/to-string-tag-support.js","webpack://pdf.js/./node_modules/core-js/internals/to-string.js","webpack://pdf.js/./node_modules/core-js/internals/try-node-require.js","webpack://pdf.js/./node_modules/core-js/internals/try-to-string.js","webpack://pdf.js/./node_modules/core-js/internals/uid.js","webpack://pdf.js/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdf.js/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdf.js/./node_modules/core-js/internals/validate-arguments-length.js","webpack://pdf.js/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://pdf.js/./node_modules/core-js/internals/well-known-symbol.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.detached.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.transfer.js","webpack://pdf.js/./node_modules/core-js/modules/es.array.push.js","webpack://pdf.js/./node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack://pdf.js/./node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack://pdf.js/./node_modules/core-js/modules/es.typed-array.with.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.iterator.constructor.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.iterator.filter.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.iterator.map.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.set.difference.v2.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.set.intersection.v2.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js","webpack://pdf.js/./node_modules/core-js/modules/esnext.set.union.v2.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/./src/shared/util.js","webpack://pdf.js/./src/core/primitives.js","webpack://pdf.js/./src/core/base_stream.js","webpack://pdf.js/./src/core/core_utils.js","webpack://pdf.js/./src/core/arithmetic_decoder.js","webpack://pdf.js/./src/core/ccitt.js","webpack://pdf.js/./src/core/jbig2.js","webpack://pdf.js/./src/shared/image_utils.js","webpack://pdf.js/./src/core/jpg.js","webpack://pdf.js/./src/core/jpx.js","webpack://pdf.js/./src/pdf.image_decoders.js"],"sourcesContent":["'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar $TypeError = TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new $TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar slice = uncurryThis(ArrayBuffer.prototype.slice);\n\nmodule.exports = function (O) {\n if (arrayBufferByteLength(O) !== 0) return false;\n try {\n slice(O, 0, 0);\n return false;\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar isDetached = require('../internals/array-buffer-is-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = global.structuredClone;\nvar ArrayBuffer = global.ArrayBuffer;\nvar DataView = global.DataView;\nvar TypeError = global.TypeError;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached');\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list, $length) {\n var index = 0;\n var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n var len = lengthOfArrayLike(O);\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = global.structuredClone;\nvar $ArrayBuffer = global.ArrayBuffer;\nvar $MessageChannel = global.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = tryNodeRequire('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = global[TARGET] && global[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n try {\n var result = state.done ? undefined : state.nextHandler();\n return createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n iteratorClose(iterator, 'normal');\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n anObject(this);\n aCallable(mapper);\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) remove(result, e);\n });\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nmodule.exports = function (name) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n return true;\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.36.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.36.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/engine-v8-version');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar structuredClone = global.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = global[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://github.com/tc39/proposal-iterator-helpers\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n filter: function filter(predicate) {\n anObject(this);\n aCallable(predicate);\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar map = require('../internals/iterator-map');\nvar IS_PURE = require('../internals/is-pure');\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n map: map\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var dindex = 0;\n var found = false;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index++];\n if (found || entry.key === key) {\n found = true;\n $delete(this, entry.key);\n } else dindex++;\n }\n while (dindex < entriesLength) {\n entry = entries[dindex++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","// 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].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* Copyright 2012 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/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6; // Ten megabytes.\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n HIGHLIGHT: 9,\n STAMP: 13,\n INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23,\n HIGHLIGHT_COLOR: 31,\n HIGHLIGHT_DEFAULT_COLOR: 32,\n HIGHLIGHT_THICKNESS: 33,\n HIGHLIGHT_FREE: 34,\n HIGHLIGHT_SHOW_ALL: 35,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\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};\n\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};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\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};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\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};\n\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};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\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};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n // PLEASE NOTE: We purposely keep any removed operators commented out, since\n // re-numbering the list would risk breaking third-party users.\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};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\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\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\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\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value, nonSerializable = false) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\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 return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\nfunction string32(value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\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\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch {\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(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n\n static get platform() {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n (typeof navigator !== \"undefined\" &&\n typeof navigator?.platform === \"string\")\n ) {\n return shadow(this, \"platform\", {\n isMac: navigator.platform.includes(\"Mac\"),\n });\n }\n return shadow(this, \"platform\", { isMac: false });\n }\n\n static get isCSSRoundSupported() {\n return shadow(\n this,\n \"isCSSRoundSupported\",\n globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\")\n );\n }\n}\n\nconst hexNumbers = Array.from(Array(256).keys(), n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swapped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[0];\n minMax[2] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[2];\n minMax[2] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[5];\n minMax[2] += transform[4];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\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 // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\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\n // Solve the second degree polynomial to get roots.\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\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n 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 #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {\n if (t <= 0 || t >= 1) {\n return;\n }\n const mt = 1 - t;\n const tt = t * t;\n const ttt = tt * t;\n const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;\n const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n\n static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) >= 1e-12) {\n this.#getExtremumOnCurve(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n -c / b,\n minMax\n );\n }\n return;\n }\n\n const delta = b ** 2 - 4 * c * a;\n if (delta < 0) {\n return;\n }\n const sqrtDelta = Math.sqrt(delta);\n const a2 = 2 * a;\n this.#getExtremumOnCurve(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n (-b + sqrtDelta) / a2,\n minMax\n );\n this.#getExtremumOnCurve(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n (-b - sqrtDelta) / a2,\n minMax\n );\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n if (minMax) {\n minMax[0] = Math.min(minMax[0], x0, x3);\n minMax[1] = Math.min(minMax[1], y0, y3);\n minMax[2] = Math.max(minMax[2], x0, x3);\n minMax[3] = Math.max(minMax[3], y0, y3);\n } else {\n minMax = [\n Math.min(x0, x3),\n Math.min(y0, y3),\n Math.max(x0, x3),\n Math.max(y0, y3),\n ];\n }\n this.#getExtremum(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n 3 * (-x0 + 3 * (x1 - x2) + x3),\n 6 * (x0 - 2 * x1 + x2),\n 3 * (x1 - x0),\n minMax\n );\n this.#getExtremum(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n 3 * (-y0 + 3 * (y1 - y2) + y3),\n 6 * (y0 - 2 * y1 + y2),\n 3 * (y1 - y0),\n minMax\n );\n return minMax;\n }\n}\n\nconst PDFStringTranslateTable = [\n 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,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 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 0, 0, 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 0, 0, 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 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n // See section 7.9.2.2 Text String Type.\n // The string can contain some language codes bracketed with 0x0b,\n // so we must remove them.\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\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, { fatal: true });\n const buffer = stringToBytes(str);\n const decoded = decoder.decode(buffer);\n if (!decoded.includes(\"\\x1b\")) {\n return decoded;\n }\n return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const charCode = str.charCodeAt(i);\n if (charCode === 0x1b) {\n // eslint-disable-next-line no-empty\n while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n continue;\n }\n const code = PDFStringTranslateTable[charCode];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n // In order to generate the following regex:\n // - create a PDF containing all the chars in the range 0000-FFFF with\n // a NFKC which is different of the char.\n // - copy and paste all those chars and get the ones where NFKC is\n // required.\n // It appears that most the chars here contain some ligatures.\n NormalizeRegex =\n /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) =>\n p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2)\n );\n}\n\nfunction getUuid() {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\")\n ) {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto?.getRandomValues === \"function\"\n ) {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\n\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationEditorParamsType,\n AnnotationEditorPrefix,\n AnnotationEditorType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMode,\n AnnotationPrefix,\n AnnotationReplyType,\n AnnotationType,\n assert,\n BaseException,\n BASELINE_FACTOR,\n bytesToString,\n CMapCompressionType,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FormatError,\n getModificationDate,\n getUuid,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayEqual,\n isNodeJS,\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n MAX_IMAGE_SIZE_TO_CACHE,\n MissingPDFException,\n normalizeUnicode,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2012 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\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nlet CmdCache = Object.create(null);\nlet NameCache = Object.create(null);\nlet RefCache = Object.create(null);\n\nfunction clearPrimitiveCaches() {\n CmdCache = Object.create(null);\n NameCache = Object.create(null);\n RefCache = Object.create(null);\n}\n\nclass Name {\n constructor(name) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n typeof name !== \"string\"\n ) {\n unreachable('Name: The \"name\" must be a string.');\n }\n this.name = name;\n }\n\n static get(name) {\n // eslint-disable-next-line no-restricted-syntax\n return (NameCache[name] ||= new Name(name));\n }\n}\n\nclass Cmd {\n constructor(cmd) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n typeof cmd !== \"string\"\n ) {\n unreachable('Cmd: The \"cmd\" must be a string.');\n }\n this.cmd = cmd;\n }\n\n static get(cmd) {\n // eslint-disable-next-line no-restricted-syntax\n return (CmdCache[cmd] ||= new Cmd(cmd));\n }\n}\n\nconst nonSerializable = function nonSerializableClosure() {\n return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n constructor(xref = null) {\n // Map should only be used internally, use functions below to access.\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n }\n\n assignXref(newXref) {\n this.xref = newXref;\n }\n\n get size() {\n return Object.keys(this._map).length;\n }\n\n // Automatically dereferences Ref objects.\n get(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but returns a promise and uses fetchIfRefAsync().\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but dereferences all elements if the result is an Array.\n getArray(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\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(); // Ensure that we don't modify the Dict data.\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 return value;\n }\n\n // No dereferencing.\n getRaw(key) {\n return this._map[key];\n }\n\n getKeys() {\n return Object.keys(this._map);\n }\n\n // No dereferencing.\n getRawValues() {\n return Object.values(this._map);\n }\n\n set(key, value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n if (typeof key !== \"string\") {\n unreachable('Dict.set: The \"key\" must be a string.');\n } else if (value === undefined) {\n unreachable('Dict.set: The \"value\" cannot be undefined.');\n }\n }\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 unreachable(\"Should not call `set` on the empty dictionary.\");\n };\n return shadow(this, \"empty\", emptyDict);\n }\n\n static merge({ xref, dictArray, mergeSubDicts = false }) {\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 for (const [key, value] of Object.entries(dict._map)) {\n let property = properties.get(key);\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n } else if (!mergeSubDicts || !(value instanceof Dict)) {\n // Ignore additional entries, if either:\n // - This is a \"shallow\" merge, where only the first element matters.\n // - The value is *not* a `Dict`, since other types cannot be merged.\n continue;\n }\n property.push(value);\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 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 if (subDict.size > 0) {\n mergedDict._map[name] = subDict;\n }\n }\n properties.clear();\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n\n clone() {\n const dict = new Dict(this.xref);\n for (const key of this.getKeys()) {\n dict.set(key, this.getRaw(key));\n }\n return dict;\n }\n}\n\nclass Ref {\n constructor(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n toString() {\n // This function is hot, so we make the string as compact as possible.\n // |this.gen| is almost always zero, so we treat that case specially.\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n return `${this.num}R${this.gen}`;\n }\n\n static fromString(str) {\n const ref = RefCache[str];\n if (ref) {\n return ref;\n }\n const m = /^(\\d+)R(\\d*)$/.exec(str);\n if (!m || m[1] === \"0\") {\n return null;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n return (RefCache[str] = new Ref(\n parseInt(m[1]),\n !m[2] ? 0 : parseInt(m[2])\n ));\n }\n\n static get(num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n // eslint-disable-next-line no-restricted-syntax\n return (RefCache[key] ||= new Ref(num, gen));\n }\n}\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n constructor(parent = null) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n parent &&\n !(parent instanceof RefSet)\n ) {\n unreachable('RefSet: Invalid \"parent\" value.');\n }\n this._set = new Set(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\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\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 (\n v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n );\n}\n\nfunction isRefsEqual(v1, v2) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n v1 instanceof Ref && v2 instanceof Ref,\n \"isRefsEqual: Both parameters should be `Ref`s.\"\n );\n }\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nexport {\n CIRCULAR_REF,\n clearPrimitiveCaches,\n Cmd,\n Dict,\n EOF,\n isCmd,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n};\n","/* Copyright 2021 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\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n constructor() {\n if (this.constructor === BaseStream) {\n unreachable(\"Cannot initialize BaseStream.\");\n }\n }\n\n // eslint-disable-next-line getter-return\n get length() {\n unreachable(\"Abstract getter `length` accessed\");\n }\n\n // eslint-disable-next-line getter-return\n get isEmpty() {\n unreachable(\"Abstract getter `isEmpty` accessed\");\n }\n\n get isDataLoaded() {\n return shadow(this, \"isDataLoaded\", true);\n }\n\n getByte() {\n unreachable(\"Abstract method `getByte` called\");\n }\n\n getBytes(length) {\n unreachable(\"Abstract method `getBytes` called\");\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n if (peekedByte !== -1) {\n this.pos--;\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 if (b0 === -1 || b1 === -1) {\n return -1;\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 unreachable(\"Abstract method `getByteRange` called\");\n }\n\n getString(length) {\n return bytesToString(this.getBytes(length));\n }\n\n skip(n) {\n this.pos += n || 1;\n }\n\n reset() {\n unreachable(\"Abstract method `reset` called\");\n }\n\n moveStart() {\n unreachable(\"Abstract method `moveStart` called\");\n }\n\n makeSubStream(start, length, dict = null) {\n unreachable(\"Abstract method `makeSubStream` called\");\n }\n\n /**\n * @returns {Array | null}\n */\n getBaseStreams() {\n return null;\n }\n}\n\nexport { BaseStream };\n","/* Copyright 2019 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\nimport {\n AnnotationEditorPrefix,\n assert,\n BaseException,\n objectSize,\n stringToPDFString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nconst PDF_VERSION_REGEXP = /^[1-9]\\.\\d$/;\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 return lookup;\n };\n}\n\nclass MissingDataException extends BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n this.begin = begin;\n this.end = end;\n }\n}\n\nclass ParserEOFException extends BaseException {\n constructor(msg) {\n super(msg, \"ParserEOFException\");\n }\n}\n\nclass XRefEntryException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefEntryException\");\n }\n}\n\nclass XRefParseException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefParseException\");\n }\n}\n\n/**\n * Combines multiple ArrayBuffers into a single Uint8Array.\n * @param {Array<ArrayBuffer>} arr - An array of ArrayBuffers.\n * @returns {Uint8Array}\n */\nfunction arrayBuffersToBytes(arr) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n for (const item of arr) {\n assert(\n item instanceof ArrayBuffer,\n \"arrayBuffersToBytes - expected an ArrayBuffer.\"\n );\n }\n }\n const length = arr.length;\n if (length === 0) {\n return new Uint8Array(0);\n }\n if (length === 1) {\n return new Uint8Array(arr[0]);\n }\n let dataLength = 0;\n for (let i = 0; i < length; i++) {\n dataLength += arr[i].byteLength;\n }\n const data = new Uint8Array(dataLength);\n let pos = 0;\n for (let i = 0; i < length; i++) {\n const item = new Uint8Array(arr[i]);\n data.set(item, pos);\n pos += item.byteLength;\n }\n return data;\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true,\n}) {\n let values;\n const visited = new RefSet();\n\n while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n const value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n (values ||= []).push(value);\n }\n dict = dict.get(\"Parent\");\n }\n return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(\n Number.isInteger(number) && number > 0,\n \"The number should be a positive integer.\"\n );\n const romanBuf = [];\n let pos;\n // Thousands\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n // Hundreds\n pos = (number / 100) | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n // Tens\n pos = (number / 10) | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n // Ones\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\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 (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[(\\d+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n if (m) {\n return { name: m[1], pos: parseInt(m[2], 10) };\n }\n return { name: component, pos: 0 };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n // Whitespace or delimiters aren't regular chars, so escape them.\n if (\n char < 0x21 ||\n char > 0x7e ||\n char === 0x23 /* # */ ||\n char === 0x28 /* ( */ ||\n char === 0x29 /* ) */ ||\n char === 0x3c /* < */ ||\n char === 0x3e /* > */ ||\n char === 0x5b /* [ */ ||\n char === 0x5d /* ] */ ||\n char === 0x7b /* { */ ||\n char === 0x7d /* } */ ||\n char === 0x2f /* / */ ||\n char === 0x25 /* % */\n ) {\n if (start < i) {\n buffer.push(str.substring(start, i));\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\n// Replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\" by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n// in order to write it in a PDF file.\nfunction escapeString(str) {\n return str.replaceAll(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n if (entry instanceof Ref) {\n if (parents.has(entry)) {\n // If we've already found entry then we've a cycle.\n return;\n }\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof Dict) {\n if (isName(entry.get(\"S\"), \"JavaScript\")) {\n const js = entry.get(\"JS\");\n let code;\n if (js instanceof BaseStream) {\n code = js.getString();\n } else if (typeof js === \"string\") {\n code = js;\n }\n code &&= stringToPDFString(code).replaceAll(\"\\x00\", \"\");\n if (code) {\n list.push(code);\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 if (additionalActionsDicts) {\n // additionalActionsDicts contains dicts from ancestors\n // as they're found in the tree from bottom to top.\n // So the dicts are visited in reverse order to guarantee\n // that actions from elder ancestors will be overwritten\n // by ones from younger ancestors.\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n if (!(additionalActions instanceof Dict)) {\n continue;\n }\n for (const key of additionalActions.getKeys()) {\n const action = eventType[key];\n if (!action) {\n continue;\n }\n const actionDict = additionalActions.getRaw(key);\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n // Collect the Action if any (we may have one on pushbutton).\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n return 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* codePointIter(str) {\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n yield char;\n }\n}\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\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 buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n return buffer.join(\"\");\n}\n\nfunction validateFontName(fontFamily, mustWarn = false) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n const m = /^(\"|').*(\"|')$/.exec(fontFamily);\n if (m && m[1] === m[2]) {\n const re = new RegExp(`[^\\\\\\\\]${m[1]}`);\n if (re.test(fontFamily.slice(1, -1))) {\n if (mustWarn) {\n warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`);\n }\n return false;\n }\n } else {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n for (const ident of fontFamily.split(/[ \\t]+/)) {\n if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n if (mustWarn) {\n warn(`FontFamily contains invalid <custom-ident>: ${fontFamily}.`);\n }\n return false;\n }\n }\n }\n return true;\n}\n\nfunction validateCSSFont(cssFontInfo) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n const CSS_FONT_WEIGHT_VALUES = new Set([\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\",\n \"1000\",\n \"normal\",\n \"bold\",\n \"bolder\",\n \"lighter\",\n ]);\n\n const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n if (!validateFontName(fontFamily, true)) {\n return false;\n }\n\n const weight = fontWeight ? fontWeight.toString() : \"\";\n cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n ? weight\n : DEFAULT_CSS_FONT_WEIGHT;\n\n const angle = parseFloat(italicAngle);\n cssFontInfo.italicAngle =\n isNaN(angle) || angle < -90 || angle > 90\n ? DEFAULT_CSS_FONT_OBLIQUE\n : italicAngle.toString();\n\n return true;\n}\n\nfunction recoverJsURL(str) {\n // Attempt to recover valid URLs from `JS` entries with certain\n // white-listed formats:\n // - window.open('http://example.com')\n // - app.launchURL('http://example.com', true)\n // - xfa.host.gotoURL('http://example.com')\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n const regex = new RegExp(\n \"^\\\\s*(\" +\n URL_OPEN_METHODS.join(\"|\").replaceAll(\".\", \"\\\\.\") +\n \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n \"i\"\n );\n\n const jsUrl = regex.exec(str);\n if (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 return { url, newWindow };\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 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 const newAnnotationsByPage = new Map();\n // The concept of page in a XFA is very different, so\n // editing is just not implemented.\n for (const [key, value] of annotationStorage) {\n if (!key.startsWith(AnnotationEditorPrefix)) {\n continue;\n }\n let annotations = newAnnotationsByPage.get(value.pageIndex);\n if (!annotations) {\n annotations = [];\n newAnnotationsByPage.set(value.pageIndex, annotations);\n }\n annotations.push(value);\n }\n return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16HexString(str) {\n const buf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n ((char >> 8) & 0xff).toString(16).padStart(2, \"0\"),\n (char & 0xff).toString(16).padStart(2, \"0\")\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF16String(str, bigEndian = false) {\n const buf = [];\n if (bigEndian) {\n buf.push(\"\\xFE\\xFF\");\n }\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction getRotationMatrix(rotation, width, height) {\n switch (rotation) {\n case 90:\n return [0, 1, -1, 0, width, 0];\n case 180:\n return [-1, 0, 0, -1, width, height];\n case 270:\n return [0, -1, 1, 0, 0, height];\n default:\n throw new Error(\"Invalid rotation\");\n }\n}\n\n/**\n * Get the number of bytes to use to represent the given positive integer.\n * If n is zero, the function returns 0 which means that we don't need to waste\n * a byte to represent it.\n * @param {number} x - a positive integer.\n * @returns {number}\n */\nfunction getSizeInBytes(x) {\n // n bits are required for numbers up to 2^n - 1.\n // So for a number x, we need ceil(log2(1 + x)) bits.\n return Math.ceil(Math.ceil(Math.log2(1 + x)) / 8);\n}\n\nexport {\n arrayBuffersToBytes,\n codePointIter,\n collectActions,\n encodeToXmlString,\n escapePDFName,\n escapeString,\n getInheritableProperty,\n getLookupTableFactory,\n getNewAnnotationsMap,\n getRotationMatrix,\n getSizeInBytes,\n isAscii,\n isWhiteSpace,\n log2,\n MissingDataException,\n numberToString,\n ParserEOFException,\n parseXFAPath,\n PDF_VERSION_REGEXP,\n readInt8,\n readUint16,\n readUint32,\n recoverJsURL,\n stringToUTF16HexString,\n stringToUTF16String,\n toRomanNumerals,\n validateCSSFont,\n validateFontName,\n XRefEntryException,\n XRefParseException,\n};\n","/* Copyright 2012 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// Table C-2\nconst QeTable = [\n { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1 },\n { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0 },\n { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 },\n { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0 },\n { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0 },\n { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1 },\n { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0 },\n { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0 },\n { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0 },\n { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0 },\n { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0 },\n { qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 },\n { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0 },\n { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1 },\n { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0 },\n { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0 },\n { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0 },\n { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0 },\n { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0 },\n { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0 },\n { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0 },\n { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0 },\n { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0 },\n { qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 },\n { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0 },\n { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0 },\n { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0 },\n { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0 },\n { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 },\n { qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 },\n { qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 },\n { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0 },\n { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0 },\n { qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 },\n { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0 },\n { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0 },\n { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0 },\n { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0 },\n { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0 },\n { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0 },\n { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0 },\n { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0 },\n { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0 },\n { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0 },\n { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0 },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n * JPEG 2000 Part I Final Committee Draft Version 1.0\n * Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n // C.3.5 Initialisation of the decoder (INITDEC)\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n\n this.chigh = data[start];\n this.clow = 0;\n\n this.byteIn();\n\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 // C.3.4 Compressed data input (BYTEIN)\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 if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n // C.3.2 Decoding a decision (DECODE)\n readBit(contexts, pos) {\n // Contexts are packed into 1 byte:\n // highest 7 bits carry cx.index, lowest bit carries cx.mps\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 // exchangeLps\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 if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n // exchangeMps\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n // C.3.3 renormD;\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 this.a = a;\n\n contexts[pos] = (cx_index << 1) | cx_mps;\n return d;\n }\n}\n\nexport { ArithmeticDecoder };\n","/* Copyright 2012 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/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n * or -1 when EOF is reached.\n */\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;\n\n// prettier-ignore\nconst twoDimTable = [\n [-1, -1], [-1, -1], // 000000x\n [7, twoDimVertL3], // 0000010\n [7, twoDimVertR3], // 0000011\n [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n [4, twoDimPass], [4, twoDimPass], // 0001xxx\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [3, twoDimHoriz], [3, twoDimHoriz], // 001xxxx\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [1, twoDimVert0], [1, twoDimVert0], // 1xxxxxx\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0]\n];\n\n// prettier-ignore\nconst whiteTable1 = [\n [-1, -1], // 00000\n [12, ccittEOL], // 00001\n [-1, -1], [-1, -1], // 0001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n [11, 1792], [11, 1792], // 1000x\n [12, 1984], // 10010\n [12, 2048], // 10011\n [12, 2112], // 10100\n [12, 2176], // 10101\n [12, 2240], // 10110\n [12, 2304], // 10111\n [11, 1856], [11, 1856], // 1100x\n [11, 1920], [11, 1920], // 1101x\n [12, 2368], // 11100\n [12, 2432], // 11101\n [12, 2496], // 11110\n [12, 2560] // 11111\n];\n\n// prettier-ignore\nconst whiteTable2 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000000xx\n [8, 29], [8, 29], // 00000010x\n [8, 30], [8, 30], // 00000011x\n [8, 45], [8, 45], // 00000100x\n [8, 46], [8, 46], // 00000101x\n [7, 22], [7, 22], [7, 22], [7, 22], // 0000011xx\n [7, 23], [7, 23], [7, 23], [7, 23], // 0000100xx\n [8, 47], [8, 47], // 00001010x\n [8, 48], [8, 48], // 00001011x\n [6, 13], [6, 13], [6, 13], [6, 13], // 000011xxx\n [6, 13], [6, 13], [6, 13], [6, 13],\n [7, 20], [7, 20], [7, 20], [7, 20], // 0001000xx\n [8, 33], [8, 33], // 00010010x\n [8, 34], [8, 34], // 00010011x\n [8, 35], [8, 35], // 00010100x\n [8, 36], [8, 36], // 00010101x\n [8, 37], [8, 37], // 00010110x\n [8, 38], [8, 38], // 00010111x\n [7, 19], [7, 19], [7, 19], [7, 19], // 0001100xx\n [8, 31], [8, 31], // 00011010x\n [8, 32], [8, 32], // 00011011x\n [6, 1], [6, 1], [6, 1], [6, 1], // 000111xxx\n [6, 1], [6, 1], [6, 1], [6, 1],\n [6, 12], [6, 12], [6, 12], [6, 12], // 001000xxx\n [6, 12], [6, 12], [6, 12], [6, 12],\n [8, 53], [8, 53], // 00100100x\n [8, 54], [8, 54], // 00100101x\n [7, 26], [7, 26], [7, 26], [7, 26], // 0010011xx\n [8, 39], [8, 39], // 00101000x\n [8, 40], [8, 40], // 00101001x\n [8, 41], [8, 41], // 00101010x\n [8, 42], [8, 42], // 00101011x\n [8, 43], [8, 43], // 00101100x\n [8, 44], [8, 44], // 00101101x\n [7, 21], [7, 21], [7, 21], [7, 21], // 0010111xx\n [7, 28], [7, 28], [7, 28], [7, 28], // 0011000xx\n [8, 61], [8, 61], // 00110010x\n [8, 62], [8, 62], // 00110011x\n [8, 63], [8, 63], // 00110100x\n [8, 0], [8, 0], // 00110101x\n [8, 320], [8, 320], // 00110110x\n [8, 384], [8, 384], // 00110111x\n [5, 10], [5, 10], [5, 10], [5, 10], // 00111xxxx\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 11], [5, 11], [5, 11], [5, 11], // 01000xxxx\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [7, 27], [7, 27], [7, 27], [7, 27], // 0100100xx\n [8, 59], [8, 59], // 01001010x\n [8, 60], [8, 60], // 01001011x\n [9, 1472], // 010011000\n [9, 1536], // 010011001\n [9, 1600], // 010011010\n [9, 1728], // 010011011\n [7, 18], [7, 18], [7, 18], [7, 18], // 0100111xx\n [7, 24], [7, 24], [7, 24], [7, 24], // 0101000xx\n [8, 49], [8, 49], // 01010010x\n [8, 50], [8, 50], // 01010011x\n [8, 51], [8, 51], // 01010100x\n [8, 52], [8, 52], // 01010101x\n [7, 25], [7, 25], [7, 25], [7, 25], // 0101011xx\n [8, 55], [8, 55], // 01011000x\n [8, 56], [8, 56], // 01011001x\n [8, 57], [8, 57], // 01011010x\n [8, 58], [8, 58], // 01011011x\n [6, 192], [6, 192], [6, 192], [6, 192], // 010111xxx\n [6, 192], [6, 192], [6, 192], [6, 192],\n [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n [8, 448], [8, 448], // 01100100x\n [8, 512], [8, 512], // 01100101x\n [9, 704], // 011001100\n [9, 768], // 011001101\n [8, 640], [8, 640], // 01100111x\n [8, 576], [8, 576], // 01101000x\n [9, 832], // 011010010\n [9, 896], // 011010011\n [9, 960], // 011010100\n [9, 1024], // 011010101\n [9, 1088], // 011010110\n [9, 1152], // 011010111\n [9, 1216], // 011011000\n [9, 1280], // 011011001\n [9, 1344], // 011011010\n [9, 1408], // 011011011\n [7, 256], [7, 256], [7, 256], [7, 256], // 0110111xx\n [4, 2], [4, 2], [4, 2], [4, 2], // 0111xxxxx\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 3], [4, 3], [4, 3], [4, 3], // 1000xxxxx\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [5, 128], [5, 128], [5, 128], [5, 128], // 10010xxxx\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 8], [5, 8], [5, 8], [5, 8], // 10011xxxx\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 9], [5, 9], [5, 9], [5, 9], // 10100xxxx\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [6, 16], [6, 16], [6, 16], [6, 16], // 101010xxx\n [6, 16], [6, 16], [6, 16], [6, 16],\n [6, 17], [6, 17], [6, 17], [6, 17], // 101011xxx\n [6, 17], [6, 17], [6, 17], [6, 17],\n [4, 4], [4, 4], [4, 4], [4, 4], // 1011xxxxx\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 5], [4, 5], [4, 5], [4, 5], // 1100xxxxx\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [6, 14], [6, 14], [6, 14], [6, 14], // 110100xxx\n [6, 14], [6, 14], [6, 14], [6, 14],\n [6, 15], [6, 15], [6, 15], [6, 15], // 110101xxx\n [6, 15], [6, 15], [6, 15], [6, 15],\n [5, 64], [5, 64], [5, 64], [5, 64], // 11011xxxx\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [4, 6], [4, 6], [4, 6], [4, 6], // 1110xxxxx\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 7], [4, 7], [4, 7], [4, 7], // 1111xxxxx\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7]\n];\n\n// prettier-ignore\nconst blackTable1 = [\n [-1, -1], [-1, -1], // 000000000000x\n [12, ccittEOL], [12, ccittEOL], // 000000000001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000011xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000100xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000101xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000110xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000111xx\n [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n [12, 1984], [12, 1984], // 000000010010x\n [12, 2048], [12, 2048], // 000000010011x\n [12, 2112], [12, 2112], // 000000010100x\n [12, 2176], [12, 2176], // 000000010101x\n [12, 2240], [12, 2240], // 000000010110x\n [12, 2304], [12, 2304], // 000000010111x\n [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n [12, 2368], [12, 2368], // 000000011100x\n [12, 2432], [12, 2432], // 000000011101x\n [12, 2496], [12, 2496], // 000000011110x\n [12, 2560], [12, 2560], // 000000011111x\n [10, 18], [10, 18], [10, 18], [10, 18], // 0000001000xxx\n [10, 18], [10, 18], [10, 18], [10, 18],\n [12, 52], [12, 52], // 000000100100x\n [13, 640], // 0000001001010\n [13, 704], // 0000001001011\n [13, 768], // 0000001001100\n [13, 832], // 0000001001101\n [12, 55], [12, 55], // 000000100111x\n [12, 56], [12, 56], // 000000101000x\n [13, 1280], // 0000001010010\n [13, 1344], // 0000001010011\n [13, 1408], // 0000001010100\n [13, 1472], // 0000001010101\n [12, 59], [12, 59], // 000000101011x\n [12, 60], [12, 60], // 000000101100x\n [13, 1536], // 0000001011010\n [13, 1600], // 0000001011011\n [11, 24], [11, 24], [11, 24], [11, 24], // 00000010111xx\n [11, 25], [11, 25], [11, 25], [11, 25], // 00000011000xx\n [13, 1664], // 0000001100100\n [13, 1728], // 0000001100101\n [12, 320], [12, 320], // 000000110011x\n [12, 384], [12, 384], // 000000110100x\n [12, 448], [12, 448], // 000000110101x\n [13, 512], // 0000001101100\n [13, 576], // 0000001101101\n [12, 53], [12, 53], // 000000110111x\n [12, 54], [12, 54], // 000000111000x\n [13, 896], // 0000001110010\n [13, 960], // 0000001110011\n [13, 1024], // 0000001110100\n [13, 1088], // 0000001110101\n [13, 1152], // 0000001110110\n [13, 1216], // 0000001110111\n [10, 64], [10, 64], [10, 64], [10, 64], // 0000001111xxx\n [10, 64], [10, 64], [10, 64], [10, 64]\n];\n\n// prettier-ignore\nconst blackTable2 = [\n [8, 13], [8, 13], [8, 13], [8, 13], // 00000100xxxx\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [11, 23], [11, 23], // 00000101000x\n [12, 50], // 000001010010\n [12, 51], // 000001010011\n [12, 44], // 000001010100\n [12, 45], // 000001010101\n [12, 46], // 000001010110\n [12, 47], // 000001010111\n [12, 57], // 000001011000\n [12, 58], // 000001011001\n [12, 61], // 000001011010\n [12, 256], // 000001011011\n [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n [12, 48], // 000001100100\n [12, 49], // 000001100101\n [12, 62], // 000001100110\n [12, 63], // 000001100111\n [12, 30], // 000001101000\n [12, 31], // 000001101001\n [12, 32], // 000001101010\n [12, 33], // 000001101011\n [12, 40], // 000001101100\n [12, 41], // 000001101101\n [11, 22], [11, 22], // 00000110111x\n [8, 14], [8, 14], [8, 14], [8, 14], // 00000111xxxx\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [7, 10], [7, 10], [7, 10], [7, 10], // 0000100xxxxx\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 11], [7, 11], [7, 11], [7, 11], // 0000101xxxxx\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [9, 15], [9, 15], [9, 15], [9, 15], // 000011000xxx\n [9, 15], [9, 15], [9, 15], [9, 15],\n [12, 128], // 000011001000\n [12, 192], // 000011001001\n [12, 26], // 000011001010\n [12, 27], // 000011001011\n [12, 28], // 000011001100\n [12, 29], // 000011001101\n [11, 19], [11, 19], // 00001100111x\n [11, 20], [11, 20], // 00001101000x\n [12, 34], // 000011010010\n [12, 35], // 000011010011\n [12, 36], // 000011010100\n [12, 37], // 000011010101\n [12, 38], // 000011010110\n [12, 39], // 000011010111\n [11, 21], [11, 21], // 00001101100x\n [12, 42], // 000011011010\n [12, 43], // 000011011011\n [10, 0], [10, 0], [10, 0], [10, 0], // 0000110111xx\n [7, 12], [7, 12], [7, 12], [7, 12], // 0000111xxxxx\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12]\n];\n\n// prettier-ignore\nconst blackTable3 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n [6, 9], // 000100\n [6, 8], // 000101\n [5, 7], [5, 7], // 00011x\n [4, 6], [4, 6], [4, 6], [4, 6], // 0010xx\n [4, 5], [4, 5], [4, 5], [4, 5], // 0011xx\n [3, 1], [3, 1], [3, 1], [3, 1], // 010xxx\n [3, 1], [3, 1], [3, 1], [3, 1],\n [3, 4], [3, 4], [3, 4], [3, 4], // 011xxx\n [3, 4], [3, 4], [3, 4], [3, 4],\n [2, 3], [2, 3], [2, 3], [2, 3], // 10xxxx\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 2], [2, 2], [2, 2], [2, 2], // 11xxxx\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2]\n];\n\n/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n constructor(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n this.source = source;\n this.eof = false;\n\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 this.eoblock = options.EndOfBlock ?? true;\n this.black = options.BlackIs1 || false;\n\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n\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\n let code1;\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n if (code1 === 1) {\n this._eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n }\n\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n if (this.eof) {\n return -1;\n }\n this.err = false;\n\n let code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\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 switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\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 do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(\n codingLine[this.codingPos] + code2,\n blackPixels ^ 1\n );\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this._addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n info(\"bad 2d code\");\n this._addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\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 this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\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 if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n }\n if (code1 === 1) {\n this._eatBits(12);\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 this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n if (code1 === 1) {\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n if (code1 !== 1) {\n info(\"bad rtc code: \" + code1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this._eatBits(1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n this.outputBits =\n codingLine[0] > 0\n ? codingLine[(this.codingPos = 0)]\n : codingLine[(this.codingPos = 1)];\n this.row++;\n }\n\n let c;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (typeof this.outputBits !== \"number\") {\n throw new FormatError(\n 'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n );\n }\n\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - bits);\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - this.outputBits);\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n 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 if (this.black) {\n c ^= 0xff;\n }\n return c;\n }\n\n /**\n * @private\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 info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n }\n\n /**\n * @private\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 info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\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 info(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n }\n\n /**\n * This function returns the code found from the table.\n * The start and end parameters set the boundaries for searching the table.\n * The limit parameter is optional. Function returns an array with three\n * values. The first array element indicates whether a valid code is being\n * returned. The second array element is the actual code. The third array\n * element indicates whether EOF was reached.\n * @private\n */\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n if (p[0] === i) {\n this._eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n }\n\n /**\n * @private\n */\n _getTwoDimCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n if (p?.[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n info(\"Bad two dim code\");\n return ccittEOF;\n }\n\n /**\n * @private\n */\n _getWhiteCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n\n p = code >> 5 === 0 ? whiteTable1[code] : whiteTable2[code >> 3];\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad white code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _getBlackCode() {\n let code, p;\n if (this.eoblock) {\n code = this._lookBits(13);\n if (code === ccittEOF) {\n return 1;\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 return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad black code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _lookBits(n) {\n let c;\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return (this.inputBuf << (n - this.inputBits)) & (0xffff >> (16 - n));\n }\n this.inputBuf = (this.inputBuf << 8) | c;\n this.inputBits += 8;\n }\n return (this.inputBuf >> (this.inputBits - n)) & (0xffff >> (16 - n));\n }\n\n /**\n * @private\n */\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n}\n\nexport { CCITTFaxDecoder };\n","/* Copyright 2012 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\nimport { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n }\n}\n\n// Utility data structures\nclass ContextCache {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return (this[id] = new Int8Array(1 << 16));\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 ArithmeticDecoder(this.data, this.start, this.end);\n return shadow(this, \"decoder\", decoder);\n }\n\n get contextCache() {\n const cache = new ContextCache();\n return shadow(this, \"contextCache\", cache);\n }\n}\n\nconst MAX_INT_32 = 2 ** 31 - 1;\nconst MIN_INT_32 = -(2 ** 31);\n\n// Annex A. Arithmetic Integer Decoding Procedure\n// A.2 Procedure for decoding values\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 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 return v >>> 0;\n }\n\n const sign = readBits(1);\n // prettier-ignore\n /* eslint-disable no-nested-ternary */\n const value = readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(32) + 4436) :\n readBits(12) + 340) :\n readBits(8) + 84) :\n readBits(6) + 20) :\n readBits(4) + 4) :\n readBits(2);\n /* eslint-enable no-nested-ternary */\n let signedValue;\n if (sign === 0) {\n signedValue = value;\n } else if (value > 0) {\n signedValue = -value;\n }\n // Ensure that the integer value doesn't underflow or overflow.\n if (signedValue >= MIN_INT_32 && signedValue <= MAX_INT_32) {\n return signedValue;\n }\n return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n const contexts = contextCache.getContexts(\"IAID\");\n\n let prev = 1;\n for (let i = 0; i < codeLength; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = (prev << 1) | bit;\n }\n if (codeLength < 31) {\n return prev & ((1 << codeLength) - 1);\n }\n return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n \"SymbolDictionary\",\n null,\n null,\n null,\n \"IntermediateTextRegion\",\n null,\n \"ImmediateTextRegion\",\n \"ImmediateLosslessTextRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"PatternDictionary\",\n null,\n null,\n null,\n \"IntermediateHalftoneRegion\",\n null,\n \"ImmediateHalftoneRegion\",\n \"ImmediateLosslessHalftoneRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"IntermediateGenericRegion\",\n null,\n \"ImmediateGenericRegion\",\n \"ImmediateLosslessGenericRegion\",\n \"IntermediateGenericRefinementRegion\",\n null,\n \"ImmediateGenericRefinementRegion\",\n \"ImmediateLosslessGenericRefinementRegion\",\n null,\n null,\n null,\n null,\n \"PageInformation\",\n \"EndOfPage\",\n \"EndOfStripe\",\n \"EndOfFile\",\n \"Profiles\",\n \"Tables\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"Extension\",\n];\n\nconst CodingTemplates = [\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: 2, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -3, y: -1 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n];\n\nconst RefinementTemplates = [\n {\n coding: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: -1, y: 1 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n {\n coding: [\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n 0x9b25, // 10011 0110010 0101\n 0x0795, // 0011 110010 101\n 0x00e5, // 001 11001 01\n 0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n 0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n 0x0008, // '0000' + '001000'\n];\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\n // ...ooooo....\n // ..ooooooo... Context template for current pixel (X)\n // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\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\n // At the beginning of each row:\n // Fill contextLabel with pixels that are above/right of (X)\n contextLabel =\n (row2[0] << 13) |\n (row2[1] << 12) |\n (row2[2] << 11) |\n (row1[0] << 7) |\n (row1[1] << 6) |\n (row1[2] << 5) |\n (row1[3] << 4);\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n // At each pixel: Clear contextLabel pixels that are shifted\n // out of the context, then add new ones.\n contextLabel =\n ((contextLabel & OLD_PIXEL_MASK) << 1) |\n (j + 3 < width ? row2[j + 3] << 11 : 0) |\n (j + 4 < width ? row1[j + 4] << 4 : 0) |\n pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n mmr,\n width,\n height,\n templateIndex,\n prediction,\n skip,\n at,\n decodingContext\n) {\n if (mmr) {\n const input = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n return decodeMMRBitmap(input, width, height, false);\n }\n\n // Use optimized version for the most common case\n if (\n templateIndex === 0 &&\n !skip &&\n !prediction &&\n at.length === 4 &&\n at[0].x === 3 &&\n at[0].y === -1 &&\n at[1].x === -3 &&\n at[1].y === -1 &&\n at[2].x === 2 &&\n at[2].y === -2 &&\n at[3].x === -2 &&\n at[3].y === -2\n ) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n const useskip = !!skip;\n const template = CodingTemplates[templateIndex].concat(at);\n\n // Sorting is non-standard, and it is not required. But sorting increases\n // the number of template bits that can be reused from the previous\n // contextLabel in the main loop.\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\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 // Check if the template pixel appears in two consecutive context labels,\n // so it can be reused. Otherwise, we add it to the list of changing\n // template entries.\n if (\n k < templateLength - 1 &&\n template[k].y === template[k + 1].y &&\n template[k].x === template[k + 1].x - 1\n ) {\n reuseMask |= 1 << (templateLength - 1 - k);\n } else {\n changingTemplateEntries.push(k);\n }\n }\n const changingEntriesLength = changingTemplateEntries.length;\n\n const changingTemplateX = new Int8Array(changingEntriesLength);\n const changingTemplateY = new Int8Array(changingEntriesLength);\n const changingTemplateBit = new Uint16Array(changingEntriesLength);\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 // Get the safe bounding box edges from the width, height, minX, maxX, minY\n const sbb_left = -minX;\n const sbb_top = -minY;\n const sbb_right = width - maxX;\n\n const pseudoPixelContext = ReusedContexts[templateIndex];\n let row = new Uint8Array(width);\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n let ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row); // duplicate previous row\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n // Are we in the middle of a scanline, so we can reuse contextLabel\n // bits?\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n // If yes, we can just shift the bits that are reusable and only\n // fetch the remaining ones.\n contextLabel = (contextLabel << 1) & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n // compute the contextLabel from scratch\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n}\n\n// 6.3.2 Generic Refinement Region Decoding Procedure\nfunction decodeRefinement(\n width,\n height,\n templateIndex,\n referenceBitmap,\n offsetX,\n offsetY,\n prediction,\n at,\n decodingContext\n) {\n let codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n const codingTemplateLength = codingTemplate.length;\n const codingTemplateX = new Int32Array(codingTemplateLength);\n const codingTemplateY = new Int32Array(codingTemplateLength);\n let k;\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 if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n const referenceTemplateLength = referenceTemplate.length;\n const referenceTemplateX = new Int32Array(referenceTemplateLength);\n const referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n const referenceWidth = referenceBitmap[0].length;\n const referenceHeight = referenceBitmap.length;\n\n const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n let ltp = 0;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let j = 0; j < width; j++) {\n let i0, j0;\n let contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.5.5 Decoding the symbol dictionary\nfunction decodeSymbolDictionary(\n huffman,\n refinement,\n symbols,\n numberOfNewSymbols,\n numberOfExportedSymbols,\n huffmanTables,\n templateIndex,\n at,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n huffmanInput\n) {\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 = log2(symbols.length + numberOfNewSymbols);\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n if (huffman) {\n tableB1 = getStandardTable(1); // standard table B.1\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n const deltaHeight = huffman\n ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n while (true) {\n const deltaWidth = huffman\n ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n if (deltaWidth === null) {\n break; // OOB\n }\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n let bitmap;\n if (refinement) {\n // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(\n huffman,\n refinement,\n currentWidth,\n currentHeight,\n 0,\n numberOfInstances,\n 1, // strip size\n symbols.concat(newSymbols),\n symbolCodeLength,\n 0, // transposed\n 0, // ds offset\n 1, // top left 7.4.3.1.1\n 0, // OR operator\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n 0,\n huffmanInput\n );\n } else {\n const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n const symbol =\n symbolId < symbols.length\n ? symbols[symbolId]\n : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(\n currentWidth,\n currentHeight,\n refinementTemplateIndex,\n symbol,\n rdx,\n rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n newSymbols.push(bitmap);\n } else if (huffman) {\n // Store only symbol width and decode a collective bitmap when the\n // height class is done.\n symbolWidths.push(currentWidth);\n } else {\n // 6.5.8.1 Direct-coded symbol bitmap\n bitmap = decodeBitmap(\n false,\n currentWidth,\n currentHeight,\n templateIndex,\n false,\n null,\n at,\n decodingContext\n );\n newSymbols.push(bitmap);\n }\n }\n if (huffman && !refinement) {\n // 6.5.9 Height class collective bitmap\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n if (bitmapSize === 0) {\n // Uncompressed collective bitmap\n collectiveBitmap = readUncompressedBitmap(\n huffmanInput,\n totalWidth,\n currentHeight\n );\n } else {\n // MMR collective bitmap\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(\n huffmanInput,\n totalWidth,\n currentHeight,\n false\n );\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n const numberOfSymbolsDecoded = symbolWidths.length;\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n // collectiveBitmap is a single symbol.\n newSymbols.push(collectiveBitmap);\n } else {\n // Divide collectiveBitmap into symbols.\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n // 6.5.10 Exported symbols\n const exportedSymbols = [],\n flags = [];\n let currentFlag = false,\n i,\n ii;\n const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n let runLength = huffman\n ? tableB1.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAEX\", decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n huffman,\n refinement,\n width,\n height,\n defaultPixelValue,\n numberOfSymbolInstances,\n stripSize,\n inputSymbols,\n symbolCodeLength,\n transposed,\n dsOffset,\n referenceCorner,\n combinationOperator,\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n logStripSize,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n // Prepare bitmap\n const bitmap = [];\n let i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (let j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n\n let stripT = huffman\n ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n let firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n const deltaT = huffman\n ? huffmanTables.tableDeltaT.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n stripT += deltaT;\n\n const deltaFirstS = huffman\n ? huffmanTables.tableFirstS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n firstS += deltaFirstS;\n let currentS = firstS;\n do {\n let currentT = 0; // 6.4.9\n if (stripSize > 1) {\n currentT = huffman\n ? huffmanInput.readBits(logStripSize)\n : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n const t = stripSize * stripT + currentT;\n const symbolId = huffman\n ? huffmanTables.symbolIDTable.decode(huffmanInput)\n : decodeIAID(contextCache, decoder, symbolCodeLength);\n const applyRefinement =\n refinement &&\n (huffman\n ? huffmanInput.readBit()\n : decodeInteger(contextCache, \"IARI\", decoder));\n let symbolBitmap = inputSymbols[symbolId];\n let symbolWidth = symbolBitmap[0].length;\n let symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(\n symbolWidth,\n symbolHeight,\n refinementTemplateIndex,\n symbolBitmap,\n (rdw >> 1) + rdx,\n (rdh >> 1) + rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n\n let increment = 0;\n if (!transposed) {\n if (referenceCorner > 1) {\n currentS += symbolWidth - 1;\n } else {\n increment = symbolWidth - 1;\n }\n } else if (!(referenceCorner & 1)) {\n currentS += symbolHeight - 1;\n } else {\n increment = symbolHeight - 1;\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 if (transposed) {\n // Place Symbol Bitmap from T1,S1\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n // To ignore Parts of Symbol bitmap which goes\n // outside bitmap region\n const maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0: // OR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2: // XOR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0: // OR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2: // XOR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n }\n i++;\n const deltaS = huffman\n ? huffmanTables.tableDeltaS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n if (deltaS === null) {\n break; // OOB\n }\n currentS += increment + deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n}\n\nfunction decodePatternDictionary(\n mmr,\n patternWidth,\n patternHeight,\n maxPatternIndex,\n template,\n decodingContext\n) {\n const at = [];\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(\n mmr,\n collectiveWidth,\n patternHeight,\n template,\n false,\n null,\n at,\n decodingContext\n );\n // Divide collective bitmap into patterns.\n const patterns = [];\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n }\n return patterns;\n}\n\nfunction decodeHalftoneRegion(\n mmr,\n patterns,\n template,\n regionWidth,\n regionHeight,\n defaultPixelValue,\n enableSkip,\n combinationOperator,\n gridWidth,\n gridHeight,\n gridOffsetX,\n gridOffsetY,\n gridVectorX,\n gridVectorY,\n decodingContext\n) {\n const skip = null;\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\n `operator \"${combinationOperator}\" is not supported in halftone region`\n );\n }\n\n // Prepare bitmap.\n const regionBitmap = [];\n let i, j, row;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\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 = log2(numberOfPatterns);\n const at = [];\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n // Annex C. Gray-scale Image Decoding Procedure.\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n if (mmr) {\n // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n // the end of each bitmap, so EOFBs must be decoded.\n mmrInput = new Reader(\n decodingContext.data,\n decodingContext.start,\n 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(\n false,\n gridWidth,\n gridHeight,\n template,\n false,\n skip,\n at,\n decodingContext\n );\n }\n grayScaleBitPlanes[i] = bitmap;\n }\n // 6.6.5.2 Rendering the patterns.\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n // Draw patternBitmap at (x, y).\n if (\n x >= 0 &&\n x + patternWidth <= regionWidth &&\n y >= 0 &&\n y + patternHeight <= regionHeight\n ) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n const segmentHeader = {};\n segmentHeader.number = readUint32(data, start);\n const flags = data[start + 4];\n const segmentType = flags & 0x3f;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\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 if (referredFlags === 7) {\n referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n position += 3;\n let bytes = (referredToCount + 7) >> 3;\n retainBits[0] = data[position++];\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\n let referredToSegmentNumberSize = 4;\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n const referredTo = [];\n let i, ii;\n for (i = 0; i < referredToCount; i++) {\n let number;\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = readUint16(data, position);\n } else {\n number = readUint32(data, position);\n }\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = readUint32(data, position);\n position += 4;\n }\n segmentHeader.length = readUint32(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n // 7.2.7 Segment data length, unknown segment length\n if (segmentType === 38) {\n // ImmediateGenericRegion\n const genericRegionInfo = readRegionSegmentInformation(data, position);\n const genericRegionSegmentFlags =\n data[position + RegionSegmentInformationFieldLength];\n const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n // searching for the segment end\n const searchPatternLength = 6;\n const searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\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 for (i = position, ii = data.length; i < ii; i++) {\n let j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\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 segmentHeader.headerEnd = position;\n return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n const segments = [];\n let position = start;\n while (position < end) {\n const segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n const segment = {\n header: segmentHeader,\n data,\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break; // end of file is found\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 return segments;\n}\n\n// 7.4.1 Region segment information field\nfunction readRegionSegmentInformation(data, start) {\n return {\n width: readUint32(data, start),\n height: readUint32(data, start + 4),\n x: readUint32(data, start + 8),\n y: readUint32(data, start + 12),\n combinationOperator: data[start + 16] & 7,\n };\n}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n const header = segment.header;\n\n const data = segment.data,\n end = segment.end;\n let position = segment.start;\n let args, at, i, atLength;\n switch (header.type) {\n case 0: // SymbolDictionary\n // 7.4.2 Symbol dictionary segment syntax\n const dictionary = {};\n const dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\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 if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = readUint32(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = readUint32(data, position);\n position += 4;\n args = [\n dictionary,\n header.number,\n header.referredTo,\n data,\n position,\n end,\n ];\n break;\n case 6: // ImmediateTextRegion\n case 7: // ImmediateLosslessTextRegion\n const textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const textRegionSegmentFlags = 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 if (textRegion.huffman) {\n const textRegionHuffmanFlags = 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 = !!(\n textRegionHuffmanFlags & 0x4000\n );\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = readUint32(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16: // PatternDictionary\n // 7.4.4. Pattern dictionary segment syntax\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 = readUint32(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22: // ImmediateHalftoneRegion\n case 23: // ImmediateLosslessHalftoneRegion\n // 7.4.5 Halftone region segment syntax\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 = readUint32(data, position);\n position += 4;\n halftoneRegion.gridHeight = readUint32(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = readUint16(data, position);\n position += 2;\n halftoneRegion.gridVectorY = readUint16(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38: // ImmediateGenericRegion\n case 39: // ImmediateLosslessGenericRegion\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 if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48: // PageInformation\n const pageInfo = {\n width: readUint32(data, position),\n height: readUint32(data, position + 4),\n resolutionX: readUint32(data, position + 8),\n resolutionY: readUint32(data, position + 12),\n };\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n const pageSegmentFlags = data[position + 16];\n readUint16(data, position + 17); // pageStripingInformation\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 case 49: // EndOfPage\n break;\n case 50: // EndOfStripe\n break;\n case 51: // EndOfFile\n break;\n case 53: // Tables\n args = [header.number, data, position, end];\n break;\n case 62: // 7.4.15 defines 2 extension types which\n // are comments and can be ignored.\n break;\n default:\n throw new Jbig2Error(\n `segment type ${header.typeName}(${header.type}) is not implemented`\n );\n }\n const callbackName = \"on\" + header.typeName;\n if (callbackName in visitor) {\n // eslint-disable-next-line prefer-spread\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 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 return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n throw new Error(\"Not implemented: parseJbig2\");\n }\n const end = data.length;\n let position = 0;\n\n if (\n data[position] !== 0x97 ||\n data[position + 1] !== 0x4a ||\n data[position + 2] !== 0x42 ||\n data[position + 3] !== 0x32 ||\n data[position + 4] !== 0x0d ||\n data[position + 5] !== 0x0a ||\n data[position + 6] !== 0x1a ||\n data[position + 7] !== 0x0a\n ) {\n throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n }\n\n const header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = readUint32(data, position);\n position += 4;\n }\n\n const segments = readSegments(header, data, position, end);\n const visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n\n const { width, height } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return { imgData, width, height };\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 // The contents of ArrayBuffers are initialized to 0.\n // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n if (info.defaultPixelValue) {\n buffer.fill(0xff);\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\n ? regionInfo.combinationOperator\n : 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 switch (combinationOperator) {\n case 0: // OR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2: // XOR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\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(\n region.mmr,\n regionInfo.width,\n regionInfo.height,\n region.template,\n region.prediction,\n null,\n region.at,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion(...arguments);\n }\n\n onSymbolDictionary(\n dictionary,\n currentSegment,\n referredSegments,\n data,\n start,\n end\n ) {\n let huffmanTables, huffmanInput;\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(\n dictionary,\n referredSegments,\n this.customTables\n );\n huffmanInput = new Reader(data, start, end);\n }\n\n // Combines exported symbols from all referred segments\n let symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n const inputSymbols = [];\n for (const referredSegment of referredSegments) {\n const referredSymbols = symbols[referredSegment];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols.push(...referredSymbols);\n }\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(\n dictionary.huffman,\n dictionary.refinement,\n inputSymbols,\n dictionary.numberOfNewSymbols,\n dictionary.numberOfExportedSymbols,\n huffmanTables,\n dictionary.template,\n dictionary.at,\n dictionary.refinementTemplate,\n dictionary.refinementAt,\n decodingContext,\n huffmanInput\n );\n }\n\n onImmediateTextRegion(region, referredSegments, data, start, end) {\n const regionInfo = region.info;\n let huffmanTables, huffmanInput;\n\n // Combines exported symbols from all referred segments\n const symbols = this.symbols;\n const inputSymbols = [];\n for (const referredSegment of referredSegments) {\n const referredSymbols = symbols[referredSegment];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols.push(...referredSymbols);\n }\n }\n const symbolCodeLength = log2(inputSymbols.length);\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(\n region,\n referredSegments,\n this.customTables,\n inputSymbols.length,\n huffmanInput\n );\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeTextRegion(\n region.huffman,\n region.refinement,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.numberOfSymbolInstances,\n region.stripSize,\n inputSymbols,\n symbolCodeLength,\n region.transposed,\n region.dsOffset,\n region.referenceCorner,\n region.combinationOperator,\n huffmanTables,\n region.refinementTemplate,\n region.refinementAt,\n decodingContext,\n region.logStripSize,\n huffmanInput\n );\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 if (!patterns) {\n this.patterns = patterns = {};\n }\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(\n dictionary.mmr,\n dictionary.patternWidth,\n dictionary.patternHeight,\n dictionary.maxPatternIndex,\n dictionary.template,\n decodingContext\n );\n }\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n // HalftoneRegion refers to exactly one PatternDictionary.\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(\n region.mmr,\n patterns,\n region.template,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.enableSkip,\n region.combinationOperator,\n region.gridWidth,\n region.gridHeight,\n region.gridOffsetX,\n region.gridOffsetY,\n region.gridVectorX,\n region.gridVectorY,\n decodingContext\n );\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 if (!customTables) {\n this.customTables = customTables = {};\n }\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n}\n\nclass HuffmanLine {\n constructor(lineData) {\n if (lineData.length === 2) {\n // OOB line.\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 // Normal, upper range or lower range line.\n // Upper range lines are processed like normal lines.\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\nclass HuffmanTreeNode {\n constructor(line) {\n this.children = [];\n if (line) {\n // Leaf node\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 // Intermediate or root node\n this.isLeaf = false;\n }\n }\n\n buildTree(line, shift) {\n const bit = (line.prefixCode >> shift) & 1;\n if (shift <= 0) {\n // Create a leaf node.\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n // Create an intermediate node and continue recursively.\n let node = this.children[bit];\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\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 const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n const node = this.children[reader.readBit()];\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n return node.decodeNode(reader);\n }\n}\n\nclass HuffmanTable {\n constructor(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n // Create Huffman tree.\n this.rootNode = new HuffmanTreeNode(null);\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\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 // Annex B.3 Assigning the prefix codes.\n const linesLength = lines.length;\n let prefixLengthMax = 0;\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 for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\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 while (currentTemp < linesLength) {\n line = lines[currentTemp];\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n currentTemp++;\n }\n currentLength++;\n }\n }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n // Decodes a Tables segment, i.e., a custom Huffman table.\n // Annex B.2 Code table structure.\n const flags = data[start];\n const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n const highestValue = readUint32(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\n\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 // Normal table lines\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(\n new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n );\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n // Lower range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n // Upper range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n // Out-of-band table line\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 // Annex B.5 Standard Huffman tables.\n let table = standardTablesCache[number];\n if (table) {\n return table;\n }\n let lines;\n switch (number) {\n case 1:\n lines = [\n [0, 1, 4, 0x0],\n [16, 2, 8, 0x2],\n [272, 3, 16, 0x6],\n [65808, 3, 32, 0x7], // upper\n ];\n break;\n case 2:\n lines = [\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [75, 6, 32, 0x3e], // upper\n [6, 0x3f], // OOB\n ];\n break;\n case 3:\n lines = [\n [-256, 8, 8, 0xfe],\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [-257, 8, 32, 0xff, \"lower\"],\n [75, 7, 32, 0x7e], // upper\n [6, 0x3e], // OOB\n ];\n break;\n case 4:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [76, 5, 32, 0x1f], // upper\n ];\n break;\n case 5:\n lines = [\n [-255, 7, 8, 0x7e],\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [-256, 7, 32, 0x7f, \"lower\"],\n [76, 6, 32, 0x3e], // upper\n ];\n break;\n case 6:\n lines = [\n [-2048, 5, 10, 0x1c],\n [-1024, 4, 9, 0x8],\n [-512, 4, 8, 0x9],\n [-256, 4, 7, 0xa],\n [-128, 5, 6, 0x1d],\n [-64, 5, 5, 0x1e],\n [-32, 4, 5, 0xb],\n [0, 2, 7, 0x0],\n [128, 3, 7, 0x2],\n [256, 3, 8, 0x3],\n [512, 4, 9, 0xc],\n [1024, 4, 10, 0xd],\n [-2049, 6, 32, 0x3e, \"lower\"],\n [2048, 6, 32, 0x3f], // upper\n ];\n break;\n case 7:\n lines = [\n [-1024, 4, 9, 0x8],\n [-512, 3, 8, 0x0],\n [-256, 4, 7, 0x9],\n [-128, 5, 6, 0x1a],\n [-64, 5, 5, 0x1b],\n [-32, 4, 5, 0xa],\n [0, 4, 5, 0xb],\n [32, 5, 5, 0x1c],\n [64, 5, 6, 0x1d],\n [128, 4, 7, 0xc],\n [256, 3, 8, 0x1],\n [512, 3, 9, 0x2],\n [1024, 3, 10, 0x3],\n [-1025, 5, 32, 0x1e, \"lower\"],\n [2048, 5, 32, 0x1f], // upper\n ];\n break;\n case 8:\n lines = [\n [-15, 8, 3, 0xfc],\n [-7, 9, 1, 0x1fc],\n [-5, 8, 1, 0xfd],\n [-3, 9, 0, 0x1fd],\n [-2, 7, 0, 0x7c],\n [-1, 4, 0, 0xa],\n [0, 2, 1, 0x0],\n [2, 5, 0, 0x1a],\n [3, 6, 0, 0x3a],\n [4, 3, 4, 0x4],\n [20, 6, 1, 0x3b],\n [22, 4, 4, 0xb],\n [38, 4, 5, 0xc],\n [70, 5, 6, 0x1b],\n [134, 5, 7, 0x1c],\n [262, 6, 7, 0x3c],\n [390, 7, 8, 0x7d],\n [646, 6, 10, 0x3d],\n [-16, 9, 32, 0x1fe, \"lower\"],\n [1670, 9, 32, 0x1ff], // upper\n [2, 0x1], // OOB\n ];\n break;\n case 9:\n lines = [\n [-31, 8, 4, 0xfc],\n [-15, 9, 2, 0x1fc],\n [-11, 8, 2, 0xfd],\n [-7, 9, 1, 0x1fd],\n [-5, 7, 1, 0x7c],\n [-3, 4, 1, 0xa],\n [-1, 3, 1, 0x2],\n [1, 3, 1, 0x3],\n [3, 5, 1, 0x1a],\n [5, 6, 1, 0x3a],\n [7, 3, 5, 0x4],\n [39, 6, 2, 0x3b],\n [43, 4, 5, 0xb],\n [75, 4, 6, 0xc],\n [139, 5, 7, 0x1b],\n [267, 5, 8, 0x1c],\n [523, 6, 8, 0x3c],\n [779, 7, 9, 0x7d],\n [1291, 6, 11, 0x3d],\n [-32, 9, 32, 0x1fe, \"lower\"],\n [3339, 9, 32, 0x1ff], // upper\n [2, 0x0], // OOB\n ];\n break;\n case 10:\n lines = [\n [-21, 7, 4, 0x7a],\n [-5, 8, 0, 0xfc],\n [-4, 7, 0, 0x7b],\n [-3, 5, 0, 0x18],\n [-2, 2, 2, 0x0],\n [2, 5, 0, 0x19],\n [3, 6, 0, 0x36],\n [4, 7, 0, 0x7c],\n [5, 8, 0, 0xfd],\n [6, 2, 6, 0x1],\n [70, 5, 5, 0x1a],\n [102, 6, 5, 0x37],\n [134, 6, 6, 0x38],\n [198, 6, 7, 0x39],\n [326, 6, 8, 0x3a],\n [582, 6, 9, 0x3b],\n [1094, 6, 10, 0x3c],\n [2118, 7, 11, 0x7d],\n [-22, 8, 32, 0xfe, \"lower\"],\n [4166, 8, 32, 0xff], // upper\n [2, 0x2], // OOB\n ];\n break;\n case 11:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 1, 0x2],\n [4, 4, 0, 0xc],\n [5, 4, 1, 0xd],\n [7, 5, 1, 0x1c],\n [9, 5, 2, 0x1d],\n [13, 6, 2, 0x3c],\n [17, 7, 2, 0x7a],\n [21, 7, 3, 0x7b],\n [29, 7, 4, 0x7c],\n [45, 7, 5, 0x7d],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 12:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 1, 0x6],\n [5, 5, 0, 0x1c],\n [6, 5, 1, 0x1d],\n [8, 6, 1, 0x3c],\n [10, 7, 0, 0x7a],\n [11, 7, 1, 0x7b],\n [13, 7, 2, 0x7c],\n [17, 7, 3, 0x7d],\n [25, 7, 4, 0x7e],\n [41, 8, 5, 0xfe],\n [73, 8, 32, 0xff], // upper\n ];\n break;\n case 13:\n lines = [\n [1, 1, 0, 0x0],\n [2, 3, 0, 0x4],\n [3, 4, 0, 0xc],\n [4, 5, 0, 0x1c],\n [5, 4, 1, 0xd],\n [7, 3, 3, 0x5],\n [15, 6, 1, 0x3a],\n [17, 6, 2, 0x3b],\n [21, 6, 3, 0x3c],\n [29, 6, 4, 0x3d],\n [45, 6, 5, 0x3e],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 14:\n lines = [\n [-2, 3, 0, 0x4],\n [-1, 3, 0, 0x5],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x6],\n [2, 3, 0, 0x7],\n ];\n break;\n case 15:\n lines = [\n [-24, 7, 4, 0x7c],\n [-8, 6, 2, 0x3c],\n [-4, 5, 1, 0x1c],\n [-2, 4, 0, 0xc],\n [-1, 3, 0, 0x4],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x5],\n [2, 4, 0, 0xd],\n [3, 5, 1, 0x1d],\n [5, 6, 2, 0x3d],\n [9, 7, 4, 0x7d],\n [-25, 7, 32, 0x7e, \"lower\"],\n [25, 7, 32, 0x7f], // upper\n ];\n break;\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 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 this.currentByte = this.data[this.position++];\n this.shift = 7;\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 for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\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 return this.data[this.position++];\n }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n // Returns a Tables segment that has been earlier decoded.\n // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n let currentIndex = 0;\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n currentIndex++;\n }\n }\n throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n textRegion,\n referredTo,\n customTables,\n numberOfSymbols,\n reader\n) {\n // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n // Read code lengths for RUNCODEs 0...34.\n const codes = [];\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 // Assign Huffman codes for RUNCODEs.\n const runCodesTable = new HuffmanTable(codes, false);\n\n // Read a Huffman code using the assignment above.\n // Interpret the RUNCODE codes and the additional bits (if any).\n codes.length = 0;\n for (let i = 0; i < numberOfSymbols; ) {\n const codeLength = runCodesTable.decode(reader);\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\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 reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\n\n // 7.4.3.1.6 Text region segment Huffman table selection\n\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 case 3:\n tableFirstS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\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 case 3:\n tableDeltaS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\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 case 3:\n tableDeltaT = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\n // Load tables RDW, RDH, RDX and RDY.\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(\n dictionary,\n referredTo,\n customTables\n) {\n // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\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 case 3:\n tableDeltaWidth = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\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 for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n reader.byteAlign();\n }\n return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n // MMR is the same compression algorithm as the PDF filter\n // CCITTFaxDecode with /K -1.\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock,\n };\n const decoder = new 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 for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n if (currentByte === -1) {\n // Set the rest of the bits to zero.\n currentByte = 0;\n eof = true;\n }\n shift = 7;\n }\n row[x] = (currentByte >> shift) & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n // Read until EOFB has been consumed.\n const lookForEOFLimit = 5;\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 if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n throw new Error(\"Not implemented: Jbig2Image.parse\");\n }\n const { imgData, width, height } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n}\n\nexport { Jbig2Image };\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\nimport { FeatureTest, ImageKind } from \"./util.js\";\n\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n\n return null;\n}\n\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false,\n}) {\n const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode\n ? [nonBlackColor, black]\n : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\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 if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & (1 << (7 - j)) ? oneMapping : zeroMapping;\n }\n }\n return { srcPos, destPos };\n}\n\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n}) {\n let i = 0;\n const len32 = src.length >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n\n if (FeatureTest.isLittleEndian) {\n // It's a way faster to do the shuffle manually instead of working\n // component by component with some Uint8 arrays.\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i]; // R2B1G1R1\n const s2 = src32[i + 1]; // G3R3B2G2\n const s3 = src32[i + 2]; // B4G4R4B3\n\n dest[destPos] = s1 | 0xff000000;\n dest[destPos + 1] = (s1 >>> 24) | (s2 << 8) | 0xff000000;\n dest[destPos + 2] = (s2 >>> 16) | (s3 << 16) | 0xff000000;\n dest[destPos + 3] = (s3 >>> 8) | 0xff000000;\n }\n\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] =\n src[j] | (src[j + 1] << 8) | (src[j + 2] << 16) | 0xff000000;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i]; // R1G1B1R2\n const s2 = src32[i + 1]; // G2B2R3G3\n const s3 = src32[i + 2]; // B3R4G4B4\n\n dest[destPos] = s1 | 0xff;\n dest[destPos + 1] = (s1 << 24) | (s2 >>> 8) | 0xff;\n dest[destPos + 2] = (s2 << 16) | (s3 >>> 16) | 0xff;\n dest[destPos + 3] = (s3 << 8) | 0xff;\n }\n\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] =\n (src[j] << 24) | (src[j + 1] << 16) | (src[j + 2] << 8) | 0xff;\n }\n }\n\n return { srcPos, destPos };\n}\n\nfunction grayToRGBA(src, dest) {\n if (FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = (src[i] * 0x10101) | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = (src[i] * 0x1010100) | 0x000000ff;\n }\n }\n}\n\nexport { convertBlackAndWhiteToRGBA, convertToRGBA, grayToRGBA };\n","/* Copyright 2014 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\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { grayToRGBA } from \"../shared/image_utils.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`, \"JpegError\");\n }\n}\n\nclass DNLMarkerError extends BaseException {\n constructor(message, scanLines) {\n super(message, \"DNLMarkerError\");\n this.scanLines = scanLines;\n }\n}\n\nclass EOIMarkerError extends BaseException {\n constructor(msg) {\n super(msg, \"EOIMarkerError\");\n }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0,\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n const code = [{ children: [], index: 0 }];\n let p = code[0],\n q;\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 while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\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(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive,\n parseDNLMarker = false\n) {\n const mcusPerLine = frame.mcusPerLine;\n const progressive = frame.progressive;\n\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 bitsData = data[offset++];\n if (bitsData === 0xff) {\n const nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n offset += 2; // Skip marker length.\n\n const scanLines = readUint16(data, offset);\n offset += 2;\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n \"Found DNL marker (0xFFDC) while parsing scan data\",\n scanLines\n );\n }\n } else if (nextByte === /* EOI = */ 0xd9) {\n if (parseDNLMarker) {\n // NOTE: only 8-bit JPEG images are supported in this decoder.\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n // Heuristic to attempt to handle corrupt JPEG images with too\n // large `scanLines` parameter, by falling back to the currently\n // parsed number of scanLines when it's at least (approximately)\n // one \"half\" order of magnitude smaller than expected (fixes\n // issue10880.pdf, issue10989.pdf, issue15492.pdf).\n if (\n maybeScanLines > 0 &&\n Math.round(frame.scanLines / maybeScanLines) >= 5\n ) {\n throw new DNLMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n \"possibly caused by incorrect `scanLines` parameter\",\n maybeScanLines\n );\n }\n }\n throw new EOIMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data\"\n );\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n let node = tree;\n while (true) {\n node = node[readBit()];\n switch (typeof node) {\n case \"number\":\n return node;\n case \"object\":\n continue;\n }\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n let n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return 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 while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\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 function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n let successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, blockOffset) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n let s;\n let rs;\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\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 successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\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 break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\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 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 const mcuExpected =\n componentsLength === 1\n ? components[0].blocksPerLine * components[0].blocksPerColumn\n : mcusPerLine * frame.mcusPerColumn;\n\n let h, v;\n while (mcu <= mcuExpected) {\n // reset interval stuff\n const mcuToRead = resetInterval\n ? Math.min(mcuExpected - mcu, resetInterval)\n : mcuExpected;\n\n // The `mcuToRead === 0` case should only occur when all of the expected\n // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n // some corrupt JPEG images contain more data than intended and we thus\n // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\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 for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (!fileMarker) {\n break; // Reached the end of the image data without finding any marker.\n }\n if (fileMarker.invalid) {\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n // past those to attempt to find a valid marker (fixes issue4090.pdf).\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n warn(\n `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n );\n offset = fileMarker.offset;\n }\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n// 988-991.\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 // inverse DCT on rows\n for (let row = 0; row < 64; row += 8) {\n // gather block data\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\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\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 // dequant p1 ... p7\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\n // stage 4\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\n // stage 3\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\n // stage 2\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\n // stage 1\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 // inverse DCT on columns\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 // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // Convert to 8-bit.\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = (t + 2056) >> 4;\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 // stage 4\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\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\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\n // stage 2\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\n // stage 1\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 // Convert to 8-bit integers.\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n // store block data\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 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; // Don't attempt to read non-existent data and just return.\n }\n const currentMarker = readUint16(data, currentPos);\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n let newMarker = readUint16(data, newPos);\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = readUint16(data, newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n}\n\nclass JpegImage {\n constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n parse(data, { dnlScanLines = null } = {}) {\n function readDataBlock() {\n const length = readUint16(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker?.invalid) {\n warn(\n \"readDataBlock - incorrect length, current marker is: \" +\n fileMarker.invalid\n );\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 for (const component of frame.components) {\n const blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n const blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n const blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\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\n let fileMarker = readUint16(data, offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n let i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n // 'JFIF\\x00'\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\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(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n // 'Adobe'\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65\n ) {\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 break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16(data, offset);\n offset += 2;\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n let z;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n offset += 2; // Skip marker length.\n\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = readUint16(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = 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 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 if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n const qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n const huffmanLength = readUint16(data, offset);\n offset += 2;\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n offset += 2; // Skip marker length.\n\n resetInterval = readUint16(data, offset);\n offset += 2;\n break;\n\n case 0xffda: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n offset += 2; // Skip marker length.\n\n const selectorsCount = data[offset++],\n components = [];\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 const spectralStart = data[offset++],\n spectralEnd = data[offset++],\n successiveApproximation = data[offset++];\n try {\n const processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15,\n parseDNLMarker\n );\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xffdc: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n // Could be incorrect encoding -- the last 0xFF byte of the previous\n // block could have been eaten by the encoder, hence we fallback to\n // `startPos = offset - 3` when looking for the next valid marker.\n const nextFileMarker = findNextFileMarker(\n data,\n /* currentPos = */ offset - 2,\n /* startPos = */ offset - 3\n );\n if (nextFileMarker?.invalid) {\n warn(\n \"JpegImage.parse - unexpected data, current marker is: \" +\n nextFileMarker.invalid\n );\n offset = nextFileMarker.offset;\n break;\n }\n if (!nextFileMarker || offset >= data.length - 1) {\n warn(\n \"JpegImage.parse - reached the end of the image data \" +\n \"without finding an EOI marker (0xFFD9).\"\n );\n break markerLoop;\n }\n throw new JpegError(\n \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n );\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n }\n\n if (!frame) {\n throw new JpegError(\"JpegImage.parse - no frame data found.\");\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (const component of frame.components) {\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n const quantizationTable = quantizationTables[component.quantizationId];\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 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\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; // used to clear the 3 LSBs\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 // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n // component data, that's only necessary when `componentScaleX` changes.\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 lastComponentScaleX = componentScaleX;\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\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 return data;\n }\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n } else if (\n this.components[0].index === /* \"R\" = */ 0x52 &&\n this.components[1].index === /* \"G\" = */ 0x47 &&\n this.components[2].index === /* \"B\" = */ 0x42\n ) {\n // If the three components are indexed as RGB in ASCII\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n }\n\n _convertYccToRgb(data) {\n let Y, Cb, Cr;\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 return data;\n }\n\n _convertYccToRgba(data, out) {\n for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) {\n const Y = data[i];\n const Cb = data[i + 1];\n const Cr = data[i + 2];\n out[j] = Y - 179.456 + 1.402 * Cr;\n out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n out[j + 2] = Y - 226.816 + 1.772 * Cb;\n out[j + 3] = 255;\n }\n return out;\n }\n\n _convertYcckToRgb(data) {\n let Y, Cb, Cr, k;\n let offset = 0;\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\n data[offset++] =\n -122.67195406894 +\n Cb *\n (-6.60635669420364e-5 * Cb +\n 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y +\n 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr *\n (-0.000957964378445773 * Cr +\n 0.000817076911346625 * Y -\n 0.00477271405408747 * k +\n 1.53380253221734) +\n Y *\n (0.000961250184130688 * Y -\n 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[offset++] =\n 107.268039397724 +\n Cb *\n (2.19927104525741e-5 * Cb -\n 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y +\n 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr *\n (-0.000778269941513683 * Cr +\n 0.00130872261408275 * Y +\n 0.000770482631801132 * k -\n 0.151051492775562) +\n Y *\n (0.00126935368114843 * Y -\n 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[offset++] =\n -20.810012546947 +\n Cb *\n (-0.000570115196973677 * Cb -\n 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y -\n 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr *\n (-1.53496057440975e-5 * Cr -\n 0.000132689043961446 * Y +\n 0.000560833691242812 * k -\n 0.195152027534049) +\n Y *\n (0.00174418132927582 * Y -\n 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n _convertYcckToRgba(data) {\n for (let i = 0, length = data.length; i < length; i += 4) {\n const Y = data[i];\n const Cb = data[i + 1];\n const Cr = data[i + 2];\n const k = data[i + 3];\n\n data[i] =\n -122.67195406894 +\n Cb *\n (-6.60635669420364e-5 * Cb +\n 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y +\n 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr *\n (-0.000957964378445773 * Cr +\n 0.000817076911346625 * Y -\n 0.00477271405408747 * k +\n 1.53380253221734) +\n Y *\n (0.000961250184130688 * Y -\n 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[i + 1] =\n 107.268039397724 +\n Cb *\n (2.19927104525741e-5 * Cb -\n 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y +\n 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr *\n (-0.000778269941513683 * Cr +\n 0.00130872261408275 * Y +\n 0.000770482631801132 * k -\n 0.151051492775562) +\n Y *\n (0.00126935368114843 * Y -\n 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[i + 2] =\n -20.810012546947 +\n Cb *\n (-0.000570115196973677 * Cb -\n 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y -\n 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr *\n (-1.53496057440975e-5 * Cr -\n 0.000132689043961446 * Y +\n 0.000560833691242812 * k -\n 0.195152027534049) +\n Y *\n (0.00174418132927582 * Y -\n 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n data[i + 3] = 255;\n }\n return data;\n }\n\n _convertYcckToCmyk(data) {\n let Y, Cb, Cr;\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 // K in data[i + 3] is unchanged\n }\n return data;\n }\n\n _convertCmykToRgb(data) {\n let c, m, y, k;\n let offset = 0;\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\n data[offset++] =\n 255 +\n c *\n (-0.00006747147073602441 * c +\n 0.0008379262121013727 * m +\n 0.0002894718188643294 * y +\n 0.003264231057537806 * k -\n 1.1185611867203937) +\n m *\n (0.000026374107616089405 * m -\n 0.00008626949158638572 * y -\n 0.0002748769067499491 * k -\n 0.02155688794978967) +\n y *\n (-0.00003878099212869363 * y -\n 0.0003267808279485286 * k +\n 0.0686742238595345) -\n k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n data[offset++] =\n 255 +\n c *\n (0.00013596372813588848 * c +\n 0.000924537132573585 * m +\n 0.00010567359618683593 * y +\n 0.0004791864687436512 * k -\n 0.3109689587515875) +\n m *\n (-0.00023545346108370344 * m +\n 0.0002702845253534714 * y +\n 0.0020200308977307156 * k -\n 0.7488052167015494) +\n y *\n (0.00006834815998235662 * y +\n 0.00015168452363460973 * k -\n 0.09751927774728933) -\n k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n data[offset++] =\n 255 +\n c *\n (0.000013598650411385307 * c +\n 0.00012423956175490851 * m +\n 0.0004751985097583589 * y -\n 0.0000036729317476630422 * k -\n 0.05562186980264034) +\n m *\n (0.00016141380598724676 * m +\n 0.0009692239130725186 * y +\n 0.0007782692450036253 * k -\n 0.44015232367526463) +\n y *\n (5.068882914068769e-7 * y +\n 0.0017778369011375071 * k -\n 0.7591454649749609) -\n k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n _convertCmykToRgba(data) {\n for (let i = 0, length = data.length; i < length; i += 4) {\n const c = data[i];\n const m = data[i + 1];\n const y = data[i + 2];\n const k = data[i + 3];\n\n data[i] =\n 255 +\n c *\n (-0.00006747147073602441 * c +\n 0.0008379262121013727 * m +\n 0.0002894718188643294 * y +\n 0.003264231057537806 * k -\n 1.1185611867203937) +\n m *\n (0.000026374107616089405 * m -\n 0.00008626949158638572 * y -\n 0.0002748769067499491 * k -\n 0.02155688794978967) +\n y *\n (-0.00003878099212869363 * y -\n 0.0003267808279485286 * k +\n 0.0686742238595345) -\n k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n data[i + 1] =\n 255 +\n c *\n (0.00013596372813588848 * c +\n 0.000924537132573585 * m +\n 0.00010567359618683593 * y +\n 0.0004791864687436512 * k -\n 0.3109689587515875) +\n m *\n (-0.00023545346108370344 * m +\n 0.0002702845253534714 * y +\n 0.0020200308977307156 * k -\n 0.7488052167015494) +\n y *\n (0.00006834815998235662 * y +\n 0.00015168452363460973 * k -\n 0.09751927774728933) -\n k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n data[i + 2] =\n 255 +\n c *\n (0.000013598650411385307 * c +\n 0.00012423956175490851 * m +\n 0.0004751985097583589 * y -\n 0.0000036729317476630422 * k -\n 0.05562186980264034) +\n m *\n (0.00016141380598724676 * m +\n 0.0009692239130725186 * y +\n 0.0007782692450036253 * k -\n 0.44015232367526463) +\n y *\n (5.068882914068769e-7 * y +\n 0.0017778369011375071 * k -\n 0.7591454649749609) -\n k * (0.0003435319965105553 * k + 0.7063770186160144);\n data[i + 3] = 255;\n }\n return data;\n }\n\n getData({\n width,\n height,\n forceRGBA = false,\n forceRGB = false,\n isSourcePDF = false,\n }) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n );\n }\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && (forceRGBA || forceRGB)) {\n const len = data.length * (forceRGBA ? 4 : 3);\n const rgbaData = new Uint8ClampedArray(len);\n let offset = 0;\n if (forceRGBA) {\n grayToRGBA(data, new Uint32Array(rgbaData.buffer));\n } else {\n for (const grayColor of data) {\n rgbaData[offset++] = grayColor;\n rgbaData[offset++] = grayColor;\n rgbaData[offset++] = grayColor;\n }\n }\n return rgbaData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n if (forceRGBA) {\n const rgbaData = new Uint8ClampedArray((data.length / 3) * 4);\n return this._convertYccToRgba(data, rgbaData);\n }\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGBA) {\n return this._convertYcckToRgba(data);\n }\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGBA) {\n return this._convertCmykToRgba(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n}\n\nexport { JpegImage };\n","/* Copyright 2012 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\nimport { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`, \"JpxError\");\n }\n}\n\n// Table E.1\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 = readUint16(data, 0);\n // No box header, immediate start of codestream (SOC)\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 while (position < length) {\n let headerSize = 8;\n let lbox = readUint32(data, position);\n const tbox = readUint32(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n // XLBox: read UInt64 according to spec.\n // JavaScript's int precision of 53 bit should be sufficient here.\n lbox =\n readUint32(data, position) * 4294967296 +\n readUint32(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n const dataLength = lbox - headerSize;\n let jumpDataLength = true;\n switch (tbox) {\n case 0x6a703268: // 'jp2h'\n jumpDataLength = false; // parsing child boxes\n break;\n case 0x636f6c72: // 'colr'\n // Colorspaces are not used, the CS from the PDF is used.\n const method = data[position];\n if (method === 1) {\n // enumerated colorspace\n const colorspace = readUint32(data, position + 3);\n switch (colorspace) {\n case 16: // this indicates a sRGB colorspace\n case 17: // this indicates a grayscale colorspace\n case 18: // this indicates a YUV colorspace\n break;\n default:\n warn(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n info(\"ICC profile not supported\");\n }\n break;\n case 0x6a703263: // 'jp2c'\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6a502020: // 'jP\\024\\024'\n if (readUint32(data, position) !== 0x0d0a870a) {\n warn(\"Invalid JP2 signature\");\n }\n break;\n // The following header types are valid but currently not used:\n case 0x6a501a1a: // 'jP\\032\\032'\n case 0x66747970: // 'ftyp'\n case 0x72726571: // 'rreq'\n case 0x72657320: // 'res '\n case 0x69686472: // 'ihdr'\n break;\n default:\n const headerType = String.fromCharCode(\n (tbox >> 24) & 0xff,\n (tbox >> 16) & 0xff,\n (tbox >> 8) & 0xff,\n tbox & 0xff\n );\n warn(`Unsupported header type ${tbox} (${headerType}).`);\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n }\n\n parseImageProperties(stream) {\n let newByte = stream.getByte();\n while (newByte >= 0) {\n const oldByte = newByte;\n newByte = stream.getByte();\n const code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xff51) {\n stream.skip(4);\n const Xsiz = stream.getInt32() >>> 0; // Byte 4\n const Ysiz = stream.getInt32() >>> 0; // Byte 8\n const XOsiz = stream.getInt32() >>> 0; // Byte 12\n const YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n const Csiz = stream.getUint16(); // Byte 36\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n // Results are always returned as `Uint8ClampedArray`s.\n this.bitsPerComponent = 8;\n return;\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 try {\n let position = start;\n while (position + 1 < end) {\n const code = readUint16(data, position);\n position += 2;\n\n let length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xff4f: // Start of codestream (SOC)\n context.mainHeader = true;\n break;\n case 0xffd9: // End of codestream (EOC)\n break;\n case 0xff51: // Image and tile size (SIZ)\n length = readUint16(data, position);\n const siz = {};\n siz.Xsiz = readUint32(data, position + 4);\n siz.Ysiz = readUint32(data, position + 8);\n siz.XOsiz = readUint32(data, position + 12);\n siz.YOsiz = readUint32(data, position + 16);\n siz.XTsiz = readUint32(data, position + 20);\n siz.YTsiz = readUint32(data, position + 24);\n siz.XTOsiz = readUint32(data, position + 28);\n siz.YTOsiz = readUint32(data, position + 32);\n const componentsCount = readUint16(data, position + 36);\n siz.Csiz = componentsCount;\n const components = [];\n j = position + 38;\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 context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xff5c: // Quantization default (QCD)\n length = readUint16(data, position);\n const qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\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 spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xff5d: // Quantization component (QCC)\n length = readUint16(data, position);\n const qcc = {};\n j = position + 2;\n let cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = readUint16(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\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 spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xff52: // Coding style default (COD)\n length = 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 = readUint16(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n\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 if (cod.entropyCoderWithCustomPrecincts) {\n const precinctsSizes = [];\n while (j < length + position) {\n const precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4,\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n const unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xff90: // Start of tile-part (SOT)\n length = readUint16(data, position);\n tile = {};\n tile.index = readUint16(data, position + 2);\n tile.length = readUint32(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n // reset component specific settings\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0); // clone of the global COC\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0); // clone of the global COC\n }\n context.currentTile = tile;\n break;\n case 0xff93: // Start of data (SOD)\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n // moving to the end of the data\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xff53: // Coding style component (COC)\n warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n /* falls through */\n case 0xff55: // Tile-part lengths, main header (TLM)\n case 0xff57: // Packet length, main header (PLM)\n case 0xff58: // Packet length, tile-part header (PLT)\n case 0xff64: // Comment (COM)\n length = readUint16(data, position);\n // skipping content\n break;\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n warn(`JPX: Trying to recover from: \"${e.message}\".`);\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\nfunction calculateComponentDimensions(component, siz) {\n // Section B.2 Component mapping\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}\nfunction calculateTileGrids(context, components) {\n const siz = context.SIZ;\n // Section B.3 Division into tile and tile-components\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 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 context.tiles = tiles;\n\n const componentsCount = siz.Csiz;\n for (let i = 0, ii = componentsCount; i < ii; i++) {\n const component = components[i];\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}\nfunction getBlocksDimensions(context, component, r) {\n const codOrCoc = component.codingStyleParameters;\n const result = {};\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 // calculate codeblock size as described in section B.7\n result.xcb_ =\n r > 0\n ? Math.min(codOrCoc.xcb, result.PPx - 1)\n : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ =\n r > 0\n ? Math.min(codOrCoc.ycb, result.PPy - 1)\n : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n // Section B.6 Division resolution to precincts\n const precinctWidth = 1 << dimensions.PPx;\n const precinctHeight = 1 << dimensions.PPy;\n // Jasper introduces codeblock groups for mapping each subband codeblocks\n // to precincts. Precinct partition divides a resolution according to width\n // and height parameters. The subband that belongs to the resolution level\n // has a different size than the level, unless it is the zero resolution.\n\n // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n // The precinct partitioning for a particular subband is derived from a\n // partitioning of its parent LL band (i.e., the LL band at the next higher\n // resolution level)... The LL band associated with each resolution level is\n // divided into precincts... Each of the resulting precinct regions is then\n // mapped into its child subbands (if any) at the next lower resolution\n // level. This is accomplished by using the coordinate transformation\n // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n // coordinates of a point in the LL band and child subband, respectively.\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 =\n resolution.trx1 > resolution.trx0\n ? Math.ceil(resolution.trx1 / precinctWidth) -\n Math.floor(resolution.trx0 / precinctWidth)\n : 0;\n const numprecinctshigh =\n resolution.try1 > resolution.try0\n ? Math.ceil(resolution.try1 / precinctHeight) -\n Math.floor(resolution.try0 / precinctHeight)\n : 0;\n const numprecincts = numprecinctswide * numprecinctshigh;\n\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband,\n };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n // Section B.7 Division sub-band into code-blocks\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 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\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\n // Calculate precinct number for this codeblock, codeblock position\n // should be relative to its subband, use actual dimension and position\n // See comment about codeblock group width and height\n const pi = Math.floor(\n (codeblock.tbx0_ - subband.tbx0) /\n precinctParameters.precinctWidthInSubband\n );\n const pj = Math.floor(\n (codeblock.tby0_ - subband.tby0) /\n precinctParameters.precinctHeightInSubband\n );\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (\n codeblock.tbx1_ <= codeblock.tbx0_ ||\n codeblock.tby1_ <= codeblock.tby0_\n ) {\n continue;\n }\n codeblocks.push(codeblock);\n // building precinct for the sub-band\n let precinct = precincts[precinctNumber];\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 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 codeblock.precinct = precinct;\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}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n const precinctCodeblocks = [];\n // Section B.10.8 Order of info in packet\n const subbands = resolution.subbands;\n // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n for (let i = 0, ii = subbands.length; i < ii; i++) {\n const subband = subbands[i];\n const codeblocks = subband.codeblocks;\n for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n const codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber,\n codeblocks: precinctCodeblocks,\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 for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.1 Layer-resolution-component-position\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError(\"Out of packets\");\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 for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.2 Resolution-layer-component-position\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError(\"Out of packets\");\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 for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n component.codingStyleParameters.decompositionLevelsCount\n );\n }\n const maxNumPrecinctsInLevel = new Int32Array(\n maxDecompositionLevelsCount + 1\n );\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n let maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n const resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(\n maxNumPrecincts,\n resolutions[r].precinctParameters.numprecincts\n );\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.3 Resolution-position-component-layer\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError(\"Out of packets\");\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 // Section B.12.1.4 Position-component-resolution-layer\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 =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale =\n precinctsSizes.components[c].resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError(\"Out of packets\");\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 // Section B.12.1.5 Component-position-resolution-layer\n for (; c < componentsCount; ++c) {\n const component = tile.components[c];\n const precinctsIterationSizes = precinctsSizes.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\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(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction getPrecinctIndexIfExist(\n pxIndex,\n pyIndex,\n sizeInImageScale,\n precinctIterationSizes,\n resolution\n) {\n const posX = pxIndex * precinctIterationSizes.minWidth;\n const posY = pyIndex * precinctIterationSizes.minHeight;\n if (\n posX % sizeInImageScale.width !== 0 ||\n posY % sizeInImageScale.height !== 0\n ) {\n return null;\n }\n const startPrecinctRowIndex =\n (posY / sizeInImageScale.width) *\n resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\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 for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n 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 for (let r = decompositionLevelsCount; r >= 0; --r) {\n const resolution = component.resolutions[r];\n const widthCurrentResolution =\n scale * resolution.precinctParameters.precinctWidth;\n const heightCurrentResolution =\n scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(\n minWidthCurrentComponent,\n widthCurrentResolution\n );\n minHeightCurrentComponent = Math.min(\n minHeightCurrentComponent,\n heightCurrentResolution\n );\n maxNumWideCurrentComponent = Math.max(\n maxNumWideCurrentComponent,\n resolution.precinctParameters.numprecinctswide\n );\n maxNumHighCurrentComponent = Math.max(\n maxNumHighCurrentComponent,\n resolution.precinctParameters.numprecinctshigh\n );\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution,\n };\n scale <<= 1;\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 return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh,\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 // Creating resolutions and sub-bands for each component\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n // Section B.5 Resolution levels and sub-bands\n const resolutions = [];\n const subbands = [];\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\n let subband;\n if (r === 0) {\n // one sub-band (LL) with last decomposition\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 // three sub-bands (HL, LH and HH) with rest of decompositions\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\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\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\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n // Generate the packets sequence\n const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n context\n );\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n context\n );\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n context\n );\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n context\n );\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n context\n );\n break;\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n let position = 0;\n let buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n const b = data[offset + position];\n position++;\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 if (b === 0xff) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return (buffer >>> bufferSize) & ((1 << count) - 1);\n }\n function skipMarkerIfEqual(value) {\n if (\n data[offset + position - 1] === 0xff &&\n data[offset + position] === value\n ) {\n skipBytes(1);\n return true;\n } else if (\n data[offset + position] === 0xff &&\n data[offset + position + 1] === value\n ) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n let value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\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 while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n // Skip also marker segment length and packet sequence ID\n skipBytes(4);\n }\n const packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n const layerNumber = packet.layerNumber,\n queue = [];\n let codeblock;\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 if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n // reading inclusion tree\n precinct = codeblock.precinct;\n let inclusionTree;\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n // building inclusion and zero bit-planes trees\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 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 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 if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n const codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n const codingpassesLog2 = log2(codingpasses);\n // rounding down log2\n const bits =\n (codingpasses < 1 << codingpassesLog2\n ? codingpassesLog2 - 1\n : codingpassesLog2) + codeblock.Lblock;\n const codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength,\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n const packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock.data === undefined) {\n codeblock.data = [];\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 return position;\n}\nfunction copyCoefficients(\n coefficients,\n levelWidth,\n levelHeight,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n) {\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 if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock.data === undefined) {\n continue;\n }\n\n const bitModel = new BitModel(\n blockWidth,\n blockHeight,\n codeblock.subbandType,\n codeblock.zeroBitPlanes,\n mb\n );\n let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n // collect data\n const data = codeblock.data;\n let totalLength = 0,\n codingpasses = 0;\n let j, jj, dataItem;\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 const encodedData = new Uint8Array(totalLength);\n let position = 0;\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 // decoding the item\n const decoder = new 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 case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\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 // Do the interleaving of Section F.3.3 here, so we do not need\n // to copy later. LL level is not interleaved, just copied.\n const interleave = subband.type !== \"LL\";\n for (j = 0; j < blockHeight; j++) {\n const row = (offset / width) | 0; // row in the non-interleaved subband\n const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n const pos = interleave ? levelOffset + (offset << 1) : offset;\n coefficients[pos] = reversible && nb >= mb ? n : n * (1 << (mb - nb));\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\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 =\n 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 =\n codingStyleParameters.resetContextProbabilities;\n const precision = context.components[c].precision;\n\n const reversible = codingStyleParameters.reversibleTransformation;\n const transform = reversible\n ? new ReversibleTransform()\n : new IrreversibleTransform();\n\n const subbandCoefficients = [];\n let b = 0;\n for (let i = 0; i <= decompositionLevelsCount; i++) {\n const resolution = component.resolutions[i];\n\n const width = resolution.trx1 - resolution.trx0;\n const height = resolution.try1 - resolution.try0;\n // Allocate space for the whole sublevel.\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 if (!scalarExpounded) {\n // formula E-5\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\n // calculate quantization coefficient (Section E.1.1.1)\n const delta = reversible\n ? 1\n : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n const mb = guardBits + epsilon - 1;\n\n // In the first resolution level, copyCoefficients will fill the\n // whole array with coefficients. In the succeeding passes,\n // copyCoefficients will consecutively fill in the values that belong\n // to the interleaved positions of the HL, LH, and HH coefficients.\n // The LL coefficients will then be interleaved in Transform.iterate().\n copyCoefficients(\n coefficients,\n width,\n height,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n );\n }\n subbandCoefficients.push({\n width,\n height,\n items: coefficients,\n });\n }\n\n const result = transform.calculate(\n subbandCoefficients,\n component.tcx0,\n component.tcy0\n );\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items,\n };\n}\nfunction transformComponents(context) {\n const siz = context.SIZ;\n const components = context.components;\n const componentsCount = siz.Csiz;\n const resultImages = [];\n for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n const tile = context.tiles[i];\n const transformedTiles = [];\n for (let c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\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\n // Section G.2.2 Inverse multi component transform\n let shift, offset;\n let pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\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\n // HACK: The multiple component transform formulas below assume that\n // all components have the same precision. With this in mind, we\n // compute shift and offset only once.\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n\n const component0 = tile.components[0];\n const alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n // inverse irreversible multiple component transform\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 // inverse reversible multiple component transform\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\n out[pos++] = (g + y2) >> shift;\n out[pos++] = g >> shift;\n out[pos++] = (g + y1) >> shift;\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 // no multi-component transform\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 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 resultImages.push(result);\n }\n return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n const siz = context.SIZ;\n const componentsCount = siz.Csiz;\n const tile = context.tiles[tileIndex];\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const qcdOrQcc =\n context.currentTile.QCC[c] !== undefined\n ? context.currentTile.QCC[c]\n : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n const codOrCoc =\n context.currentTile.COC[c] !== undefined\n ? context.currentTile.COC[c]\n : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n constructor(width, height) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\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 while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n const index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\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 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\nclass InclusionTree {\n constructor(width, height, defaultValue) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const items = new Uint8Array(width * height);\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\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 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 // already know about this one, propagating the value to top levels\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\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 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 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// Section D. Coefficient bit modeling\nclass BitModel {\n static UNIFORM_CONTEXT = 17;\n\n static RUNLENGTH_CONTEXT = 18;\n\n // Table D-1\n // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n static LLAndLHContextsLabel = new Uint8Array([\n 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,\n 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,\n 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 ]);\n\n static HLContextLabel = new Uint8Array([\n 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,\n 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,\n 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 ]);\n\n static HHContextLabel = new Uint8Array([\n 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,\n 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,\n 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\n constructor(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n\n let contextLabelTable;\n if (subband === \"HH\") {\n contextLabelTable = BitModel.HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = BitModel.HLContextLabel;\n } else {\n contextLabelTable = BitModel.LLAndLHContextsLabel;\n }\n this.contextLabelTable = contextLabelTable;\n\n const coefficientCount = width * height;\n\n // coefficients outside the encoding region treated as insignificant\n // add border state cells for significanceState\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\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 this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n\n const bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (let i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n\n this.reset();\n }\n\n setDecoder(decoder) {\n this.decoder = decoder;\n }\n\n reset() {\n // We have 17 contexts that are accessed via context labels,\n // plus the uniform and runlength context.\n this.contexts = new Int8Array(19);\n\n // Contexts are packed into 1 byte:\n // highest 7 bits carry the index, lowest bit carries mps\n this.contexts[0] = (4 << 1) | 0;\n this.contexts[BitModel.UNIFORM_CONTEXT] = (46 << 1) | 0;\n this.contexts[BitModel.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 if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\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 for (let i1 = 0; i1 < 4; i1++, index += width) {\n const i = i0 + i1;\n if (i >= height) {\n break;\n }\n // clear processed flag first\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 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 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\n // calculate horizontal contribution\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\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 const horizontalContribution = 3 * contribution;\n\n // calculate vertical contribution and combine with the horizontal\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\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 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 for (let j = 0; j < width; j++) {\n for (let index = index0 + j; index < indexNext; index += width) {\n // significant but not those that have just become\n if (\n !coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n let contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n // first refinement\n const significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n const bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] =\n (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 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 for (let j = 0; j < width; j++) {\n const index0 = indexBase + j;\n // using the property: labels[neighborsSignificance[index]] === 0\n // when neighborsSignificance[index] === 0\n const allEmpty =\n checkAllEmpty &&\n processingFlags[index0] === 0 &&\n processingFlags[index0 + oneRowDown] === 0 &&\n processingFlags[index0 + twoRowsDown] === 0 &&\n processingFlags[index0 + threeRowsDown] === 0 &&\n neighborsSignificance[index0] === 0 &&\n neighborsSignificance[index0 + oneRowDown] === 0 &&\n neighborsSignificance[index0 + twoRowsDown] === 0 &&\n neighborsSignificance[index0 + threeRowsDown] === 0;\n let i1 = 0,\n index = index0;\n let i = i0,\n sign;\n if (allEmpty) {\n const hasSignificantCoefficent = decoder.readBit(\n contexts,\n BitModel.RUNLENGTH_CONTEXT\n );\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue; // next column\n }\n i1 =\n (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT);\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\n index = index0;\n for (let i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (\n coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\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 bitsDecoded[index]++;\n }\n }\n }\n }\n\n checkSegmentationSymbol() {\n const decoder = this.decoder;\n const contexts = this.contexts;\n const symbol =\n (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 3) |\n (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 2) |\n (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT);\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n}\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n constructor() {\n if (this.constructor === Transform) {\n unreachable(\"Cannot initialize Transform.\");\n }\n }\n\n calculate(subbands, u0, v0) {\n let ll = subbands[0];\n for (let i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n }\n\n extend(buffer, offset, size) {\n // Section F.3.7 extending... using max extension of 4\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 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 // Interleave LL according to Section F.3.3\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n // The LL band is not needed anymore.\n llItems = ll.items = null;\n\n const bufferPadding = 4;\n const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n // Section F.3.4 HOR_SR\n if (width === 1) {\n // if width = 1, when u0 even keep items as is, when odd divide by 2\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\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n // Accesses to the items array can take long, because it may not fit into\n // CPU cache and has to be fetched from main memory. Since subsequent\n // accesses to the items array are not local when reading columns, we\n // have a cache miss every time. To reduce cache misses, get up to\n // 'numBuffers' items at a time and store them into the individual\n // buffers. The colBuffers should be small enough to fit into CPU cache.\n let numBuffers = 16;\n const colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n let b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n // Section F.3.5 VER_SR\n if (height === 1) {\n // if height = 1, when v0 even keep items as is, when odd divide by 2\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 we ran out of buffers, copy several image columns at once\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\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 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 this is last buffer in this group of buffers, flush all buffers.\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\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 { width, height, items };\n }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n, current, next;\n\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\n // step 1 is combined with step 3\n\n // step 2\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n // step 1 & 3\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\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 // step 4\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\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 // step 5\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\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 // step 6\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\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// Section 3.8.1 Reversible 5-3 filter\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\nexport { JpxImage };\n","/* Copyright 2018 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\nimport {\n getVerbosityLevel,\n setVerbosityLevel,\n VerbosityLevel,\n} from \"./shared/util.js\";\nimport { Jbig2Image } from \"./core/jbig2.js\";\nimport { JpegImage } from \"./core/jpg.js\";\nimport { JpxImage } from \"./core/jpx.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : void 0;\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : void 0;\n\nexport {\n getVerbosityLevel,\n Jbig2Image,\n JpegImage,\n JpxImage,\n setVerbosityLevel,\n VerbosityLevel,\n};\n"],"names":["isNodeJS","process","versions","nw","electron","type","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","HIGHLIGHT","STAMP","INK","AnnotationEditorParamsType","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","HIGHLIGHT_COLOR","HIGHLIGHT_DEFAULT_COLOR","HIGHLIGHT_THICKNESS","HIGHLIGHT_FREE","HIGHLIGHT_SHOW_ALL","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","log","warn","unreachable","Error","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","arguments","length","undefined","options","addDefaultProtocol","startsWith","dots","match","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","shadow","obj","prop","value","nonSerializable","Object","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","message","name","constructor","prototype","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","status","FormatError","AbortException","bytesToString","bytes","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","i","chunkEnd","Math","min","chunk","subarray","push","join","stringToBytes","str","Uint8Array","charCodeAt","string32","objectSize","keys","objectFromMap","map","create","key","isLittleEndian","buffer8","view32","Uint32Array","buffer","isEvalSupported","Function","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","platform","navigator","isMac","includes","isCSSRoundSupported","globalThis","CSS","supports","hexNumbers","Array","from","n","toString","padStart","Util","makeHexColor","r","g","b","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","m","xt","yt","applyInverseTransform","d","getAxialAlignedBoundingBox","p1","p2","slice","p3","p4","max","inverseTransform","singularValueDecompose2dScale","transpose","a","c","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","getExtremumOnCurve","#getExtremumOnCurve","x0","x1","x2","x3","y0","y1","y2","y3","t","mt","tt","ttt","x","y","getExtremum","#getExtremum","abs","delta","sqrtDelta","a2","bezierBoundingBox","PDFStringTranslateTable","stringToPDFString","encoding","decoder","TextDecoder","fatal","decoded","decode","replaceAll","ex","ii","charCode","charAt","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","NormalizeRegex","NormalizationMap","normalizeUnicode","Map","_","normalize","get","getUuid","crypto","randomUUID","buf","getRandomValues","floor","random","AnnotationPrefix","CIRCULAR_REF","Symbol","EOF","CmdCache","NameCache","RefCache","clearPrimitiveCaches","Name","Cmd","cmd","nonSerializableClosure","Dict","xref","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","size","key1","key2","key3","Ref","fetch","getAsync","fetchAsync","getArray","isArray","getRaw","getKeys","getRawValues","values","set","has","forEach","callback","empty","emptyDict","merge","_ref","dictArray","mergeSubDicts","mergedDict","properties","dict","entries","property","subDict","clear","clone","num","gen","fromString","ref","exec","parseInt","RefSet","parent","_set","Set","put","add","remove","delete","iterator","RefSetCache","putAlias","aliasRef","isName","v","isCmd","isDict","isRefsEqual","v1","v2","BaseStream","isEmpty","isDataLoaded","getByte","getBytes","peekByte","peekedByte","pos","peekBytes","getUint16","b0","b1","getInt32","b2","b3","getByteRange","begin","end","getString","skip","reset","moveStart","makeSubStream","start","getBaseStreams","PDF_VERSION_REGEXP","getLookupTableFactory","initializer","lookup","MissingDataException","ParserEOFException","XRefEntryException","XRefParseException","arrayBuffersToBytes","arr","dataLength","byteLength","data","item","getInheritableProperty","stopWhenFound","visited","ROMAN_NUMBER_MAP","toRomanNumerals","number","lowerCase","romanBuf","romanStr","toLowerCase","log2","ceil","readInt8","offset","readUint16","readUint32","isWhiteSpace","ch","parseXFAPath","path","positionPattern","split","component","escapePDFName","char","substring","escapeString","_collectJS","entry","list","parents","element","js","collectActions","eventType","actions","additionalActionsDicts","additionalActions","action","actionDict","Action","XMLEntities","codePointIter","codePointAt","encodeToXmlString","entity","toUpperCase","validateFontName","fontFamily","mustWarn","re","RegExp","test","ident","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontWeight","italicAngle","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","jsUrl","newWindow","numberToString","roundedValue","round","toFixed","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","annotations","pageIndex","isAscii","stringToUTF16HexString","stringToUTF16String","bigEndian","getRotationMatrix","rotation","width","height","getSizeInBytes","QeTable","qe","nmps","nlps","switchFlag","ArithmeticDecoder","bp","dataEnd","chigh","clow","byteIn","ct","readBit","contexts","cx_index","cx_mps","qeTableIcx","qeIcx","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","CCITTFaxDecoder","source","next","eof","eoline","EndOfLine","byteAlign","EncodedByteAlign","columns","Columns","rows","Rows","eoblock","EndOfBlock","black","BlackIs1","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","readNextChar","refPos","blackPixels","bits","err","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","table","limit","limitValue","result","Jbig2Error","ContextCache","getContexts","id","Int8Array","DecodingContext","contextCache","cache","MAX_INT_32","MIN_INT_32","decodeInteger","procedure","prev","readBits","bit","sign","signedValue","decodeIAID","codeLength","SegmentTypes","CodingTemplates","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","bitmap","contextLabel","j","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","input","Reader","decodeMMRBitmap","useskip","template","concat","sort","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","k","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","Uint16Array","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","shift","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","Int32Array","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","symbol","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","position","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","flags","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","increment","offsetT","offsetS","s2","t2","symbolRow","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","args","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","imgData","Uint8ClampedArray","q","mask","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSegment","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","buildTree","node","decodeNode","reader","htOffset","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","currentByte","numBits","getCustomHuffmanTable","index","currentIndex","numberOfSymbols","codes","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","params","lookForEOFLimit","Jbig2Image","parseChunks","parse","convertToRGBA","kind","convertBlackAndWhiteToRGBA","convertRGBToRGBA","src","srcPos","dest","nonBlackColor","inverseDecode","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","destPos","elem","_ref2","len32","src32","s1","s3","jj","grayToRGBA","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","pop","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","s","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","e","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","h","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","Int16Array","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","JpegImage","decodeTransform","colorTransform","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","endOffset","array","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","l","appData","version","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","isSourcePDF","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Y","Cb","Cr","_convertYccToRgba","out","_convertYcckToRgb","_convertYcckToRgba","_convertYcckToCmyk","_convertCmykToRgb","_convertCmykToRgba","getData","forceRGBA","forceRGB","len","rgbaData","grayColor","JpxError","SubbandsGainLog2","LL","LH","HL","HH","JpxImage","failOnCorruptedImage","head","parseCodestream","headerSize","lbox","tbox","jumpDataLength","method","colorspace","headerType","parseImageProperties","stream","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","bitsPerComponent","context","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","tiles","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","py","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","scale","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","bufferSize","skipNextBit","count","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","queue","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","totalLength","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","Float32Array","gainLog2","items","calculate","left","top","resultImages","transformedTiles","tile0","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","qcdOrQcc","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","extend","j1","j2","filter","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","gamma","K_","pdfjsVersion","pdfjsBuild"],"sourceRoot":""}